AVR16EB14/20/28/32 Silicon Errata

Gast #7526596
Lesenswert?

In den Errata der brandneuen AVR-EB findet sich der etwas unglaubliche Bug

Internal Reference: When ADC is using internal reference and running in active or idle sleep mode, the ADC will have missing codes.

Work Around Use external reference or perform conversions only when device is in standby sleep mode.

Soll das heißen der ADC liefert im normalen Betrieb mit interner Referenz /überhaupt keine/ Werte??

#7526603
Lesenswert?

Hallo,

liefert falsche Werte, so lese ich das auch. Wenn der EB mit dem Bug wirklich in den Handel kommt wäre das übelst schwach. Würde ich mir nicht getrauen. Aber der EB ist laut meines Wissens noch nicht im Handel. Also abwarten und Tee trinken. Bisher waren fast alle Bugs irgendwie human umgehbar.

#7526677
Lesenswert?

Veit D. schrieb:

Gerhard H. schrieb:

Veit D. schrieb:

Aber der EB ist laut meines Wissens noch nicht im Handel.

Direkt von Microchip erhältlich.

Dann wird er wohl so auch in den Handel kommen. Das wäre natürlich äußerst schwach. Damit ist der ADC nahezu unbrauchbar.

Ach das ist ja noch harmlos, es gibt Bausteine da funktionieren komplette Peripherieblöcke nicht, hatten das mal bei einem STMicro SPC und wollten eine Applikation mit CAN-FD bauen und ausgerechnet der ging nicht, bzw. erst nachdem ein neuer Maskensatz produziert wurde, ich hab auch mal mit einem anderen Mikrocontroller rumgespielt, da ging I2C nicht, wenn die Daten zwei mal hintereinander 0x00 sind. Nach solchen Erlebnissen fängt man an das Errata zu lesen bevor man überhaupt einen Controller in Erwägung zieht.

#7526681
Lesenswert?

Veit D. schrieb:

Damit ist der ADC nahezu unbrauchbar.

Naja, ganz so schlimm ist es ja nun auh wieder nicht.

Der Workaround war ja angegeben: Use external reference or perform conversions only when device is in standby sleep mode.

Also entweder eine externe Referenz verwenden, oder den μC für die ADC-Messung in den standby sleep mode schicken.

Viele ADCs in Mikrocontrollern haben ein Störabstands-Problem, wenn man sie im active mode des Controllers betreibt. Nicht selten sind die niederwertigen 2-3 Bits von Rauschen dominiert...

Oft reicht die erzielbare Genauigkeit dennoch, z.B. mit gleitender Mittelwertbildung.

Wer richtig genau messen muß, nimmt eh einen externen ADC.

Gast #7526691
Lesenswert?

Thorsten S. schrieb:

Viele ADCs in Mikrocontrollern haben ein Störabstands-Problem, wenn man sie im active mode des Controllers betreibt.

Also it's no bug, it's a feature? War mit den 12bittigen active-mode Ergebnissen der AVR-Dx bislang sehr zufrieden, wenngleich es nur langsam veränderliche Sensor-Spannungen zu messen gab. Die Mittelwertbildung kann auch gleich in Hardware erfolgen.

Beitrag #7526695 wurde von einem Moderator gelöscht.
#7526697
Lesenswert?

the ADC will have missing codes

heißt bei ADCs eher, dass diese "Lücken" haben, also ganz bestimmte ADC-Rohwerte nicht ausgeben. An genau dieser Stelle hast du dann eine kleine Abweichung, die bei "no missing codes" eben nicht da wäre. Es wird dann der nächstliegende "non-missing code" ausgegeben. (So mein Verständnis).

----, (QuadDash).

#7526704
Lesenswert?

Gerhard H. schrieb:

Soll das heißen der ADC liefert im normalen Betrieb mit interner Referenz /überhaupt keine/ Werte??

"Missing codes" ist in diesem Kontext ein bekannter Fachausdruck. Der ADU liefert immer einen Wert. Was fehlt, sind nur bestimmte Codes, an deren Stelle werden andere (benachbarte) geliefert.

Microchip selbst erklärt das hier: https://microchip.my.site.com/s/article/Explaining-and-reducing-missing-codes-in-microcontroller-ADC

Der ADU überspringt also einen oder mehrere Digitalwerte. Ob, wann und um wieviel ungenauer er dadurch wird, ist aus der Aussage gar nicht zu erkennen.

#7526907
Lesenswert?

Hallo,

was mir noch durch den Kopf geht. Ich frage mich warum in der Familie überhaupt solche komischen Bugs entstehen. Ich meine die Chipentwickler arbeiten doch auch mit Baugruppen die sie schon entwickelt haben. Die fangen doch nicht bei jeder Abwandlung komplett bei Null an. Um hier beim Bsp. zu bleiben. Wenn der ADC beim DA und DB funktioniert wie er soll, wundert es mich das er beim EB nicht 100% funktioniert. Desweiteren arbeiten die doch auch sicherlich mit Simulationssoftware. Warum sehen die sowas nicht vor der Maskenbestellung? Die Chipentwickler werden sicherlich auch nicht von einer Variante zur nächsten in der Controller Familie plötzlich die Fertigungstechnologie wechseln. Also können Problem damit auch ausgeschlossen werden. Ich würde es bei einer kompletten Neuentwicklung verstehen wenn man dann so mutig ist und das Produkt mit Fehler auf den Markt bringt. Aber hier gibt es ja schon Typen der Familie die den Fehler nicht haben. So richtig kann ich den Fehler nicht nachvollziehen.

Ist hier jemand zufällig irgendwo Chipentwickler und kann kurz darüber abreißen wie sowas passieren kann? Es soll nicht nur um Microchip gehen. Andere bringen auch defektes Zeug auf den Markt. ;-)

Gast #7538585
Lesenswert?

So ich war mal neugierig und hab mir ein paar Ergebnisse von meinem Versuchsobjekt AVR16EB28, Datecode 2332, Revision A0-Q ausgeben lassen. Dabei fällt auf daß Richtung 12Bit Maximalwert FFFH immer mehr Einzel-Werte einer eingestellten Messspannung fehlen: Konkret sind es im result2.jpg 0FC7-0FCA. Für den ders selber am Controller ausprobieren will eine kleine .hex anbei die die digitalisierte Messspannung an PD0 im Takt einer LED an PA5 auf dem seriellen Port PA0/1 mit 9600 Baud 8N1 ausgibt. Gewählte interne Referenz ist 2,048V.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren