151 lines
8.3 KiB
Python
151 lines
8.3 KiB
Python
"""
|
|
MSP430-FR5739 datasheet
|
|
Data extracted from https://www.ti.com/lit/ds/symlink/msp430fr5739.pdf
|
|
"""
|
|
|
|
#'I_to_consider': 'min', # Current consumption of the ADC to consider (min, max, avg)
|
|
datasheet = {
|
|
'family': 'MSP430FR', # MCU Family
|
|
'registers': 16, # Number of general-purpose registers
|
|
'reserved_registers': 4, # 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': '1K', # Memory size in bytes
|
|
'non_volatile_memory_size': '16K', # Memory size in bytes
|
|
'has_nvm': True,
|
|
'has_adc': True,
|
|
'LPM': { # Low power modes
|
|
'LPM3': {
|
|
'V': '2.2', # Measurement Voltage of I
|
|
'I': '6.3u', # Current draw in low-power mode
|
|
'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs)
|
|
't_wakeup': '120u', # Wakeup time
|
|
},
|
|
'LPM4': {
|
|
'V': '2', # Measurement Voltage of I
|
|
'I': '5.9u', # Current draw in low-power mode
|
|
'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs)
|
|
't_wakeup': '120u', # Wakeup time
|
|
},
|
|
},
|
|
'ADC': {
|
|
'T_off_on': '100n', # Time to wait for switching the ADC on
|
|
'T_sampling': '1.5u', # Time to get a sample
|
|
'I_min': '100u', # Minimum current draw of the ADC when it is active
|
|
'I_max': '160u', # 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.0', # Minimum operating voltage for the ADC module
|
|
'V': '3.0', # 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': '270u', # 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': '310u', 'hit': '0.50'},
|
|
'0.66': {'I': '270u', 'hit': '0.66'},
|
|
'0.75': {'I': '250u', 'hit': '0.75'},
|
|
'1.0': {'I': '200u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '200u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '170u', # 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': '580u', # 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': '1200u', 'hit': '0.00'},
|
|
'0.50': {'I': '730u', 'hit': '0.50'},
|
|
'0.66': {'I': '580u', 'hit': '0.66'},
|
|
'0.75': {'I': '500u', 'hit': '0.75'},
|
|
'1.0': {'I': '300u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '350u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '320u', # 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': '1000u', # 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': '2200u', 'hit': '0.00'},
|
|
'0.50': {'I': '1300u', 'hit': '0.50'},
|
|
'0.66': {'I': '1000u', 'hit': '0.66'},
|
|
'0.75': {'I': '820u', 'hit': '0.75'},
|
|
'1.0': {'I': '420u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '550u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '520u', # 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': '1530u', # 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': '2300u', 'hit': '0.00'},
|
|
'0.50': {'I': '1750u', 'hit': '0.50'},
|
|
'0.66': {'I': '1550u', 'hit': '0.66'},
|
|
'0.75': {'I': '1300u', 'hit': '0.75'},
|
|
'1.0': {'I': '730u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '1000u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '970u', # Current draw when program and data resides in SRAM (FRAM off)
|
|
},
|
|
'20MHz': {
|
|
'frequency': '20M', # 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': '2', # Wait states of FRAM accesses
|
|
'I_am_fram_uni': '1900u', # 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': '2800u', 'hit': '0.00'},
|
|
'0.50': {'I': '2100u', 'hit': '0.50'},
|
|
'0.66': {'I': '1900u', 'hit': '0.66'},
|
|
'0.75': {'I': '1600u', 'hit': '0.75'},
|
|
'1.0': {'I': '880u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '1200u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '1170u', # Current draw when program and data resides in SRAM (FRAM off)
|
|
},
|
|
'24MHz': {
|
|
'frequency': '24M', # 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': '3', # Wait states of FRAM accesses
|
|
'I_am_fram_uni': '2200u', # 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': '3450u', 'hit': '0.00'},
|
|
'0.50': {'I': '2500u', 'hit': '0.50'},
|
|
'0.66': {'I': '2200u', 'hit': '0.66'},
|
|
'0.75': {'I': '1800u', 'hit': '0.75'},
|
|
'1.0': {'I': '1000u', 'hit': '1.0'},
|
|
},
|
|
'I_am_ram': '1450u', # Current draw when program and data resides in SRAM
|
|
'I_am_ram_only': '1420u', # Current draw when program and data resides in SRAM (FRAM off)
|
|
},
|
|
},
|
|
}
|