www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 8Bit statt 10Bit ADC bei ATTiny13


Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei einem ATTiny13 möchte ich mit 8 Bit statt 10 Bit wandeln
um eine höhere Rate zu erreichen.
im Datenblatt steht:
If a lower resolution than 10
bits is needed, the input clock frequency to the ADC can be higher than 
200 kHz to get a higher sample rate.

ja und welche Clock rate geht noch?
wie kann ich das erreichen:
13 - µs Conversion Time

und wo stelle ich eine geringere Auflösung ein?

Vielleicht bin ich blind, aber im Datenblatt finde ich echt nix.

Walter

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat immer 10 Bit Auflösung in den zwei Registern, doch die unteren 
zwei kannst du dann sicher wegschmeißen.

Wieviele Clocks eine Wandlung braucht, kannst du nachlesen. Daraus 
kannst du auch schließen, wieviel kHz du einstellen musst, um 13µs zu 
erreichen.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
eine komplette Wandlung dauert 13 Takte, das ist mir klar.
Wenn ich also das Register schon früher auslese habe sind noch nicht 
alle Bits gewandelt, auch klar.

Aber was hat das mit der Frequenz zu tun mit der diese 13 Takte laufen??

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Diese 13 Takte werden mit der ADC clock frequency ausgeführt, bei 200kHz 
dauert eine Wandlung folglich 13*5=65µs.
Für 2 Bit weniger (11 Takte) und 13µs bräuchte man demnach 846kHz, das 
ist wohl doch etwas zu viel.
Fazit: der Tiny13 ist für diese Anwendung nicht schnell genug.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ...Wenn ich also das Register schon früher auslese...
Du kannst das Register nicht früher auslesen. Das Ergebnis wird erst 
nach Ablauf der Wandlung im Datenregister zur Verfügung gestellt. Wenn 
Du eine geringere Auflösung haben willst, kannst Du den Takt über 200 
kHz setzen. Lt. Datenblatt liegt die absolute Genauigkeit des ADC bei 
einem Takt von 1 MHz bei 3 LSB. D.h. Du kannst die letzten beiden Bits 
vergessen. Wenn Du also 8 Bit Auflösung brauchst, kannst Du den ADC mit 
1 MHz (vermutlich auch noch ein Stück mehr) takten. Das ADLAR-Bit 
solltest Du dann auch setzen, dann brauchst Du nur ADCH auszulesen.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die erfahrung gemacht, dass man wenn der ADC höher getaktet ist 
als angegeben ein paar Spikes relativ zufällig verteilt hat, diese sind 
dann ca 1-3 lsb groß. Wenn die dir nichts ausmachen, oder du die gut 
rausfiltern kannst kannst du den ADC richtig hoch takten.

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würd's einfach ausprobieren! Aus 10 bit 8 zu machen ist einfach: das 
Ergebniss (19 bit) der Wandlung 2 bit nach rechts Schieben.
Erg = Erg >>2;

Autor: D. W. (dave) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder wie gesagt ADLAR setzen. Dann findest du im High-Byte die oberne 
8bit und im Low-Byte die 2 LSB.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel scheint das Datenblatt nicht herzugeben. Bei 200kHz ADC-Takt ist 
die Abweichung 2 LSB, bei 1Mhz 3 LSB. 1Mhz ist wohl auch der maximale 
Takt, da die minimale Konvertierungszeit 13 Mikrosekunden sind und eine 
Konvertierung 13 Takte braucht.


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst Du mit den schnellen Ergebnissen anfangen ? Angenommen, alle 
13µs hast Du einen neuen Wert, wo soll der bleiben ? Wie lange braucht 
der Tiny, um ihn sinnvoll zu verarbeiten ? Oder willst Du den Wert nur 
schnell woanders hin weiterleiten ?
Vielleicht stellst Du auch fest, daß Du es garnicht so schnell brauchst.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ johnny.m + ralf
Vielen Dank für die Hilfe,
jetzt habe ich die Tabelle im Datenblatt auch gefunden.
Als Fehler stehen da aber 4,5 LSB, nicht 3.
4.5 sind ja ungefähr 2 Bit, d.h. das 8-Bit Ergebnis ist einigermaßen 
genau.
oder ist da die Abweichung gemeint, also plus/minus 4.5
dann wärens ja nur 7Bit Genauigkeit

@Michael
ich bin nur am rumprobieren und habe gerade einen Tiny13 auf einer 
Testplatine. Später soll es ein Mega8 sein auf dem ich genug Platz habe 
um Werte zu speichern.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> jetzt habe ich die Tabelle im Datenblatt auch gefunden.
> Als Fehler stehen da aber 4,5 LSB, nicht 3.

Hast du vielleicht ein veraltetes Datenblatt? Auf Seite 122 von 
http://www.atmel.com/dyn/resources/prod_documents/... sind 
jedenfalls 3 (bzw. 2,5 im "noise reduction mode") angegeben.

> Später soll es ein Mega8 sein auf dem ich genug Platz habe
> um Werte zu speichern.

Der hat 1kB RAM. Bei 13 Mikrosekunden pro Wandlung passen also nur ca. 
13 Millisekunden rein.

Autor: Walter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rolf

>Hast du vielleicht ein veraltetes Datenblatt? Auf Seite 122 von
>http://www.atmel.com/dyn/resources/prod_documents/... sind
>jedenfalls 3 (bzw. 2,5 im "noise reduction mode") angegeben.
na so was, im aktuellen Datenblatt (von 2004) steht tatsächlich 3, meins 
ist von 2003 und da sinds noch 4,5, alles wird gut ;-)


>Der hat 1kB RAM. Bei 13 Mikrosekunden pro Wandlung passen also nur ca.
>13 Millisekunden rein.
ja, das reicht, ich möchte 2xzwei Halbwellen mit 200 Hz als niedrigster 
Frequenz messen, also insgesamt max 10 msec, zudem brauche ich die 
13mikrosec (oder 77khz) gar nicht ganz, mir reichen auch 20mikrosec 
sprich 40kHz

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.