""" MSP430-G2553 datasheet Data extracted from: - https://www.ti.com/lit/ds/symlink/msp430g2553.pdf - D2VFS paper https://dl.acm.org/doi/10.5555/3400306.3400319 """ datasheet = { 'family': 'MSP430G', # 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': '512', # Memory size in bytes 'non_volatile_memory_size': '0', # Memory size in bytes 'has_nvm': False, '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.8', # Minimum voltage to sustain low-power mode 't_wakeup': '1.5u', # Wakeup time }, 'LPM4': { 'V': '2.2', # Measurement Voltage of I 'I': '0.1u', # Current draw in low-power mode 'V_min': '1.8', # Minimum voltage to sustain low-power mode 't_wakeup': '1.5u', # Wakeup time }, }, 'ADC': { 'T_off_on': '100n', # Time to wait for switching the ADC on 'T_sampling': '1220n', # Time to get a sample 'I_min': '600u', # Minimum current draw of the ADC when it is active 'I_max': '600u', # Minimum 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': '1.8', # Voltage of datasheet measures 'I': '190u', # Current draw when program and data resides in SRAM }, '8MHz': { 'frequency': '8M', # Clock frequency 'V_min': '2.2', # Minimum operating voltage 'V': '2.2', # Voltage of datasheet measures 'I': '1.383m', # Current draw when program and data resides in SRAM }, '12MHz': { 'frequency': '12M', # Clock frequency 'V_min': '2.7', # Minimum operating voltage 'V': '2.7', # Voltage of datasheet measures 'I': '2.570m', # Current draw when program and data resides in SRAM }, '16MHz': { 'frequency': '16M', # Clock frequency 'V_min': '3.3', # Minimum operating voltage 'V': '3.3', # Voltage of datasheet measures 'I': '4.275m', # Current draw when program and data resides in SRAM }, } }