-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NACKs observed while communicating with fan controllers #383
Comments
@gkasprow this seems to be the last reliability issue with Booster. The issue seems to be (using the current quartiq firmware as a reference implementation) the fan controllers give infrequent (typically only once per ~days) NACK errors when operating at 100kHz bus frequency. I don't see anything obviously wrong in the design, but could you quickly stick a scope on them and verify the timing/voltage characteristics please? It might be that something is a little marginal... |
I observe similar issues in another project |
I looked at the signals with the scope and see nothing suspicious. |
@jordens how do you use the I2C peripherals in STM32? |
@gkasprow are you happy that none of the timings / voltage levels look marginal? |
I tried with open-source firmware. I tried to convert the bin file from Quartiq's release to dfu but for some reason, it doesn't work. Do you have a working dfu file? |
We don't switch to SMBus since we don't use or need any of the SMBus features in host mode that would be available at the peripheral level. And the rest is a subset of i2c. That's the same as for the old firmware. |
|
It looks like there are some spurious pulses present, although they appear right at the falling edge, so I suspect this is just transition delay. However, I'm still somewhat surprised to see them. |
Those are ACKs |
Michal spent a lot of time with I2C debugger and scope trying to catch these NACKs. It looks it appears only in the STM32 core but not on the I2C bus. Maybe we should consider replacing fan controllers with Microchip ones? |
What we can do is to move the fan control to a dedicated I2C bus used only by the EEPROM. What do you think @jordens |
Since neither I nor Michal managed to catch any of these NACKs using regular firmware, I'd need a small modification to the firmware that would trigger the scope once it detects NACK. I have a scope with a very long memory and will be able to decode all transfers that appeared before. I'd like to look at it before we release the new HW. |
@ryan-summers Maybe you can help and spin that special firmware. |
The NACks are rare, It's possible that you don't see them for many days. it's best to provoke the explicitly by continuously running transfers on that chip like quartiq/booster#140 (comment) etc. And I don't think the old firmware does a lot of traffic. |
So can you prepare such firmware that generates a lot of traffic on these chips and triggers scope when NACK? |
@gkasprow I've developed a version of the 0.3 release candidate that will toggle the mainboard LEDs (LD9-LD11) on for a very brief moment after the NACK is observed. The LEDs will be de-asserted as soon as the transaction succeeds on the re-attempt. Let me know directly on that PR if you need different behavior for your capture and I'll get it set up. Edit: The PR is quartiq/booster#202 and the branch is |
Thanks, |
The actions run should have binaries and there are instructions on how to use them. |
Ah. It doesn't. But see that PR for them. |
I've just updated that branch to upload the DFU file. Should be available at https://github.com/quartiq/booster/actions/runs/1812387122 now. |
@jordens I'm preparing a new HW revision. What about adding the option of routing a dedicated I2C bus to the fan controller? I will add 0R resistors so one can always revert to the original solution. |
Ok. But populate the old i2c bus connectivity by default, not that new one. then modify a device and test modified firmware. |
Both sound OK to me on a quick glance. |
Let's go for EMC2305. It's simpler, cheaper and from different vendor so has different I2C IP-core in it :) |
We could theoretically solder both fan controllers and enable one of them in software :) |
@gkasprow any results from testing that firmware and debugging the NAKs? |
@michalgaska was testing it with two channels installed. Any conclusion? |
Michal says he is able to catch the issues. He will post diagrams. |
please dump here raw data (10M points). The image is not saying anything. |
Here is the link to the raw data in .CSV: |
it must be some artifact. The signals look clean on the scope/ |
Booster has been observed to sporadically indicate NACKs from the fan controllers. Reference quartiq/booster#140 and #379
The text was updated successfully, but these errors were encountered: