Difference between revisions of "Upright"

From DIDEAS Wiki
Jump to: navigation, search
m (Sensors)
m
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
=prototypes=
 +
*[[upright1]]
 +
*[[upright2]]
 +
*[[upright3]]
 +
 +
 +
=UPD=
 +
 +
*MOT filter : 1 eee 888 0 4000  (also 2 eee)
 +
 +
* special 1111 - encoder
 +
* spc 1030 - 1033, read D, Q k,i
 +
* spc 1020 - 1023, set Dk Qk, Di Qi
 +
 +
 +
== PSER to FUP ==
 +
 +
*The PSER board can interface to the FUP with the correct cable:
 +
*Need 5 pin 1.25 mm
 +
*Pin3 (GND) of PSER -> Pin5 of FUP
 +
*Pin9 (Tx out) of PSER  -> Pin 2 of FUP
 +
*Pin10 (Rx in) of PSER -> Pin 3 of FUP
 +
 +
==PFmon==
 +
===special 1106:===
 +
Motor encoder
 +
===special 1111:===
 +
<pre>
 +
  *data++ = ParkParm.qIa;
 +
  *data++ = ParkParm.qIb;
 +
  *data++ = ParkParm.qId;
 +
  *data++ = ParkParm.qIq;
 +
  *data++ = OpenLoopParm.qAngFlux;
 +
  *data++ = CurModelParm.qAngFlux;
 +
  *data++ = EncoderParm.qMechAng;
 +
  *data++ = EncoderParm.qVelMech;
 +
  *data++ = PIParmD.qOut;
 +
  *data++ = PIParmQ.qOut;
 +
</pre>
 +
  
  
 
=Sensors=
 
=Sensors=
* SG1 (torque) -> SG channel 1 (2.0k, 500x)
+
* Hall sensor : AN12 -> PB12 -> adc_0
* SG2 (compression) -> SG channel 2 (8.2k, 122x)
+
* SG1 (torque) -> SG channel 1 (both U1, U2 : 2.0k, 500x) -> PB0 -> adc_1
* SG3 (series) -> SG channel 3 (5.9k, 170x)
+
* SG2 (compression) -> SG channel 2 (U1: 500x ; U2: 8.2k, 122x) -> PB1 -> adc_2
 +
* SG3 (series spring) -> SG channel 3 (U1: 500x; U2: 5.9k, 170x) -> PB2 -> adc_3
 +
 
 
**INA326 gain : 2 * R2/R1  = (2 * 500k/xx)
 
**INA326 gain : 2 * R2/R1  = (2 * 500k/xx)
  
 
=AKCPU2Z Modifications=
 
=AKCPU2Z Modifications=
* JR1 is in position in 2-3
+
* verify JR1 is in position in 2-3
* RB1 changed from 470 ohm to 0.0 ohms.
+
* change RB1 from 470 ohm to 0.0 ohms. - this is to power the strain adapter board
 +
* U1 has 2.0k resistors for all 3 SGs
 +
* U1, M7 has replaced RDP1 with 2.0ohm 0805
 +
* M6 needs dspic replaced
 +
 
 +
=UPSG1=
 +
*U1-U3 populated with 4.096V reference, X60003CIG3Z-41T1CT-ND
 +
*Jumper wire between PO1.1 and PO1.9.  This bridge the SG.REF signal that didn't get routed
 +
*The PCB has two 1K resistors (1st and 2nd) that bridge REF+- to S+. 
 +
*350 ohm resistor across PO1.12 and PO1.11.  This resistor (3rd) bridges REF- and SG-.    (pins 4 and 3)
 +
*The 4th bridge resistor connects REF+ and SG-  (pins 1 and 3)
 +
 
 +
=[http://scripts.mit.edu/~biomechatronics/wiki/index.php?title=BLMD6C BLMD6C]=
 +
*more details for uprights here.
 +
 
 +
 
 +
=Software Modifications=
 +
* QEI changed from 4x to 2x mode as:
 +
** 1) encoder has higher resolution
 +
** 2) gear ratio is higher.
 +
** even in 2x mode, max planterflexion results in count of -27k, close to limit of -32k
 +
* qei.c modified to support both 2x and 4x modes, qei.c needs AK consts.
 +
* timer3.c modified to change sign of motor encoder.
 +
