Difference between revisions of "AnkleHardwareSpec2007Sep"

From DIDEAS Wiki
Jump to: navigation, search
m
m (software)
Line 103: Line 103:
  
 
===deep sleep / sleep / initialization ===
 
===deep sleep / sleep / initialization ===
 +
* when entering a sleep state, some parameters may be written to EEPROM.  Specifically the SG offsets will be checked against the stored value, and updated if the offset changes "significantly".
 +
 
====deep sleep====
 
====deep sleep====
 
* (<10uA, <0.25uW) when battery is near death.  Disconnect as much of the system as possible from battery.
 
* (<10uA, <0.25uW) when battery is near death.  Disconnect as much of the system as possible from battery.
 
* motor leads are shorted with "zero power"
 
* motor leads are shorted with "zero power"
  
==== sleeping =====
+
==== sleeping ====
 
* (<10mW) when ankle is inactive for period of time  
 
* (<10mW) when ankle is inactive for period of time  
** the motor controller is is very lower power state (only activity is listen on Rx), motor leads shorted
 
  
** on SM only the accelerometer is active (all other sensors are unpowered)
+
* the motor controller is is very lower power state (only activity is listen on Rx), motor leads shorted
 +
 
 +
* On SM only the accelerometer is active (all other sensors are unpowered)
 
** the accelerometer is programmed to generate an interrupt on certain acceleration conditions
 
** the accelerometer is programmed to generate an interrupt on certain acceleration conditions
** the CPU will periodically (10Hz) awake and check the state of the accelerometer and possibly enter a low power awake state to test other sensors.
+
** the CPU will periodically (10Hz) awake and check the state of the accelerometer and conditionally enter a "mid-power" state to test other sensors.
 
** if sensors suggest the ankle is active, the initialization state is entered
 
** if sensors suggest the ankle is active, the initialization state is entered
 +
 
==== initialization ====
 
==== initialization ====
 
* state entered upon connection of battery is attached or when waking from sleep
 
* state entered upon connection of battery is attached or when waking from sleep

Revision as of 23:33, 14 September 2007

State Machine (Master) Controller

  • 25.38V max supply voltage (6 cell LiPoly)
  • IIC EEPROM for controller parameters (24LCxx)


Off board interfaces

Switch Input

  • external logic switch input for mode control

External Serial Communication and ISP

  • Ability to support a variety of attached serial devices: wired RS-232, Bluetooth, 802.11, and ISP.
  • 1Mbaud (max) RS-232 level ASYNC serial (Tx, Rx, RTS, CTS) :
  • Power for external devices: 5V and Vbat (with 0.25amp self resettable fuse)
  • ISP signals (PGC, PGD, MCLR) for external ISP
  • signals: Vbat, Vcc5, GND, Tx, Rx, RTS, CTS, PGC, PGD, MCLR

Power / Data to Motor Controller

  • logic level ASYNC 2-wire serial between SM and motor controller CPUs
  • logic level output to motor controller fault pin to disable PWM
  • logic level input for motor controller alert status
  • (Vbat) battery power from motor controller
  • sense path to battery for voltage monitoring
  •  ??? board to board stacking connector (more reliable that wires)


Strain, SEA, Motor Temp, Supply current

  • 4 analog inputs to CPU, DC to 500 Hz analog bandwidth
  • 1 x 10k(or more) thermo resistor (requires opamp follower) : AGND and signal
  • 2 x strain gauge bridges (340 or 1k ohm) to high gain INA326 : AGND, SG+, SG-, bridge reference
    • SG bridge reference voltage through 0.1% resistance (1k to reduce bridge current) ideally from AVCC3.3 (ADC reference) or from AVCC5
  • 1 x analog input for SEA hall sensor board (no voltage or current amp required) : 3.3V, AGND, signal

Pager Motor

  • 3 pin header
  • ability to turn on/off pager motor (3.3V)


On board sensors

