System: I2C bus guard¶
JP150PCB 1.3PCB 1.4since 26.8.0generatedJan PřibyslavskýThis page does not apply to the product or PCB revision chosen in the header.
Detection of a SigmaStudio USBi programmer on the DSP's I2C control bus (connector J11). While
a second master is active, the firmware stands down from the bus so that a running download
is not corrupted: the level-meter LEDs freeze on their last frame and the DSP status queries
answer ERROR without touching the bus. The guard does not gate commands that write to the
DSP on request: a host suspends its own polling while SYS:I2C:GUARD? reads 1.
Commands¶
| Command | Function | Parameter | Answer | Since | Boards |
|---|---|---|---|---|---|
SYS:I2C:GUARD? |
A second master is active on the DSP bus | – | SYS:I2C:GUARD:<0|1> |
26.8.0 | 1.3, 1.4 |
SYS:I2C:GUARD:COUNT? |
Programmer episodes since start | – | SYS:I2C:GUARD:COUNT:<n> |
26.8.0 | 1.3, 1.4 |
SYS:I2C:GUARD:STUCK? |
A bus line is held low (hardware fault) | – | SYS:I2C:GUARD:STUCK:<0|1> |
26.8.0 | 1.3, 1.4 |
Since is the release the command appeared in; 26.6.2 is the oldest release documented here, so a command marked 26.6.2 may be older.
SYS:I2C:GUARD?¶
1 from the first sample that shows a second master (a SigmaStudio USBi) until 750 ms after
the last one; the firmware samples the bus lines at 10 kHz. While 1, the level-meter task
skips its DSP read and the DSP status queries answer ERROR without touching the bus. The
guard does not gate commands that drive the bus on request (DSP:SETBLOCK,
DSP:IPAT:SETBLOCK, DSP:LVLMETER:RMS?, AMPx:CLOCK?, SYS:MEAS:TEMP:PWRSTAGE?): a host
suspends its own polling while the guard reads 1. A 0 on its own is ambiguous: the flag is
forced to 0 while SYS:I2C:GUARD:STUCK? is 1, so read both.
SYS:I2C:GUARD:COUNT?¶
Episodes, not samples: one continuous SigmaStudio download is one episode, and activity inside
the 750 ms hold-off extends it. The module's own drivers add an episode when they find the bus
busy or lose arbitration (a missing device, which only fails to acknowledge, does not count).
Free-running since start, not stored, cleared only by a restart. A non-zero count with
SYS:I2C:GUARD? at 0 is the normal state after a SigmaStudio session.
SYS:I2C:GUARD:STUCK?¶
1 when SCL or SDA has been low for 3 s without interruption, far longer than any transaction:
a stuck device, a shorted line or an unpowered bus segment, not programmer activity. While
1, the guard stops suppressing the firmware's bus accesses, so that the fault shows through
the ordinary error answers of the affected commands. Self-clearing once both lines are high
again.
Changes¶
- 26.8.0: added
SYS:I2C:GUARD?,SYS:I2C:GUARD:COUNT?,SYS:I2C:GUARD:STUCK?.