""" MSP430-FR5969 datasheet Data extracted from https://www.ti.com/lit/ds/symlink/msp430fr5969.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': '2K', # 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.4u', # Current draw in low-power mode 'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs) 't_wakeup': '7u', # Wakeup time }, 'LPM4': { 'V': '2.2', # Measurement Voltage of I 'I': '0.3u', # Current draw in low-power mode 'V_min': '1.75', # Minimum voltage to sustain low-power mode (V_svs) 't_wakeup': '7u', # 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': '185u', # 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.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': '210u', # 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': '370u', 'hit': '0.00'}, '0.50': {'I': '240u', 'hit': '0.50'}, '0.66': {'I': '200u', 'hit': '0.66'}, '0.75': {'I': '170u', 'hit': '0.75'}, '1.0': {'I': '110u', 'hit': '1.0'}, }, 'I_am_ram': '130u', # Current draw when program and data resides in SRAM 'I_am_ram_only': '100u', # 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': '640u', # 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': '1280u', 'hit': '0.00'}, '0.50': {'I': '745u', 'hit': '0.50'}, '0.66': {'I': '560u', 'hit': '0.66'}, '0.75': {'I': '480u', 'hit': '0.75'}, '1.0': {'I': '235u', 'hit': '1.0'}, }, 'I_am_ram': '320u', # Current draw when program and data resides in SRAM 'I_am_ram_only': '290u', # 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': '1220u', # 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': '2510u', 'hit': '0.00'}, '0.50': {'I': '1440u', 'hit': '0.50'}, '0.66': {'I': '1070u', 'hit': '0.66'}, '0.75': {'I': '890u', 'hit': '0.75'}, '1.0': {'I': '420u', 'hit': '1.0'}, }, 'I_am_ram': '585u', # Current draw when program and data resides in SRAM 'I_am_ram_only': '555u', # 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': '1475u', # 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': '2080u', 'hit': '0.00'}, '0.50': {'I': '1575u', 'hit': '0.50'}, '0.66': {'I': '1300u', 'hit': '0.66'}, '0.75': {'I': '1155u', 'hit': '0.75'}, '1.0': {'I': '640u', 'hit': '1.0'}, }, 'I_am_ram': '890u', # Current draw when program and data resides in SRAM 'I_am_ram_only': '860u', # 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': '1845u', # 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': '2650u', 'hit': '0.00'}, '0.50': {'I': '1990u', 'hit': '0.50'}, '0.66': {'I': '1620u', 'hit': '0.66'}, '0.75': {'I': '1420u', 'hit': '0.75'}, '1.0': {'I': '730u', 'hit': '1.0'}, }, 'I_am_ram': '1070u', # Current draw when program and data resides in SRAM 'I_am_ram_only': '1040u', # Current draw when program and data resides in SRAM (FRAM off) }, }, }