Quantcast
Channel: Motor drivers forum - Recent Threads
Viewing all articles
Browse latest Browse all 14309

MCT8316A: Unable to write to speed register (I2C write requests keep getting NACKd)

$
0
0
Part Number: MCT8316A

Hello! I am using MCT8316AT and controlling the speed of a pump via I2C and writing the duty cycle to the speed register.

After several hours running, the writes to the speed register to adjust the duty cycle and keep the pump at the set speed stop working and do not recover. Every 200 ms I read 3 different registers (CTRL_FAULT, GD_FAULT, and SYS_STATUS2) and write to the speed register (DEVICE_CTRL). I am attaching scope captures below - you can see the write requests are being NACK'd; however, the read requests are ACK'd but always reading back the same values for the 4 bytes. I made sure to keep >100 us between bytes as mentioned in the datasheet. We have ways to work around this but I wanted to understand the issue. Is there an explanation for why this happens and is unable to recover? I'm assuming there is something off with the unloading of the 2 RX/TX buffers which may be preventing the chip from processing requests in the RX buffer causing it to NACK all other requests. But if the device is ACK'ing reads and returning bytes does this not mean the TX buffer should be empty?

Note: We made an update where upon a read request, if the request is NACK'ed our microcontroller does not try again. Instead it stops the transaction and waits until our next 200 ms loop to start fresh read attempts with each register. We implemented this because the device would occasionally enter a state where it would repeatedly NACK all repeat starts after a read request (scope capture attached) and our microcontroller needs to move on to other tasks. Is there an explanation for this also? Is there a suggestion for how to handle this situation?

Thanks,

Patricia


Viewing all articles
Browse latest Browse all 14309

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>