These are the two modules I am using:
SOMAM3703-10-2780HFCR
SOMDM3730-10-1782JFIR
I have several of both and every single board is showing this issue. I first noticed the issue when trying to access and update the real time clock. When using the 'hwclock' linux command I would either get a terminal lock-up, a false good but no update or interrupt is issued, or the error message "select() to /dev/rtc to wait for clock tick timed out". The issue actually spans further than this in that all communication between the processor and the TPS65950 power management chip is this flakey.
After a long battle of making sure this wasn't an issue with my custom baseboard or my coworkers custom software and then another long battle of trying to find any issue with the SOM board I finally stumbled upon the error. It seems to be a simple human error ("I must've put a decimal point in the wrong place or something!") and the fix is equally simple. The resistor pack R36 is 470 ohm and should be 4.7k ohm. Simple as that. The two I2C lines that control the power management are held with too strong of a pullup to allow communication. Just remove the resistor pack or replace with an equivalent 4.7k ohm package. I have removed R36 on all of my modules and they all are in working order now with a fully functional real time clock.
I hope this saves someone else the trouble I went through tracking down this error.
|