2026-07-10 10:38:57 +02:00

134 lines
7.4 KiB
Python

"""
MSP430-FR5043 datasheet
Data extracted from https://www.ti.com/lit/ds/symlink/msp430fr5043.pdf
"""
#'I_to_consider': 'min', # Current consumption of the ADC to consider (min, max, avg)
datasheet = {
'family': 'MSP430FR', # MCU Family
'registers': 10, # Number of general-purpose registers
'reserved_registers': 2, # Number of reserved registers (e.g. stack pointer, program counter)
'register_size': 16, # Number of bits for each register
'memory_cell_size': 16, # Number of bits for each memory cell
'volatile_memory_size': '12K', # Memory size in bytes
'non_volatile_memory_size': '64K', # Memory size in bytes
'has_nvm': True,
'has_adc': True,
'LPM': { # Low power modes
'LPM3': {
'V': '2.2', # Measurement Voltage of I
'I': '0.5u', # Current draw in low-power mode
'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs)
't_wakeup': '6.6u', # Wakeup time
},
'LPM4': {
'V': '2.2', # Measurement Voltage of I
'I': '0.4u', # Current draw in low-power mode
'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs)
't_wakeup': '6.6u', # Wakeup time
},
},
'ADC': {
'T_off_on': '100n', # Time to wait for switching the ADC on
'T_sampling': '1u', # Time to get a sample
'I_min': '145u', # Minimum current draw of the ADC when it is active
'I_max': '199u', # Maximum current draw of the ADC when it is active
'N_init': '3', # Number of instructions to init the ADC
# set ADC mode(single); set ADC op_type(read); set ADC on
'N_off': '1', # Number of instructions to stop the ADC
# set ADC mode(off)
'N_transfer_ops': '1', # Number of instructions to retrieve data from the ADC
# var_data <- REG_ADC
'V_min': '2.2', # Minimum operating voltage for the ADC module
'V': '3', # Voltage of datasheet measures
},
'default_frequency': '1MHz',
'frequencies': {
'1MHz': {
'frequency': '1M', # Clock frequency
'V_min': '1.8', # Minimum operating voltage
'V_max': '3.6', # Maximum operating voltage
'V': '3.0', # Voltage of datasheet measures
'n_waits': '0', # Wait states of FRAM accesses
'I_am_fram_uni': '225u', # Current draw when program and data resides in FRAM
'I_am_fram': { # List of current draw / cache hit when program resides in FRAM and data in SRAM
'0.00': {'I': '420u', 'hit': '0.00'},
'0.50': {'I': '275u', 'hit': '0.50'},
'0.66': {'I': '220u', 'hit': '0.66'},
'0.75': {'I': '192u', 'hit': '0.75'},
'1.0': {'I': '125u', 'hit': '1.0'},
},
'I_am_ram': '140u', # Current draw when program and data resides in SRAM
'I_am_ram_only': '90u', # Current draw when program and data resides in SRAM (FRAM off)
},
'4MHz': {
'frequency': '4M', # Clock frequency
'V_min': '1.8', # Minimum operating voltage
'V_max': '3.6', # Maximum operating voltage
'V': '3.0', # Voltage of datasheet measures
'n_waits': '0', # Wait states of FRAM accesses
'I_am_fram_uni': '665u', # Current draw when program and data resides in FRAM
'I_am_fram': { # List of current draw / cache hit when program resides in FRAM and data in SRAM
'0.00': {'I': '1455u', 'hit': '0.00'},
'0.50': {'I': '855u', 'hit': '0.50'},
'0.66': {'I': '650u', 'hit': '0.66'},
'0.75': {'I': '535u', 'hit': '0.75'},
'1.0': {'I': '237u', 'hit': '1.0'},
},
'I_am_ram': '323u', # Current draw when program and data resides in SRAM
'I_am_ram_only': '292u', # Current draw when program and data resides in SRAM (FRAM off)
},
'8MHz': {
'frequency': '8M', # Clock frequency
'V_min': '1.8', # Minimum operating voltage
'V_max': '3.6', # Maximum operating voltage
'V': '3.0', # Voltage of datasheet measures
'n_waits': '0', # Wait states of FRAM accesses
'I_am_fram_uni': '1275u', # Current draw when program and data resides in FRAM
'I_am_fram': { # List of current draw / cache hit when program resides in FRAM and data in SRAM
'0.00': {'I': '2850u', 'hit': '0.00'},
'0.50': {'I': '1650u', 'hit': '0.50'},
'0.66': {'I': '1240u', 'hit': '0.66'},
'0.75': {'I': '1015u', 'hit': '0.75'},
'1.0': {'I': '450u', 'hit': '1.0'},
},
'I_am_ram': '590u', # Current draw when program and data resides in SRAM
'I_am_ram_only': '540u', # Current draw when program and data resides in SRAM (FRAM off)
},
'12MHz': {
'frequency': '12M', # Clock frequency
'V_min': '1.8', # Minimum operating voltage
'V_max': '3.6', # Maximum operating voltage
'V': '3.0', # Voltage of datasheet measures
'n_waits': '1', # Wait states of FRAM accesses
'I_am_fram_uni': '1550u', # Current draw when program and data resides in FRAM
'I_am_fram': { # List of current draw / cache hit when program resides in FRAM and data in SRAM
'0.00': {'I': '2330u', 'hit': '0.00'},
'0.50': {'I': '1770u', 'hit': '0.50'},
'0.66': {'I': '1490u', 'hit': '0.66'},
'0.75': {'I': '1290u', 'hit': '0.75'},
'1.0': {'I': '670u', 'hit': '1.0'},
},
'I_am_ram': '880u', # Current draw when program and data resides in SRAM
'I_am_ram_only': '830u', # Current draw when program and data resides in SRAM (FRAM off)
},
'16MHz': {
'frequency': '16M', # Clock frequency
'V_min': '1.8', # Minimum operating voltage
'V_max': '3.6', # Maximum operating voltage
'V': '3.0', # Voltage of datasheet measures
'n_waits': '1', # Wait states of FRAM accesses
'I_am_fram_uni': '1970u', # Current draw when program and data resides in FRAM
'I_am_fram': { # List of current draw / cache hit when program resides in FRAM and data in SRAM
'0.00': {'I': '3000u', 'hit': '0.00'},
'0.50': {'I': '2265u', 'hit': '0.50'},
'0.66': {'I': '1880u', 'hit': '0.66'},
'0.75': {'I': '1620u', 'hit': '0.75'},
'1.0': {'I': '790u', 'hit': '1.0'},
},
'I_am_ram': '1070u', # Current draw when program and data resides in SRAM
'I_am_ram_only': '1020u', # Current draw when program and data resides in SRAM (FRAM off)
},
},
}