PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Analog Digital Wandler - allgemeines



crowdy
10.10.2005, 18:50
Hey,

bei den meisten (oder besser vielen) Mikrocontrollern ist die Analog Digital Wandlung integriert nicht so bei meinem µC. Also möchte ich für die Sensoren an meinem Roboter jetzt eine AD Wandlung aufbauen.
Da ich auch nicht allzuviele I/O Ports an meinem µC dafür benötigen möchte hatte ich an eine serielle 8 bit AD Wandlung gedacht.

Bei meinen Recherchen bin ich aber nur auf ADC's gestoßen bei denen jedes Bit eine einzelne Leitung zum Port am µC hatte, aber diese Methode verwendet mir zuviele Ports.
Außerdem habe ich gesehen das man den ADC wohl am Datenbus des µC legen kann.


Nun die Fragen:

Woher kann man serielle ADC zu erschwinglichen Preisen (also nicht gerade 30€ oder so) beziehen?
Wie funktioniert die Verwendung eines ADC's über einen Datenbus, ist damit auch ein hoher programmiertechnischer Aufwand verbunden und was muss von elektrotechnischer Seite aus noch gewährleistet sein?
Was für Tücken bietet die serielle AD Wandlung einem naiven Elektronikneuling?
Kennt jemand von euch noch Dokumentationen oder andere erläuternde Texte zur AD Wandlung?


Vielen Dank schonmal im voraus für die Antworten!

Bernhard667
10.10.2005, 20:06
Hallo,

da gibt es zum Bsp den PCF8591P
Das ist ein serieller ADC und DAC am I2C Bus (auch TWI genannt).
Der kostet ~3€.
Vor einem ADC am Datenbus rate ich Dir eher ab.
Ein Mikrocontroller mit integriertem Flash hat keinen aussen zugänglichen Bus. Natürlich kannst Du das mit Portpins nachbilden, aber mußt viele (8-20) davon opfern um Ihn anzuschliesen.
Programmiertechnisch wäre der parallele allerdings etwas einfacher zu handhaben.
Jedoch ist auch das Ansprechen eines seriellen ADC so schwierig nicht.
Hast Du schon einen I2C Bus mit im Controller oder zumindest softwaremäßig einen nachgebildet.
Dann klappt der ADC am I2C Bus auch.
-Manual des PCF8591 lesen
-die Belegung der Konfigurationsregister daraus lesen
-geht ;-))))

Bernhard

PICture
11.10.2005, 08:36
Hi crowdy!
Meine Lösung ist ganz einfach und billig: seriell-parallel Wandler in beiden Dataübertragungsrichtungen. Für Ausgabe braucht man 2 Leitungen (also Portpins), für Einlesen braucht man 3 Leitungen, egal wieviele bits man überträgt. Hardware und Software sind sehr einfach. Nachteil: langsamer als Parallelübertragung. Interesse?
MfG

crowdy
11.10.2005, 11:16
Vielen Danke Bernhard, das klingt ja schonmal sehr gut!
Ich werde mich jetzt erstmal mit I²C ein wenig beschäftigen, aber PICture an deiner Methode hätte ich auch interesse, wenn du irgendwie ne Seite oder ein DB kennst kannst ja mal den Link sagen, das wäre sehr nett.

PICture
11.10.2005, 11:54
Hi crowdy!
Wenn Du schon meine Lösung Deines Problems wählst, dann kannst Du von mir ein Schaltplan und Programm haben. Weil Du nur AD Wandler einlesen willst, brauchst Du insgesamt 3 Portpins von Deinem MC und ein 166 Schieberegister pro jeden 8-bit AD Wandler. Das Program zum Einlesen von 8 bits in eine Speicherstelle ist 25 Zeilen lang. Ich kann Dir leider keine Links, sondern nur eigene ausprobierte Lösungen anbieten.
MfG

Kjion
11.10.2005, 14:28
Ein Mikrocontroller mit integriertem Flash hat keinen aussen zugänglichen Bus. Natürlich kannst Du das mit Portpins nachbilden, aber musst viele (8-20) davon opfern um Ihn anzuschliesen.

Nein, zum Bespiel der ATMega162, ATMega128, AT90S8515 usw. bieten ein exterens RAM Interface. Daran kann man dann natürlich parallel ADCs anschließen, insbesondere wenn es auf Geschwindigkeit ankommt ist das sehr sinnvoll...

zum Beispiel hier:
http://www.kreatives-chaos.com/index.php?seite=gbcam

Bei einfachen Sachen ist sowas aber natürlich nicht unbedingt zu empfehlen, da sind dann serielle Lösungen wesentlich einfach zu handhaben, dann man nicht so viele Leitungen braucht.

MfG Kjion

PICture
16.10.2005, 07:59
Hallo crowdy!
Wenn Du noch keine A/D Wandler hast, schau Dir mal in dem gleichem Forum das Thema "AD-Wandler abfragen?!" an. Ich denke , das ist das, was Du brauchst, oder?
MfG