Skip to content

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?  ->  SYS:I2C:GUARD:1

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:COUNT?  ->  SYS:I2C:GUARD:COUNT:3

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.

SYS:I2C:GUARD:STUCK?  ->  SYS:I2C:GUARD:STUCK:0

Changes

  • 26.8.0: added SYS:I2C:GUARD?, SYS:I2C:GUARD:COUNT?, SYS:I2C:GUARD:STUCK?.