Ambient Temperature

  • Thermo resistor (>=10k) with opamp follower placed very close to XY axis IMU (or epoxied to XY sensor)

Supply Voltage Monitor

  • (better than) 1% accurate measurement of battery voltage (prevent over-voltage during regeneration)

IMU

  • 3 DOF accelerometer, 2 DOF rate gyros
  • 3axis (SPI) accelerometer LIS3LV02DQ
    • this sensor will be (nearly) always powered and used to wake the processor

  • XY axis (analog) rate gyro IDG300
    • Note: XY is in circuit board plane

AVCC5 monitor

  • If SG bridge is powered from AVCC5 then we need to measure AVCC5/2, and SG bridge offsets depend on AVCC5

LEDs

  • 2 LEDs mounted so as to be externally visible


Low Power Support

  • Design for overall low power
  • Target for sleep power of 5mW (0.12WHr/day - from VBAT), processor is sleeping.
  • RS232 output interface disable (Rx still active - SN75C3223)
  • Control of supply to internal sensors : ambient temperature, IMUs
  • Control of supply to external sensors : ankle angle, SG, SEA, motor temperature


Sensor Power

  • EC30 MR-ENC 15.5mA @ 5V : 77.5mW
  • EC30 HALL SEN 10.6mA @ 5V : 53mW
  • SG : 73mW(340ohm/5V), 10mW (1k/3.3V), 2.7mW(1k/1.6V)
  • IDG300 9.5mA @ 3.3V : 31.mW
  • ADXRS300 6-8mA @ 5V : 35mW
  • ADIS16100 7-9mA @ 5V : 40mW
  • ADIS16006 1.5-1.9 @ 3-5V : 5 mW
  • LIS3LV02DQ 0.6-0.8 @ 2.2-3.3V : < 2.6mW (has programmable acceleration alarms to wake CPU)
  • ankle angle pot : 0.1-1mW
  • Power supply (LT3470) efficiency 70%>5mA, 60%@1mA, 35%@0.1mA, (0.6mW from Vbat when LT3470 enabled)


software

  • ability to reprogram controller over ASYNC serial
  • 2 DMA controllers run the two ADC units at 12 bits, 400 KHz total sample rate
  • Input capture measures PWM period of magnetic rotary encoder / QEI captures encoder position
  • DMA controller sends/receives SPI to digital accelerometer
  • Main code loop runs at 500 Hz
    • decimation of analog inputs
    • reads ankle position
    • reads IMU, estimates orientation
    • reads motor controller status (motor current, motor position, status)
    • processes external communication interface

deep sleep / sleep / initialization

  • when entering a sleep state, some parameters may be written to EEPROM. Specifically the SG offsets will be checked against the stored value, and updated if the offset changes "significantly".

deep sleep

  • (<10uA, <0.25uW) when battery is near death. Disconnect as much of the system as possible from battery.
  • motor leads are shorted with "zero power"

sleeping

  • (<10mW) when ankle is inactive for period of time
  • the motor controller is is very lower power state (only activity is listen on Rx), motor leads shorted
  • On SM only the accelerometer is active (all other sensors are unpowered)
    • the accelerometer is programmed to generate an interrupt on certain acceleration conditions
    • the CPU will periodically (10Hz) awake and check the state of the accelerometer and conditionally enter a "mid-power" state to test other sensors.
    • if sensors suggest the ankle is active, the initialization state is entered

initialization

  • state entered upon connection of battery is attached or when waking from sleep
  • all sensors and hardware are powered, but motor leads remain shorted
  • SM will watch for a transition from ankle on ground (loaded) to ankle in the air.
    • shortly after ankle in the air the K3 strap will force the ankle into the zero position. The set point for the virtual spring is zeroed to this location
    • A small (1amp) current can be used to further guarantee the ankle is against the K3 strap.
    • strain gauges offsets can be zeroed at this point.
    • At this point the motor controller is commanded to enter current mode and the SM proceeds to normal operational mode.

Motor Controller

Motor