Hallo, weiß jemand, wo ich ein aktuelles Errata-Sheet für SAMD10 bzw. SAMD11 finden kann? Bei Microchip bin ich leider nicht fündig geworden. Ich habe ein Problem mit dem ADC, der mir gelegentlich unerklärbare Overruns liefert. Der ADC soll mit 160 Kilosamples pro Sekunde laufen. Ich habe dazu den Timer TC2 so programmiert, dass er alle 300 Takte einen Event an den ADC schickt. Bei 48MHz sind das genau 160kSps. Das ganze funktioniert für ca. 10-20 Sekunden so wie erwartet, dann hängt sich der ADC plötzlich mit einem "data overrun" auf. Die Problemem treten sowohl beim SAMD10 als auch beim SAMD11 auf. Nach mehrren Tagen vergeblicher Fehlersuche fand ich im SAMD21-Errata Sheet folgenden Hinweis: > 1.17 Timer/Counter (TC) > 1.17.1 Spurious TC Overflow > Spurious TC overflow and Match/Capture events may occur. > > Workaround > Do not use the TC overflow and Match/Capture events. Use the corresponding interrupts instead. Wenn dieser Fehler auch bei den "kleinen" Controllern auftritt, könnte das die Ursache für mein Problem sein? PS: Das Errata-Sheet ist hier: http://ww1.microchip.com/downloads/en/DeviceDoc/SAMD21-%20Family-Silicon-%20Errata-and-DataSheet-Clarification-DS80000760C.pdf
Mike schrieb: > 160 Kilosamples pro Sekunde laufen. dann prüfe halt das ResultReady flag, lese dann das Datenregister und starte dann die nächste Wandlung. Ein Overrun sollte dann nicht vorkommen.
Stromverdichter schrieb: > Oops, du verwendest das Event-System, sorry, da kann ich nicht > helfen. Ja, die Events sollen eine möglichst regelmässiges und jitterfreies Sampling ermöglichen. Ich habe es jetzt über den ADC-Interrupt probiert, es scheint zu funktionieren. Bei jedem Interrupt-Aufruf setzte ich Result-Ready usn Overrun-Flag zurück. Allerdings verbrauchen die 160.000 Interrupts pro Sekunde doch einen nicht ganz unerheblichen Anteil der zur Verfügung stehenden CPU-Leistung. Statt die Resultate "händisch" auszulesen, wollte ich das eigentlich per DMA im Hintergrund erledigen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.