PF EEPROM
From DIDEAS Wiki
PF Users Navigation:
- PCB; Lifefix_users; Pf_users; benchtest_users; CalibFix Users; Hardware; Assembly ; iochan ;
- PCA : PCB ; AKENC SC/MC 218 ; FET 217 ; IMU219 ; Swifi ; Rev200_mods ; PCA Inventory
- Special Commands to the Ankle (PFCMD) : State Controller Commands; Motor Controller Commands; Python Examples; IMU Commands ;PFCMD_PY; Pf_calb_table_py; Virtual spring test; PF EEPROM
- DOC: Pf_users; Powerfoot Keyboard User Interface; Steps for Manual Tuning; "Dashboard" Program For Assisting with Tuning
- NEW (CEB) WIKI
- Torque Feedback Controller Guide
=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_"
Contents
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