Skip to content

projects/ janelia/ Mouse Joystick/

brake_torque_sensor

Subsystem sheet /brake_torque_sensor of mouse-joystick-pcb, from the board recipe subsystems/brake_torque_sensor.subsystem.yaml.

The brake and torque subsystem: the RTS-5 torque bridge front end with its 10 V excitation and ADS8689 ADC on SPI1, the 12 V regulator that feeds the bridge excitation from the 36 V rail, and the DAC80501-programmed 0 to 48.78 mA current sink that drives the magnetic particle brake.

Board note: board-authored sheet, 6 parts

Notes

  • The torque bridge's analog monitor leaves on J901 (TQ_AOUT, a BNC) as a bench signal; it does not reach the MCU, torque arrives digitally over SPI1.
  • The pulls are the board's (layout convention 10): R904 (10 k to +3.3V) holds TQ_CONVST_CS high so the ADC is idle until firmware frames a conversion; R901, R902, R903 and R905 (10 k to GND) define ~{BRAKE_FAULT}, TQ_SPI_SCK, TQ_SPI_COPI and TQ_CAL_EN while the bus switch is open, so neither the torque ADC nor the fault input floats at reset.
  • The 12 V regulator is the adjustable TPSM365R6 family's 12 V configuration; its PGOOD is PG_12V for the MCU to read before trusting the bridge.
  • The brake sink's fault is ~{BRAKE_FAULT} (open drain, pulled low here); its current readback is BRAKE_ISENSE on GP27 (ADC1).

Ports

The recipe's ports as the sheet symbol carries them, the root label each meets, and the net's class, MCU pin and meaning.

Port Shape Wired to Net Class GPIO Meaning
+3.3V passive shared +3.3V_SW /+3.3V_SW PWR_3V3
+5V passive shared +5V_SW /+5V_SW PWR_5V
+36V passive shared +36V_SW /+36V_SW PWR_HV_BUS
BRAKE_ISENSE output BRAKE_ISENSE /BRAKE_ISENSE MCU_FINE GP27 Brake sink current readback, ADC1¹¹; in as the MCU sees it
DAC_SCL input DAC_SCL /DAC_SCL Default GP17 I2C0 SCL — same bus⁷; out as the MCU sees it, via the bus switch
DAC_SDA bidirectional DAC_SDA /DAC_SDA Default GP16 I2C0 SDA — analog 0x48, brake 0x49⁷; bidi as the MCU sees it, via the bus switch
GND passive shared GND /GND PWR_RETURN_LOCAL
PG_12V output PG_12V /PG_12V Default
TQ_AOUT_MON output open: no-connect flag
TQ_CAL_EN input TQ_CAL_EN /TQ_CAL_EN Default GP18 Torque calibration enable⁷; out as the MCU sees it, via the bus switch
TQ_CAL_EN_INST input TQ_CAL_EN_INST /TQ_CAL_EN_INST INSTRUMENT
TQ_CONVST_CS input TQ_CONVST_CS /TQ_CONVST_CS Default GP15 ADS8689 convert-start / frame, plain GPIO⁷; out as the MCU sees it, via the bus switch
TQ_CONVST_CS_INST output TQ_CONVST_CS_INST /TQ_CONVST_CS_INST INSTRUMENT
TQ_SPI_CIPO output TQ_SPI_CIPO /TQ_SPI_CIPO Default GP12 Torque ADC SPI CIPO (SPI1 RX)⁷; in as the MCU sees it, via the bus switch
TQ_SPI_CIPO_INST output TQ_SPI_CIPO_INST /TQ_SPI_CIPO_INST INSTRUMENT
TQ_SPI_COPI input TQ_SPI_COPI /TQ_SPI_COPI Default GP11 Torque ADC SPI COPI (SPI1 TX)⁷; out as the MCU sees it, via the bus switch
TQ_SPI_COPI_INST output TQ_SPI_COPI_INST /TQ_SPI_COPI_INST INSTRUMENT
TQ_SPI_SCK input TQ_SPI_SCK /TQ_SPI_SCK Default GP10 Torque ADC SPI clock (SPI1 SCK)⁷; out as the MCU sees it, via the bus switch
TQ_SPI_SCK_INST output TQ_SPI_SCK_INST /TQ_SPI_SCK_INST INSTRUMENT
~{BRAKE_FAULT} output ~{BRAKE_FAULT} /~{BRAKE_FAULT} Default GP13 Brake block fault, active low⁷; in as the MCU sees it, via the bus switch
~{BRAKE_FAULT}_INST output ~{BRAKE_FAULT}_INST /~{BRAKE_FAULT}_INST INSTRUMENT

Blocks

The recipe's roles and the placements that fill them on this board.

Role Instance Block Lifecycle Summary
torque_bridge_0_3v3_ina821 torque_bridge_0_3v3_ina821 orb_weaver_private:torque_bridge_0_3v3_ina821 routed RTS-5 bridge front end: 10 V excitation, INA821 gain 191.734, filtered full-scale ADC path and separate half-scale analog output.
hv_to_12v_tpsm365r6 hv_to_12v_tpsm365r6 orb_weaver_tpsm365r6_adjustable:tpsm365r6_adjustable_12v routed High-voltage input to an adjustable 12 V or 7 V rail: TI TPSM365R6F 600 mA buck module, one family source with the FB top leg, the PGOOD bottom leg and the second output capacitor as the variant.
brake_current_sink_0_49ma_dac80501 brake_current_sink_0_49ma_dac80501 orb_weaver_private:brake_current_sink_0_49ma_dac80501 routed DAC-programmed linear constant-current sink delivering 0-48.78 mA into a 24 V magnetic particle brake coil from a 36 V rail: a DAC80501ZDGSR at 3.3 V on I2C feeding a 0.19512 precision divider, an OPA197 integrating error amplifier on a ferrite-filtered 12 V rail driving a BUK7D36-60EX pass device over a 10 ohm Kelvin shunt, a second OPA197 as an independent 56.4 mA current ceiling that clamps the gate through a Schottky, a third as a 0-1.006 V ground-referenced current monitor behind a /2 output divider, an SN74LVC2G17 buffering the ceiling event out as active-low ~{BRAKE_FAULT}, and an S115Q flyback across the in-block 2-position 3.5 mm vertical coil terminal.

Glue

The subsystem's own parts and nets, drawn by the board around the blocks.

References Part Value Role
J901 OW-CONN-HL-BNC-KHDA Conn_Coaxial_HL-BNC-KHDA
R901, R902, R903, R904, R905 OW-RES-10K-0402 10k pullup-pulldown
Net Kind Pins Meaning
+3.3V port R904.1
GND port J901.2, R901.2, R902.2, R903.2, R905.2
TQ_CAL_EN port R905.1
TQ_CONVST_CS port R904.2
TQ_SPI_COPI port R903.1
TQ_SPI_SCK port R902.1
~{BRAKE_FAULT} port R901.1
TQ_AOUT label J901.1