* statemachine.c modified to not have initial dosaflexion
 +
 
 +
= assembly revisions=
 +
== BLFT6C ==
 +
* I3, I4 : installed zener to protect ADC when temp sensor is absent.
 +
 
 +
== BLMD6C ==
 +
* I3 : replaced RX1,RX2 each with a 3.0 ohm in parallel with 4.7 ohm in 0805 packet. Existing 2ohm-0603 failed periodically.
 +
 
 +
 
 +
=dataport=
 +
[http://scripts.mit.edu/~biomechatronics/wiki/index.php?title=Lantronics_WiPort  Wiport]
 +
 
 +
 
 +
==packet==
 +
* 2 bytes sync
 +
* 2 bytes field widths  (several fields with a byte total 'n')
 +
* 1+n bytes of data
 +
*

Latest revision as of 03:47, 8 October 2009

prototypes


UPD

  • MOT filter : 1 eee 888 0 4000 (also 2 eee)
  • special 1111 - encoder
  • spc 1030 - 1033, read D, Q k,i
  • spc 1020 - 1023, set Dk Qk, Di Qi


PSER to FUP

  • The PSER board can interface to the FUP with the correct cable:
  • Need 5 pin 1.25 mm
  • Pin3 (GND) of PSER -> Pin5 of FUP
  • Pin9 (Tx out) of PSER -> Pin 2 of FUP
  • Pin10 (Rx in) of PSER -> Pin 3 of FUP

PFmon

special 1106:

Motor encoder

special 1111:

   *data++ = ParkParm.qIa;
   *data++ = ParkParm.qIb;
   *data++ = ParkParm.qId;
   *data++ = ParkParm.qIq;
   *data++ = OpenLoopParm.qAngFlux;
   *data++ = CurModelParm.qAngFlux; 
   *data++ = EncoderParm.qMechAng;
   *data++ = EncoderParm.qVelMech; 
   *data++ = PIParmD.qOut;
   *data++ = PIParmQ.qOut; 


Sensors

  • Hall sensor : AN12 -> PB12 -> adc_0
  • SG1 (torque) -> SG channel 1 (both U1, U2 : 2.0k, 500x) -> PB0 -> adc_1
  • SG2 (compression) -> SG channel 2 (U1: 500x ; U2: 8.2k, 122x) -> PB1 -> adc_2
  • SG3 (series spring) -> SG channel 3 (U1: 500x; U2: 5.9k, 170x) -> PB2 -> adc_3
    • INA326 gain : 2 * R2/R1 = (2 * 500k/xx)

AKCPU2Z Modifications

  • verify JR1 is in position in 2-3
  • change RB1 from 470 ohm to 0.0 ohms. - this is to power the strain adapter board
  • U1 has 2.0k resistors for all 3 SGs
  • U1, M7 has replaced RDP1 with 2.0ohm 0805
  • M6 needs dspic replaced

UPSG1

  • U1-U3 populated with 4.096V reference, X60003CIG3Z-41T1CT-ND
  • Jumper wire between PO1.1 and PO1.9. This bridge the SG.REF signal that didn't get routed
  • The PCB has two 1K resistors (1st and 2nd) that bridge REF+- to S+.
  • 350 ohm resistor across PO1.12 and PO1.11. This resistor (3rd) bridges REF- and SG-. (pins 4 and 3)
  • The 4th bridge resistor connects REF+ and SG- (pins 1 and 3)

BLMD6C

  • more details for uprights here.


Software Modifications

  • QEI changed from 4x to 2x mode as:
    • 1) encoder has higher resolution
    • 2) gear ratio is higher.
    • even in 2x mode, max planterflexion results in count of -27k, close to limit of -32k
  • qei.c modified to support both 2x and 4x modes, qei.c needs AK consts.
  • timer3.c modified to change sign of motor encoder.
  • statemachine.c modified to not have initial dosaflexion

assembly revisions

BLFT6C

  • I3, I4 : installed zener to protect ADC when temp sensor is absent.

BLMD6C

  • I3 : replaced RX1,RX2 each with a 3.0 ohm in parallel with 4.7 ohm in 0805 packet. Existing 2ohm-0603 failed periodically.


dataport

Wiport


packet

  • 2 bytes sync
  • 2 bytes field widths (several fields with a byte total 'n')
  • 1+n bytes of data