Gast
#5657925
Hallo Forum, ich habe hier einen MCP3913 ADC von Microchip mit 6 Kanälen per SPI an einem STM32. Sporadisch, also etwa einmal bei ca. bis zu 30 Einschaltvorgängen, legt sich der ADC weg. Die Kanäle liefern einen Offset von 0x8000 und reagieren nicht mehr auf neue Werte. Allerdings sieht man noch ein Rauschen auf den Werten und auch der DataReady Pin feuert weiterhin. Die Referenzspannung ist da, der Masterclock ist da. Per Analyzer schaue ich mir die SPI Kommunikation an. Dabei sieht alles OK aus. Ich kann auch immer alle Register mit den erwarteten Werten der Konfiguration zurück lesen. Auch im Fehlerfall. Auch die unbeschriebenen Register haben ihre default Werte. Im Fehlerfall ist direkt das erste Wandlungsergebnis nach dem 1. DataReady schon falsch. Vorher sind die Channel 0. Im Fehlerfall ist auch das MOD Register 0, das passt aber vermutlich zum 0x8000 Offset. Die Bemerkung aus dem Errata zum Resetpuls und dem Masterclock habe ich beherzigt und auch mit dem Analyzer kontrolliert. Der Masterclock wird erst nach der steigenden Reset Flanke gestartet. Nach einem PowerCycle oder Reset des ADC per Reset Pin läuft der ADC wieder. Wenn der ADC einmal läuft, ist mir das Problem während des Betriebs nicht aufgefallen. Ich kann mir das Verhalten nicht erklären. Immer beim Start. Irgendwie passt es zum Errata, aber das habe ich ja beachtet. Die Software sehe ich auch nicht als Problem an, da die kaputten Werte schon im Analyzer in der Antwort zu sehen sind. Was kann die Hardware zu so einem Aussetzer bringen? Ref, AVDD, DVDD sind wie im Datenblatt angegeben abgeblockt. Wenn es ein Bug im Chip wäre, hätten sicherlich mehr Leute das Problem. Das Errata ist von 2015. Hat da jemand eine Idee zu?