oxidecomputer / oxidecomputer/hubris

PSC's ReadVcap operation probably reports wrong voltage

Open
#2,543 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

psc
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.