JS320 topics#
The JS320 pubsub topic reference, generated with
python -m pyjoulescope_driver metadata --out doc/js320.json and
verified against a device with metadata --diff doc/js320.json.
{
"h/fs": {
"dtype": "u32",
"brief": "The sampling frequency.",
"default": 1000000,
"options": [
[
1000000,
"1 MHz"
],
[
200000,
"200 kHz"
],
[
100000,
"100 kHz"
],
[
50000,
"50 kHz"
],
[
20000,
"20 kHz"
],
[
10000,
"10 kHz"
],
[
5000,
"5 kHz"
],
[
2000,
"2 kHz"
],
[
1000,
"1 kHz"
],
[
500,
"500 Hz"
],
[
200,
"200 Hz"
],
[
100,
"100 Hz"
],
[
50,
"50 Hz"
],
[
20,
"20 Hz"
],
[
10,
"10 Hz"
],
[
5,
"5 Hz"
],
[
2,
"2 Hz"
],
[
1,
"1 Hz"
]
]
},
"h/fp": {
"dtype": "u32",
"brief": "The approximate sample publish frequency.",
"default": 20,
"options": [
[
100000,
"100 kHz"
],
[
50000,
"50 kHz"
],
[
20000,
"20 kHz"
],
[
10000,
"10 kHz"
],
[
5000,
"5 kHz"
],
[
2000,
"2 kHz"
],
[
1000,
"1 kHz"
],
[
500,
"500 Hz"
],
[
200,
"200 Hz"
],
[
100,
"100 Hz"
],
[
50,
"50 Hz"
],
[
20,
"20 Hz"
],
[
10,
"10 Hz"
],
[
5,
"5 Hz"
],
[
2,
"2 Hz"
],
[
1,
"1 Hz"
]
]
},
"h/i_scale": {
"dtype": "f32",
"brief": "The current signal scale factor.",
"default": 1.0
},
"h/v_scale": {
"dtype": "f32",
"brief": "The voltage signal scale factor.",
"default": 1.0
},
"c/ts/!req": {
"dtype": "bin",
"brief": "Timesync request",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_TIMESYNC_SYNC. The host receives this, populates utc_recv and utc_send, and responds to !rsp."
},
"c/ts/!map": {
"dtype": "bin",
"brief": "Timesync map announcement",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_TIMESYNC_MAP containing the computed counter-to-UTC mapping."
},
"c/ts/!rsp": {
"dtype": "bin",
"brief": "Timesync response",
"detail": "The host responds to !req with a MB_VALUE_STDMSG containing MB_STDMSG_TIMESYNC_SYNC with utc_recv and utc_send populated."
},
"c/ts/!resync": {
"dtype": "u8",
"brief": "Force a timesync resynchronization burst."
},
"c/comm/sensor/!req": {
"dtype": "u8",
"brief": "Request to open (true) or close (false) the link interface."
},
"c/comm/sensor/state": {
"dtype": "u8",
"brief": "The link state: 0=disconnected, 1=connected.",
"default": 0,
"flags": [
"ro"
]
},
"c/comm/sensor/tx/!stat": {
"dtype": "bin",
"brief": "The link transmit statistics."
},
"c/comm/sensor/rx/!stat": {
"dtype": "bin",
"brief": "The link receive statistics."
},
"c/comm/tpt/0/tx/cnt": {
"dtype": "u8",
"brief": "The target number of outstanding transmit frames.",
"detail": "0 is off or any positive number is enabled.",
"default": 0
},
"c/comm/tpt/0/tx/sz": {
"dtype": "u16",
"brief": "The transmit frame size in bytes.",
"default": 0
},
"c/comm/tpt/0/tx/task": {
"dtype": "u8",
"brief": "The target task for transmit messages.",
"default": 0
},
"c/comm/tpt/0/rx/!stat": {
"dtype": "bin",
"brief": "The receive statistics."
},
"c/comm/usbd/state": {
"dtype": "u8",
"brief": "The link state: 0=disconnected, 1=connected.",
"default": 0,
"flags": [
"ro"
]
},
"c/comm/usbd/wd_en": {
"dtype": "u8",
"brief": "Comm watchdog enable. 1=normal, 0=inhibit the watchdog reset.",
"default": 1
},
"c/comm/usbd/tx/!stat": {
"dtype": "bin",
"brief": "The device transmit (USB IN) statistics."
},
"c/comm/usbd/rx/!stat": {
"dtype": "bin",
"brief": "The device receive (USB OUT) statistics."
},
"c/./info": {
"dtype": "stdmsg",
"brief": "PubSub instance information.",
"detail": "MB_STDMSG_PUBSUB_INFO with blob descriptors for memory-accessible binary data.",
"flags": [
"ro"
]
},
"c/./!ping": {
"dtype": "bin",
"brief": "Ping a message, replies on !pong."
},
"c/./!pong": {
"dtype": "bin",
"brief": "Response to a ping message."
},
"c/./!err": {
"dtype": "stdmsg",
"brief": "Asynchronous error reporting."
},
"c/./!state": {
"dtype": "bin",
"brief": "A state get or set command."
},
"c/./comm/./!add": {
"dtype": "u8",
"brief": "Comm link connected.",
"detail": "Published by any comm task on this pubsub instance when its link transitions to CONNECTED. Value is the publishing comm task id (u8). Subscribers use this to drive connection-dependent behavior such as immediate timesync resync."
},
"c/./comm/./!rm": {
"dtype": "u8",
"brief": "Comm link disconnected.",
"detail": "Published by any comm task on this pubsub instance when its upstream link leaves CONNECTED (disconnect request, link loss, or peer restart). Value is the publishing comm task id (u8)."
},
"c/sys/tick/en": {
"dtype": "bool",
"brief": "Enable the statistics tick",
"detail": "Manually disabling the tick when pwr==0 can result in unexpected system behavior.",
"default": 1
},
"c/sys/tick/!ev": {
"dtype": "u64",
"brief": "The statistics system tick",
"detail": "Modules should generate statistics using this tick. The value is the time of the system tick. This tick is automatically suppressed when pwr != 0."
},
"c/sys/pwr": {
"dtype": "u8",
"brief": "The system power state",
"detail": "0 is fully on, 0x7f is normal sleep, 0xff is deepest sleep. Each specific system is free to define intermediate values.",
"default": 0,
"range": [
0,
255
]
},
"c/sys/fw/slot": {
"dtype": "u8",
"brief": "The active firmware image slot reported by the bootloader.",
"default": 0,
"flags": [
"ro"
]
},
"c/sys/fw/version": {
"dtype": "u32",
"brief": "The firmware version reported by the bootloader.",
"detail": "The version is formatted as major8.minor8.patch16",
"default": 0,
"format": "version",
"flags": [
"ro"
]
},
"c/sys/hw/version": {
"dtype": "u8",
"brief": "The hardware board version.",
"detail": "The version is an integer",
"default": 0,
"flags": [
"ro"
]
},
"c/sys/!reset": {
"dtype": "u8",
"detail": "Perform a system reset using the selected mb_chip_reset_type_e method",
"options": [
[
0,
"complete"
],
[
1,
"bootloader"
],
[
2,
"software"
],
[
3,
"watchdog"
]
]
},
"c/sys/!cmd": {
"dtype": "bin",
"brief": "Boot and personality info command",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_MEM containing a mb_stdmsg_mem_s read request. Target 1 reads the mb_boot_s structure. Target 2 reads the public mb_personality_app_s (through the app field, 76 bytes). The response is published to {origin_prefix}/!rsp."
},
"c/sys/util/!stat": {
"dtype": "bin",
"brief": "Resource utilization report",
"detail": "Published as a MB_STDMSG_UTILIZATION stdmsg (mb_sys_util_v1_s) once per tick when the utilization option is enabled. Reports CPU, stack, and heap utilization as measured/total u32 pairs so the receiver performs the division."
},
"c/fw/version": {
"dtype": "u32",
"brief": "The controller firmware version.",
"detail": "The version is formatted as major8.minor8.patch16",
"default": 0,
"format": "version",
"flags": [
"ro"
]
},
"c/hw/version": {
"dtype": "u8",
"brief": "The hardware board version.",
"detail": "The version is an integer",
"default": 0,
"flags": [
"ro"
]
},
"c/mode": {
"dtype": "u8",
"brief": "Configure the operation mode.",
"default": 0,
"options": [
[
0,
"normal"
],
[
1,
"fw_update"
],
[
2,
"jtag"
]
]
},
"c/trigger/dir": {
"dtype": "bool",
"brief": "Enable trigger output driver.",
"default": 0
},
"c/trigger/filt": {
"dtype": "bool",
"brief": "Enable trigger output analog low-pass filter.",
"default": 0
},
"c/gpio/vref": {
"dtype": "u8",
"brief": "The GPIO Vref source.",
"default": 0,
"options": [
[
0,
"external"
],
[
1,
"3v3"
]
]
},
"c/led/en": {
"dtype": "u8",
"brief": "Enable software control for Controller Status LED.",
"default": 0
},
"c/led/red": {
"dtype": "u8",
"brief": "The red LED blink pattern.",
"default": 0
},
"c/led/green": {
"dtype": "u8",
"brief": "The green LED blink pattern.",
"default": 0
},
"c/led/blue": {
"dtype": "u8",
"brief": "The blue LED blink pattern.",
"default": 0
},
"c/fwup/!cmd": {
"dtype": "bin",
"brief": "Firmware update command",
"detail": "Binary mb_stdmsg_mem_s header with optional data payload. See mb/stdmsg.h."
},
"c/jtag/!cmd": {
"dtype": "bin",
"brief": "Issue a JTAG command."
},
"c/xspi/!cmd": {
"dtype": "bin",
"brief": "XSPI flash command",
"detail": "Binary mb_stdmsg_mem_s header with optional data payload. See mb/stdmsg.h."
},
"s/./!err": {
"dtype": "stdmsg",
"brief": "Asynchronous error reporting."
},
"s/./info": {
"dtype": "stdmsg",
"brief": "PubSub instance information.",
"detail": "MB_STDMSG_PUBSUB_INFO with blob descriptors for memory-accessible binary data.",
"flags": [
"ro"
]
},
"s/./!ping": {
"dtype": "bin",
"brief": "Ping a message, replies on !pong."
},
"s/./!pong": {
"dtype": "bin",
"brief": "Response to a ping message."
},
"s/./!state": {
"dtype": "bin",
"brief": "A state get or set command."
},
"s/./comm/./!add": {
"dtype": "u8",
"brief": "Comm link connected.",
"detail": "Published by any comm task on this pubsub instance when its link transitions to CONNECTED. Value is the publishing comm task id (u8). Subscribers use this to drive connection-dependent behavior such as immediate timesync resync."
},
"s/./comm/./!rm": {
"dtype": "u8",
"brief": "Comm link disconnected.",
"detail": "Published by any comm task on this pubsub instance when its upstream link leaves CONNECTED (disconnect request, link loss, or peer restart). Value is the publishing comm task id (u8)."
},
"s/sys/tick/!ev": {
"dtype": "u64",
"brief": "The statistics system tick",
"detail": "Modules should generate statistics using this tick. The value is the time of the system tick. This tick is automatically suppressed when pwr != 0."
},
"s/sys/tick/en": {
"dtype": "bool",
"brief": "Enable the statistics tick",
"detail": "Manually disabling the tick when pwr==0 can result in unexpected system behavior.",
"default": 1
},
"s/sys/pwr": {
"dtype": "u8",
"brief": "The system power state",
"detail": "0 is fully on, 0x7f is normal sleep, 0xff is deepest sleep. Each specific system is free to define intermediate values.",
"default": 0,
"range": [
0,
255
]
},
"s/sys/fw/slot": {
"dtype": "u8",
"brief": "The active firmware image slot reported by the bootloader.",
"default": 0,
"flags": [
"ro"
]
},
"s/sys/fw/version": {
"dtype": "u32",
"brief": "The firmware version reported by the bootloader.",
"detail": "The version is formatted as major8.minor8.patch16",
"default": 0,
"format": "version",
"flags": [
"ro"
]
},
"s/sys/hw/version": {
"dtype": "u8",
"brief": "The hardware board version.",
"detail": "The version is an integer",
"default": 0,
"flags": [
"ro"
]
},
"s/sys/!reset": {
"dtype": "u8",
"detail": "Perform a system reset using the selected mb_chip_reset_type_e method",
"options": [
[
0,
"complete"
],
[
1,
"bootloader"
],
[
2,
"software"
],
[
3,
"watchdog"
]
]
},
"s/sys/!cmd": {
"dtype": "bin",
"brief": "Boot and personality info command",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_MEM containing a mb_stdmsg_mem_s read request. Target 1 reads the mb_boot_s structure. Target 2 reads the public mb_personality_app_s (through the app field, 76 bytes). The response is published to {origin_prefix}/!rsp."
},
"s/sys/util/!stat": {
"dtype": "bin",
"brief": "Resource utilization report",
"detail": "Published as a MB_STDMSG_UTILIZATION stdmsg (mb_sys_util_v1_s) once per tick when the utilization option is enabled. Reports CPU, stack, and heap utilization as measured/total u32 pairs so the receiver performs the division."
},
"s/ts/!req": {
"dtype": "bin",
"brief": "Timesync request",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_TIMESYNC_SYNC. The host receives this, populates utc_recv and utc_send, and responds to !rsp."
},
"s/ts/!map": {
"dtype": "bin",
"brief": "Timesync map announcement",
"detail": "Publish a MB_VALUE_STDMSG with type MB_STDMSG_TIMESYNC_MAP containing the computed counter-to-UTC mapping."
},
"s/ts/!rsp": {
"dtype": "bin",
"brief": "Timesync response",
"detail": "The host responds to !req with a MB_VALUE_STDMSG containing MB_STDMSG_TIMESYNC_SYNC with utc_recv and utc_send populated."
},
"s/ts/!resync": {
"dtype": "u8",
"brief": "Force a timesync resynchronization burst."
},
"s/fpga/version": {
"dtype": "u32",
"brief": "The FPGA version.",
"detail": "The version is formatted as major8.minor8.patch16",
"default": 0,
"format": "version",
"flags": [
"ro"
]
},
"s/adc/0/ctrl": {
"dtype": "bool",
"brief": "Enable ADC0 streaming.",
"default": 0
},
"s/adc/0/sel": {
"dtype": "u8",
"brief": "Select the ADC channel for ADC0 streaming.",
"default": 0
},
"s/adc/0/!data": {
"dtype": "bin",
"brief": "The ADC0 streaming data."
},
"s/adc/1/ctrl": {
"dtype": "bool",
"brief": "Enable ADC1 streaming.",
"default": 0
},
"s/adc/1/sel": {
"dtype": "u8",
"brief": "Select the ADC channel for ADC1 streaming.",
"default": 0
},
"s/adc/1/!data": {
"dtype": "bin",
"brief": "The ADC1 streaming data."
},
"s/adc/mode": {
"dtype": "u8",
"brief": "ADC forward mode (PCTS use only).",
"detail": "Mode 1 decimates every ADC channel by 2 and interleaves\nch0/ch1 onto adc/0 and ch2/ch3 onto adc/1 (ignoring adc/N/sel).\nThe host deinterleaves with data[0::2] / data[1::2].",
"default": 0,
"options": [
[
0,
"normal"
],
[
1,
"pcts"
]
]
},
"s/adc/epoch": {
"dtype": "bool",
"brief": "ADC frame epoch tag (PCTS use only).",
"detail": "Toggle after advancing the calibration point. The bit rides in\nthe ADC frame header (commit source bit 3 -> host index bit 3),\nso stale in-flight frames from the previous point carry the old\nvalue and can be discarded by the host.",
"default": 0
},
"s/i/ctrl": {
"dtype": "bool",
"brief": "Enable current streaming.",
"default": 0
},
"s/i/range/mode": {
"dtype": "u8",
"brief": "Select the current range mode.",
"default": 0,
"options": [
[
0,
"off",
"1",
"2",
"3"
],
[
4,
"auto"
],
[
5,
"manual"
],
[
6,
"test_dir"
],
[
7,
"test_seq"
]
]
},
"s/i/range/mb4b": {
"dtype": "u32",
"brief": "Make-before-break MOSFET counter value.",
"default": 15
},
"s/i/range/ctrl": {
"dtype": "bool",
"brief": "Enable current range streaming.",
"default": 0
},
"s/i/range/src": {
"dtype": "u32",
"brief": "The source for the current range streaming channel.",
"default": 0,
"options": [
[
0,
"current range",
"i range"
],
[
1,
"voltage range",
"v range"
],
[
2,
"ovr[3:0]"
],
[
3,
"ovr[7:4]"
],
[
4,
"gpio_in (gpi[3:0])"
],
[
5,
"{trigger_in, trigger_out_w, gpio_out_w}"
]
]
},
"s/i/range/select": {
"dtype": "u32",
"brief": "The current range manual shunt resistor selection.",
"default": 0,
"options": [
[
0,
"off"
],
[
129,
"10 A"
],
[
130,
"180 mA"
],
[
132,
"18 mA"
],
[
136,
"1.8 mA"
],
[
144,
"180 \u00b5A",
"180 uA"
],
[
160,
"18 \u00b5A",
"18 uA"
]
]
},
"s/i/range/min": {
"dtype": "u8",
"brief": "The least sensitive current range for autoranging",
"default": 0,
"options": [
[
0,
"10 A"
],
[
1,
"180 mA"
],
[
2,
"18 mA"
],
[
3,
"1.8 mA"
],
[
4,
"180 \u00b5A",
"180 uA"
],
[
5,
"18 \u00b5A",
"18 uA"
]
]
},
"s/i/range/max": {
"dtype": "u8",
"brief": "The most sensitive current range for autoranging",
"default": 5,
"options": [
[
0,
"10 A"
],
[
1,
"180 mA"
],
[
2,
"18 mA"
],
[
3,
"1.8 mA"
],
[
4,
"180 \u00b5A",
"180 uA"
],
[
5,
"18 \u00b5A",
"18 uA"
]
]
},
"s/i/range/predict": {
"dtype": "u8",
"brief": "Overflow-predict current range (0 = off).",
"detail": "On overflow, the autoranger first hops to this range (when it is\nbelow the active range and ADC1 is parked and settled there)\nbefore falling through to i/range/min if the current still\noverflows. 0 disables prediction: overflow snaps straight to\ni/range/min.",
"default": 0,
"options": [
[
0,
"10 A",
"off"
],
[
1,
"180 mA"
],
[
2,
"18 mA"
],
[
3,
"1.8 mA"
],
[
4,
"180 \u00b5A",
"180 uA"
],
[
5,
"18 \u00b5A",
"18 uA"
]
]
},
"s/i/i0_sel": {
"dtype": "u8",
"brief": "The manual shunt resistor selection for ADC0.",
"default": 0
},
"s/i/i1_sel": {
"dtype": "u8",
"brief": "The manual shunt resistor selection for ADC1.",
"default": 5
},
"s/i/i2_sel": {
"dtype": "u8",
"brief": "The manual shunt resistor selection for ADC2.",
"default": 5
},
"s/i/order": {
"dtype": "u8",
"brief": "The priority order for which ADC input to use.",
"default": 5,
"options": [
[
0,
"012",
"adc0"
],
[
1,
"021"
],
[
2,
"102",
"adc1"
],
[
3,
"120"
],
[
4,
"201",
"adc2"
],
[
5,
"210"
]
]
},
"s/i/!ack": {
"dtype": "u64",
"brief": "Acknowledge i/ctrl applied. Value is the 16 MHz sample_id just after the update; frames that end at or before it predate the change."
},
"s/v/ctrl": {
"dtype": "bool",
"brief": "Enable voltage streaming.",
"default": 0
},
"s/v/range/mode": {
"dtype": "u8",
"brief": "Select the voltage range mode.",
"default": 0,
"options": [
[
0,
"auto"
],
[
1,
"manual"
]
]
},
"s/v/range/select": {
"dtype": "u32",
"brief": "The voltage source selection.",
"default": 0,
"options": [
[
0,
"15 V"
],
[
1,
"2 V"
],
[
2,
"+16 V rail"
],
[
3,
"-16 V rail"
]
]
},
"s/v/!ack": {
"dtype": "u64",
"brief": "Acknowledge v/ctrl applied. Value is the 16 MHz sample_id just after the update; frames that end at or before it predate the change."
},
"s/p/ctrl": {
"dtype": "bool",
"brief": "Enable power streaming.",
"default": 0
},
"s/p/!ack": {
"dtype": "u64",
"brief": "Acknowledge p/ctrl applied. Value is the 16 MHz sample_id just after the update; frames that end at or before it predate the change."
},
"s/stats/scnt": {
"dtype": "u32",
"brief": "Number of 1 Msps samples per block.",
"default": 500000,
"range": [
0,
10000000
]
},
"s/stats/ctrl": {
"dtype": "bool",
"brief": "Enable stats input data stream messages.",
"default": 0
},
"s/stats/!clear": {
"dtype": "bool",
"brief": "Clear statistics."
},
"s/gpi/0/ctrl": {
"dtype": "bool",
"brief": "Enable general purpose input 0 data stream",
"default": 0
},
"s/gpi/1/ctrl": {
"dtype": "bool",
"brief": "Enable general purpose input 1 data stream",
"default": 0
},
"s/gpi/2/ctrl": {
"dtype": "bool",
"brief": "Enable general purpose input 2 data stream",
"default": 0
},
"s/gpi/3/ctrl": {
"dtype": "bool",
"brief": "Enable general purpose input 3 data stream",
"default": 0
},
"s/gpi/7/ctrl": {
"dtype": "bool",
"brief": "Enable trigger input data stream",
"default": 0
},
"s/gpi/+/dwnN/mode": {
"dtype": "u32",
"brief": "The general purpose inputs and trigger downsampling mode",
"default": 2,
"options": [
[
0,
"off"
],
[
1,
"toggle"
],
[
2,
"first"
],
[
3,
"majority"
]
]
},
"s/gpi/+/dwnN/N": {
"dtype": "u32",
"brief": "The general purpose inputs and trigger downsample factor 0 - 16383",
"default": 16
},
"s/gpi/+/dwnN/!ack": {
"dtype": "u64",
"brief": "Acknowledge gpi/+/dwnN/{mode,N} applied. Value is the 16 MHz sample_id at which the new GPI decimation takes effect."
},
"s/gpi/+/!req": {
"dtype": "bool",
"brief": "Request the general-purpose input value."
},
"s/gpi/+/!value": {
"dtype": "u32",
"brief": "The requested general-purpose input values."
},
"s/gpi/src": {
"dtype": "u8",
"brief": "Source for the GPI streaming bus (diagnostic).",
"detail": "Selects what feeds the gpi_decimate path. Mode 0 is the normal hardware GPI bus; modes 1 and 2 route internal ovr bits for autorange diagnostics.",
"default": 0,
"options": [
[
0,
"normal"
],
[
1,
"ovr_lo"
],
[
2,
"ovr_hi"
]
]
},
"s/gpo/0/src": {
"dtype": "u8",
"brief": "Source byte for gpo[0] (8-bit {N[3:0], rsv, src[2:0]}).",
"detail": "[2:0] = source code\n0 register (drives the *_reg input from regfile)\n1 pps (future, drives 0)\n2 uart (future, drives 0)\n3 analog PCM (dsm_out from the shared analog_out instance)\n4 trigger N (future, drives 0)\n5 overflow N (ovr[N])\n6 select N (select[N])\n7 reserved (drives 0)\n[7:4] N: 4-bit channel index for sources 4-6.",
"default": 0
},
"s/gpo/1/src": {
"dtype": "u8",
"brief": "Source byte for gpo[1] (8-bit {N[3:0], rsv, src[2:0]}).",
"detail": "See gpo/0/src for usage.",
"default": 0
},
"s/gpo/7/src": {
"dtype": "u8",
"brief": "Source byte for trigger_out (8-bit {N[3:0], rsv, src[2:0]}).",
"detail": "See gpo/0/src for usage.",
"default": 0
},
"s/gpo/+/!value": {
"dtype": "u32",
"brief": "Force the GPO register bits (8-bit, used when the corresponding gpo/N/src is 0)."
},
"s/gpo/+/!set": {
"dtype": "u32",
"brief": "Set the indicated GPO register bits (only bits [7] trigger_out and [1:0] gpo)."
},
"s/gpo/+/!clr": {
"dtype": "u32",
"brief": "Clear the indicated GPO register bits (only bits [7] trigger_out and [1:0] gpo)."
},
"s/gpo/+/!req": {
"dtype": "u8",
"brief": "GPO read-back request; 0=gpo_val register, 1=post-mux output (gpo_status). Result on gpo/+/!raw.",
"options": [
[
0,
"register"
],
[
1,
"output"
]
]
},
"s/gpo/+/!raw": {
"dtype": "u32",
"brief": "Most recent gpo read-back result."
},
"s/aout/value": {
"dtype": "u32",
"brief": "Manual 16-bit signed value driven to the PCM when src=4.",
"default": 0
},
"s/aout/src": {
"dtype": "u8",
"brief": "Analog-out source selector (3 bits).",
"default": 4,
"options": [
[
0,
"sample_id"
],
[
1,
"current"
],
[
2,
"voltage"
],
[
3,
"power"
],
[
4,
"register"
]
]
},
"s/aout/shift": {
"dtype": "u8",
"brief": "Left-shift count applied to the 48-bit latch (0..32).",
"default": 0
},
"s/aout/!req": {
"dtype": "bool",
"brief": "Read back the actual analog_out FPGA register; result on aout/!raw."
},
"s/aout/!raw": {
"dtype": "u32",
"brief": "Most recent analog_out FPGA register raw u32 reading."
},
"s/dwnN/N": {
"dtype": "u32",
"brief": "The downsampling factor 0 - 1027 for i, v, p from 1 Msps",
"detail": "Downsampling factors 0, 1 are passthrough. 2, 3 promote to 4. Values 4-1000 perform downsampling.",
"default": 0
},
"s/dwnN/mode": {
"dtype": "u32",
"brief": "The downsampling filter for i, v, p",
"detail": "The sincN CIC order. bypass passes through regardless of N. The first order-1 outputs after a change are settling transients (0 for sinc1, 1 for sinc2, 2 for sinc3).",
"default": 1,
"options": [
[
0,
"bypass"
],
[
1,
"sinc1"
],
[
2,
"sinc2"
],
[
3,
"sinc3"
]
]
},
"s/dwnN/!ack": {
"dtype": "u64",
"brief": "Acknowledge dwnN/{N,mode} applied. Value is the 16 MHz sample_id at which the new decimation takes effect."
},
"s/fuse/0/F": {
"dtype": "u32",
"brief": "Fuse accumulation constant 4q14.",
"default": 0
},
"s/fuse/0/K": {
"dtype": "u32",
"brief": "Fuse dissipation constant 8q10.",
"default": 0
},
"s/fuse/0/en": {
"dtype": "bool",
"brief": "Enable/disable the fuse.",
"default": 0
},
"s/fuse/0/engaged": {
"dtype": "bool",
"brief": "Set to 1 when engaged, publish 0 to clear.",
"default": 0
},
"s/fuse/1/F": {
"dtype": "u32",
"brief": "Fuse accumulation constant 4q14.",
"default": 0
},
"s/fuse/1/K": {
"dtype": "u32",
"brief": "Fuse dissipation constant 8q10.",
"default": 0
},
"s/fuse/1/en": {
"dtype": "bool",
"brief": "Enable/disable the fuse.",
"default": 0
},
"s/fuse/1/engaged": {
"dtype": "bool",
"brief": "Set to 1 when engaged, publish 0 to clear.",
"default": 0
},
"s/fuse/30/en": {
"dtype": "bool",
"brief": "Enable/disable the global per-channel fuse. DISABLE AT YOUR OWN RISK.",
"default": 1
},
"s/fuse/30/engaged": {
"dtype": "bool",
"brief": "Set to 1 when engaged, publish 0 to clear.",
"default": 0
},
"s/fuse/31/en": {
"dtype": "bool",
"brief": "Enable/disable the global max fuse. DISABLE AT YOUR OWN RISK.",
"default": 1
},
"s/fuse/31/engaged": {
"dtype": "bool",
"brief": "Set to 1 when engaged, publish 0 to clear.",
"default": 0
},
"s/fuse/+/!clear": {
"dtype": "bool",
"brief": "Clear all engaged fuses."
},
"s/led/en": {
"dtype": "u8",
"brief": "Enable software control for Sensor Status LED.",
"default": 0
},
"s/led/red": {
"dtype": "u8",
"brief": "The red LED blink pattern.",
"default": 0
},
"s/led/green": {
"dtype": "u8",
"brief": "The green LED blink pattern.",
"default": 0
},
"s/led/blue": {
"dtype": "u8",
"brief": "The blue LED blink pattern.",
"default": 0
},
"s/cal/!reload": {
"dtype": "bool",
"brief": "Reload ACTIVE cal from flash into FPGA cal memory."
},
"s/flash/!cmd": {
"dtype": "bin",
"brief": "SPI flash command",
"detail": "Binary mb_stdmsg_mem_s header with optional data payload. See mb/stdmsg.h."
}
}