Gen7FW: I2C drivers for onboard temp sensor + TI voltage rail monitor (datasheet-verified via host harness) - #46
Merged
Conversation
…il monitor (INA226/228/3221 autodetect) drivers, i2cscan/rails/onb_temp shell cmds, host test harness 123/123
… RMW, INA3221 CH_EN+MODE RMW, INA226 OVF rail check, rejected-probe ID recording, TMP1075 EM latch); host harness upgraded to realistic silicon models + adversarial suites (297 checks)
datacrystals
force-pushed
the
gen7-hw-drivers
branch
from
September 11, 2026 22:20
b1939d9 to
c6d1150
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on the simulator PR. New Gen7 hardware support that the .ioc had configured but the firmware never initialized:
onb_tempshell command, telemetry/alert wiring.railsshell command,i2cscanprobe utility.No hardware was available, so this went through an extra datasheet audit instead. Four review agents cross-checked the drivers against the actual TI/NXP/ST datasheets (SBOS547C, SLYS021A, SBOS576C, PCT2075 rev 10.1, DS13313) and caught real bugs before bench ever saw them:
0x00FFwould have falsely latched the EM bit and reported 2x the real temperature (fixed: skip EM unless positively ID'd as TMP102-generic).Host-side proof without hardware:
Images/Gen7FW/MainProcessor/tests/host/is a plain-g++ harness (no dependencies) with accuracy-modelled mock devices — TMP1075 (real-0x00FF POR), TMP102 (pointer-masked), INA226 (real CAL transfer function), INA228 (rev-1 ID, 24-bit power), INA3221 (channel-enable gating), plus exact bus-transaction-sequence assertions. 297/297 checks pass locally.The firmware cross-build through the real pipeline (
Images/Gen7FW/build-main-rte.sh foc_demo.json Release, arm-none-eabi) links clean; the.rte-gen7/generatedmirror is updated to match.When the boards show up on the bench:
docs/I2C_HW_Bringup.mdhas the exact power-up + first-scope-check + i2cscan sequence with expected IDs.