oxidecomputer / oxidecomputer/hubris
PSC's ReadVcap operation probably reports wrong voltage
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
According to ACAN-114, the MWOCP68 PSU's READ_VCAP register is "Bulk Capacitor Voltage Sensor Reading in Vdc", but there's some confusion about the data format. The doc says it's in the normal Linear11 format, but the PSC firmware interprets it as VOutMode(Unsigned): https://github.com/oxidecomputer/pmbus/blob/100d5c2a7a7d8ca92974f444e9b5af4e7a196438/src/mwocp68.ron#L55.
I investigated the READ_VCAP register on the newer MWOCP67 PSUs used by the Observer, and concluded that it's probably in Linear11 format. Specifically, the Linear11 interpretation gives a reading of 465V and the VOutMode interpretation gives a reading of 125V. According to @ericaasen, 465V is more likely to be correct.
So, I'm using Linear11 for READ_VCAP on the Observer's new PSUs. I suspect we should also use Linear11 for the PSC's old PSUs, but we should probably test that before changing it. The steps are to read a MWOCP68's READ_VCAP register using both interpretations and ask an EE which one looks correct. I don't know if we actually use READ_VCAP for anything, so maybe none of this matters very much.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/mwocp68.ron at the READ_VCAP definition and trace how the PSC interprets that register. Read a MWOCP68's READ_VCAP value using both Linear11 and VOutMode(Unsigned), then ask an EE which matches the PSU voltage; done means confirming the format and updating the interpretation if needed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100