Other Parts Discussed in Thread: HALCOGEN
Tool/software:
We are using RM48L952DPGET in our product. We have an Incremental Encoder (2 Ch from each left and right wheels) connected to the HET pins of the Micro. Actually the raw differential inputs are connected to the MAX33076 which then converts the differential inputs to Quadrature signals which is directly then fed to the HET pins of the RM48L952. Specifically they are directly connected to Pin 38 (NHET1[06]), Pin 40 (NHET1[19] for left Encoder inputs and for right encoder inputs are connected to Pin 41(NHET1[15] and Pin 54(NHET1[11].
The function of the HET pins are to count the edges of the Encoder signals which then we are reading from the Register that it stores the the value in to see the Encoder Ticks.
The Problem: We have recently received new batch of production boards, where after running the Robot from about 10min we are seeing that the Register which primarily stores the encoder ticks from Right encoder Latches to a random value or latches to a max 25bit value. When we turn the Wheel forward the count increases from max value to 0 and then 1 and then does not change. When we spin the Right wheel in reverse direction, the Right side encoder ticks does decrease but as soon as the wheel stops spinning, it again latches to a random value. In most of the cases the left wheel Encoder ticks are recorded fine.
When we reset the power (restart the Robot) it again runs fine for 10 min and after that the same behavioure is observed again. In that first 10min, both Left and Right Encoder ticks are recorded correctly.
We have used the same revision of boards and same firmware in the past without any issues. This issues is somehow related to the new batch of boards we received. On a faulty board I replaced the Microcontroller and the issue was then not seen again and we were able to run the Robot fine. We have verified that the Encoder signals from Encoder to the input of the micro pins are correct. Just the fact that, after replacing the Micro and in some cases replacing the board from previous batch resolves the issue, directly points fingers to the Micro.
We are using a default HET code for initializing the HET module and to do the pules counting. We are only reading data that is then stored in the Registers as mentioned above. Since the outputs from MAX33076 are directly fed to the above mentioned micro pin and in our default setup the HET pins are neither pulled low or high, we also tried pulling the HET pins to internally pulled low and high and the results were same where the failure occurs in 10min.
What could be wrong with the Micro here? Is this a Hardware failure internal to the Micro or can we do any HET pin configuration change to resolve this? As I mentioned earlier, we have the same hw and FW working for last 1 year in the field without any issues and now we are seeing this on the new batch of production boards. Looking forward to get some help / insights here,