Forum: Mikrocontroller und Digitale Elektronik A/D Cannel am AVR ??


von Merle (Gast)


Lesenswert?

Hi

Ich hab hier ne anfängerfrage aber hoffentlich kann mir jemand helfen.

Wie funktioniert der A/D Wandler eines AT90S4433 ? und wie aktviert man
ihn.

Mfg. Merle

von Frankl (Gast)


Lesenswert?

Siehe Datenblatt

von Martin Zunke (Gast)


Lesenswert?

Ich weiß nicht, wie sehr Du Anfänger bist. C? Assembler? Schon mal was
von Registern und Steuerwörtern gehört?

Wenn nicht, sag was.

:-) mz

von Merle (Gast)


Lesenswert?

Ich bin Absoluter Anfänger und Arbeite mit Assembler und Yaap.

Mfg. Merle

von Martin Zunke (Gast)


Lesenswert?

OK

Ist nicht ganz einfach, aber ich versuche Dich mal wenigstens auf den
Weg zu bringen.

Da Du Assembler kennst, weißt Du ja wenigstens schon, was Register
sind. Port's an einem µC werden quasi durch Register innerhalb des
Prozessors abgebildet. Man greift also nie auf die Port's an sich zu,
sondern auf deren Register (8-Bit Register, jedes Bit steht für einen
Pin). Das zum einen.

Jetzt hast Du sicher mal mitbekommen, das es I/O Ports gibt. Input UND
Output. Aber wie das in der Welt der Bits so ist : 0 oder 1, entweder
oder. Um also festzulegen, ob ein Port(PIN) Ein- oder Ausgang ist,
existiert ein weiteres Register, in dem das festgelegt wird: bei AVR's
ist das das DDRx, wobei x für den entsprechenden Port steht. (Data
Direction Register X)

Damit kann man also festlegen, ob Ein oder Ausgang. A/D Channel liegen
auf so einem I/O Port. Da dieser Port aber  auch als digitaler Port (o
oder 1, respektive 0 Volt oder 5 Volt) verwendet werden kann, ,uß es
noch eine weitere Einstellungsmöglichkeit geben. Im einem sogenannten
Special Function Register wird genau das eingestellt Also ob der Port
als A/D Wandler betrieben werden soll oder nicht. Dazu dient das ADCSRA
Register und da ist Bit 7 das ADEN (A/D enable).

Das alles hilft Dir jetzt nicht konrket weiter. Aber eine ausführliche
Beschreibung kann man in einem solchen Forum nicht liefern. Merke Dir
einfach:

jeder Port hat viele Funktionen, eine muß ausgewählt werden

A/D Wandler, Analog Comparatoren und Interrupts können an und
ausgeschaltet werden

das alles passiert über spezielle Register, die werden in den Dokus
super beschrieben (bei Atmel wirklich super, ich kenne echt beschissene
Dokus, z.B. die von Siemens für ihre 80C51 etc)

Und dann: Zeit spielt eine große Rolle. Nicht immer ist es möglich,
alle Einstellungen für einen Port in einem Abwasch zu erledigen, auch
wenn alle Bits in ein und demselben Register gesetzt werden sollen.
Interrupt-Enables sollte man erst setzen, wenn die Modi eingestellt
sind. Denn wenn enabled, dann gehts ooch gleich ab. Das kann Probleme
bringen (siehe meinen Beitrag "Analog Comparator löst keine IRQ
aus")

Die Ergebnisse der Conversions werden wieder in eigenen Registern
abgelegt usw. und so fort....

Es ist NICHT einfach. Sinnvoll ist sicherlich der Kauf eines Buches,
einige Beiträge hier haben sich damit beschäftigt. Hol Dir da einen
Tipp...

Ich habe A/D noch nicht genutzt beim AVR, aber ich versuche mal eine
Liste aller für Dich relevanten Register anzugeben. Wenn Dein Programm
im Ablauf irgendwie mal mit allen zu tun hatte, dann haste was richtig
gemacht:

DDRA
SFIOR
ADCSRA
ADCL ADCH

(kein absoluter Anspruch auf Vollständigkeit, aber ein Versuch)

Sooo, alles ziemlich wirr, aber ich hoffe hilfreich. Ist nicht so ganz
einfach. Weil man nicht weiß, wie man das zusammenfassen soll. In
meinem Studium gab es zu diesem Thema im weitesten Sinne folgende
Fächer:

Digitale Systeme 1
Digitale Systeme 2
Microcontroller Prog.
Maschinenorientierte Programmierung
Labor für Mikrocontroller Programmierung

5 Semester, wie soll man die so schnell zusammenfassen?!

Ich hoffe, ich konnte Dir ein bißchen helfen

von Merle (Gast)


Lesenswert?

Ja danke jetzt bin ich schon weiter.
Danke.

Mfg. Merle

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
Noch kein Account? Hier anmelden.