Difference between revisions of "PF EEPROM"

From DIDEAS Wiki
Jump to: navigation, search
m
m
Line 1: Line 1:
 
{{pf_top_nav}}
 
{{pf_top_nav}}
  
=EEPROM init table =  
+
=EEPROM init registry (SC SVN revision > 1611)
 +
* During boot, the robot loads critical variables from its "init table registry"
 +
* keys are define in : '../StateControl/eeprom_keys.h';
 +
* the python program "keys.py" uses this file to permit keys to be referenced by name
 +
* at present 16 and 32 bit unsigned int keys are support
 +
* NOTE : python ignores the redundant part of a key name "KEY_"
 +
== UINT16  keys ==
 +
*KEY_SERIAL_NUMBER  : serial number of the installed SC/MC board : eg 9
 +
*KEY_RUN_LEVEL      : a simpler way to specifying the progress of bringing and demoing a robot
 +
*KEY_FEATURE_BITS    : bits the enabled the use of specific features (currently conflicts w/run level)
 +
*KEY_REVISION_NUMBER : serial number of the installed SC/MC board : eg 200
 +
 
 +
== UINT32 keys==
 +
*SC_FUP_BAUD : at present unused, but will be used to set the baudrate of the SC FUP port 
 +
*MC_FUP_BAUD : at present unused, but will be used to set the baudrate of the SC FUP port     
 +
 
 +
 
 +
=(tags SPLD3) EEPROM init table =  
 
* The defaults 'feature bits' set in statemachine.h are basically ignored (6-28-09).  Although loaded in sm_init.c, they're overwritten in demux_sm - where it reads the the EEPROM init table.
 
* The defaults 'feature bits' set in statemachine.h are basically ignored (6-28-09).  Although loaded in sm_init.c, they're overwritten in demux_sm - where it reads the the EEPROM init table.
  
Line 7: Line 24:
 
* if FEATURE_USE_IMU is set, then after MC is boot (immediately before RUN_TIME), the dataport_select is set to two, and the IMU communications is enabled.
 
* if FEATURE_USE_IMU is set, then after MC is boot (immediately before RUN_TIME), the dataport_select is set to two, and the IMU communications is enabled.
  
=Problems / Goals=
+
=(PRE SPLD 3) Problems / Goals=
 
* need to be able to cleanly specify to boot too.
 
* need to be able to cleanly specify to boot too.
 
** great a global called 'run_level'.  Each thing that gets turned on has a minimum level.
 
** great a global called 'run_level'.  Each thing that gets turned on has a minimum level.
 
* what if a 'needed' table isn't loaded - eg calibration table.   
 
* what if a 'needed' table isn't loaded - eg calibration table.   
 
** possibly this type of error should limit the maximum level of boot capability.  eg no calb table, then at most we remain in a mode that will allow for calibration
 
** possibly this type of error should limit the maximum level of boot capability.  eg no calb table, then at most we remain in a mode that will allow for calibration

Revision as of 15:30, 31 October 2009

PF Users Navigation:

Edit

=EEPROM init registry (SC SVN revision > 1611)

  • During boot, the robot loads critical variables from its "init table registry"
  • keys are define in : '../StateControl/eeprom_keys.h';
  • the python program "keys.py" uses this file to permit keys to be referenced by name
  • at present 16 and 32 bit unsigned int keys are support
  • NOTE : python ignores the redundant part of a key name "KEY_"

UINT16 keys

  • KEY_SERIAL_NUMBER  : serial number of the installed SC/MC board : eg 9
  • KEY_RUN_LEVEL  : a simpler way to specifying the progress of bringing and demoing a robot
  • KEY_FEATURE_BITS  : bits the enabled the use of specific features (currently conflicts w/run level)
  • KEY_REVISION_NUMBER : serial number of the installed SC/MC board : eg 200

UINT32 keys

  • SC_FUP_BAUD : at present unused, but will be used to set the baudrate of the SC FUP port
  • MC_FUP_BAUD : at present unused, but will be used to set the baudrate of the SC FUP port


(tags SPLD3) EEPROM init table

  • The defaults 'feature bits' set in statemachine.h are basically ignored (6-28-09). Although loaded in sm_init.c, they're overwritten in demux_sm - where it reads the the EEPROM init table.
  • if FEATURE_MC_CURRENT_UPDATES is NOT SET, then demux_sm skips the states that boot MC through mode 2
  • if FEATURE_USE_IMU is set, then after MC is boot (immediately before RUN_TIME), the dataport_select is set to two, and the IMU communications is enabled.

(PRE SPLD 3) Problems / Goals

  • need to be able to cleanly specify to boot too.
    • great a global called 'run_level'. Each thing that gets turned on has a minimum level.
  • what if a 'needed' table isn't loaded - eg calibration table.
    • possibly this type of error should limit the maximum level of boot capability. eg no calb table, then at most we remain in a mode that will allow for calibration