Daten vom ADU einlesen

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 10 11 2024  00:13:51      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte


Autor
Daten vom ADU einlesen

    







BID = 794854

Offroad GTI

Urgestein



Beiträge: 12733
Wohnort: Cottbus
 

  


Hallo Leute,

es geht um folgendes:
Die Daten eines Analog-Digital Wandlers (ADS1213) sollen mit einem Atmega eingelesen und auf einem LCD angezeigt werden.

Nur wie muss der µC programmiert werden, dass das auch funktioniert?
Gibt es schon fergite Bibliotheken, die man da einbinden kann?

Angesichts dieses Problem seht ihr mich ziemlich

Vielleicht hat ja jemand einen guten Tipp für mich.


P.S. Das ganze soll für eine mehrkanalige Spannungsmessung sein.


MfG Mathias

_________________
Theoretisch gibt es zwischen Theorie und Praxis keinen Unterschied. Praktisch gibt es ihn aber.

BID = 794870

wulf

Schreibmaschine



Beiträge: 2246
Wohnort: Bozen

 

  

Hallo,
wie du sicher bereits gemerkt hast hat der AD Umsetzer eine SPI Schnittstelle. Du brauchst einen µC mit einer SPI Schnittstelle (meist im USART enthalten) und dann hast du schonmal eine Hardwareunterstützung. Alternativ kannst du auch die gesamte Schnittstelle mit normalen I/O Pins ausprogrammieren, ist aber aufwändig.

Aber auch mit Hardwareschnittstelle wirst du einiges programmieren müssen. Eine Bibliothek für diesen AD Umsetzer (passend zu deinem µC) kannst du zwar im Internet suchen, aber ich hätte keine Hoffnung sowas zu finden.
Also LOS, ran an den Texteditor!!

Übrigens: Hast du schonmal eine AD Umsetzung bei 22Bit gemacht? Da ist auch die Signalverarbeitung auf der analogen Seite und die Spannungsversorgung der ADU kein Spaß mehr. Wenn du da nicht aufpasst gehen sehr schnell einige Bits im Rauschen oder in Störungen unter.

Grüße
Simon


EDIT: Für die Ansteuerung von HD44780 kompatiblen LCDs gibts für die meisten µC bereits Bibliotheken.

[ Diese Nachricht wurde geändert von: wulf am 31 Okt 2011 20:35 ]

BID = 794877

Offroad GTI

Urgestein



Beiträge: 12733
Wohnort: Cottbus


Zitat :
Du brauchst einen µC mit einer SPI Schnittstelle
Zur Anwendung kommt ein Atmega88. Und der sitzt praktischer Weise schon auf einer kleinen Experimentier-Platine.
Programmiert wird er dann in BASCOM.


Zitat :
Hast du schonmal eine AD Umsetzung bei 22Bit gemacht?
Nein.


Zitat :
Wenn du da nicht aufpasst gehen sehr schnell einige Bits im Rauschen oder in Störungen unter.
Das wäre nicht unbedingt das Problem. Eigentlich wollte ich einen 16Bit ADU verwenden, habe dann aber den gefunden, und er ist sogar noch billiger


Zitat :
Also LOS, ran an den Texteditor!!
Schön gesagt. Nur was muss da eingegeben werden?


Zitat :
Für die Ansteuerung von HD44780 kompatiblen LCDs gibts für die meisten µC bereits Bibliotheken.
Glücklicher Weise gibt es dafür auch noch tonnenweise Erklärungen auf AVR-Webseiten. Das wird dann wohl das kleinste Problem werden.


MfG Mathias

_________________
Theoretisch gibt es zwischen Theorie und Praxis keinen Unterschied. Praktisch gibt es ihn aber.

BID = 794880

Her Masters Voice

Inventar


Avatar auf
fremdem Server !
Hochladen oder
per Mail an Admin

Beiträge: 5308
Wohnort: irgendwo südlich von Berlin

was hast du eigentlich gegen den eingebauten AD vom M88?

BID = 794882

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Hallo,

Typischerweise bedient man derlei Chip eher aus Sprachen wie C, denn C ist allgemein geeigneter, Hardware-Treiber zu schreiben, was ja hier gemacht werden muss.

Wie auch immer, der erste Schritt besteht daraus, die Kommunikation mit dem Chip herzustellen, also Daten lesen und schreiben.

Darauf aufbauend erfolgt dann die Kommunikation mit den Registern im ADC, die ja gebraucht werden, um den ADC zu konfigurieren.

Kann man Register des ADCs gezielt manipulieren, dann implementiert man darauf aufbauend ein paar Funktionen um den ADC zu initialisieren, einen Befehl auszuführen, zu testen, ob Daten bereit sind, Samples einlesen und so weiter.

Das alles geschieht halt auf Datenblatt-Basis, wo alle Register und die entsprechenden Bits definiert und erklärt werden. Das geht im Datenblatt ab Seite 18 los.

Zunächst wählt man via Instruction Register aus, welches Register (Registeradresse in Bit0-3) man mit welcher Wortbreite (Bit5-6) lesen (Bit7=1) oder schreiben (Bit7=0) will.

Der Adressoffset des Command Registers ist 0x04 und das Register ist 32 Bit groß. Man würde also, um es zu schreiben, folgenden Wert ins IR schreiben:
IR = 01100100
     ^^ ^ ^---- 0100 (0x4) ist Startadresse
     || +------ Bit 4 muss 0 sein
     |+-------- gewünschte Wortbreite der Leseoperation 11 -> 4 Byte
     +--------- schreiben


Hier könnte man das in eine Funktion kapseln, in BASIC viellecht so:
Function ADS_write_command_reg(Command as Long)

   ADS_write_IREG(&H64)
   ADS_write_long(Command)

End Function



Und so hangelt man sich durchs Datenblatt, bis alles im Texteditor steht .
Meistens beginnt man damit, symbolische Bezeichner für Registeradressen und Bit-Positionen festzulegen, z.B. ADS_INSTRREG_RW = 7 (Lese-Schreibe-Bit), ADS_ADS_INSTRREG_WORD_LEN = 5 (Wortbreite) usw.
Das klingt erstmal blödsinnig, macht es unglaublich leichter, nach zwei Wochen weiterzuprogrammieren, außerdem kann man daraus dann eine Bibliothek erzeugen, von denen auch andere profitieren.



_________________

BID = 794890

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Die 22 Bit wirst du im Leben nicht erreichen, ich würde mich an deiner Stelle mit 10 oder 12 zufrieden geben. Rechne mal aus, in welche Millivolt-Bereiche du da vorstösst. Da Habe deine Bauteiltoleranzen bei 1% ja schon einen grösseren Einfluss als das Achte Bit, von Temperaturschwankungen, Referenzspannung, Rauschen der Versorgungsspannung, Offsets von Verstärkern etc. ganz zu schweigen... Ich würde Perls Meinung dazu gerne mal hören :-O

BID = 794903

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

Ich schliesse mich da an:
Zitat :
Die 22 Bit wirst du im Leben nicht erreichen,
Bei einem sauberen Aufbau, ohne gröbere Schnitzer bei Schaltung und Layout, sollten 16 stabile Bit möglich sein, 18 Bit vielleicht mit Ach und Krach und viel Glück aber die weiteren Bits werden i.W. aus Rauschen bestehen.
Ruhige 20 Bit bekommt man nur bei sehr sorgfältigem Design zu sehen; da steckt dann schon echte Entwicklungsarbeit dahinter.

BID = 794906

Offroad GTI

Urgestein



Beiträge: 12733
Wohnort: Cottbus


Zitat :
Die 22 Bit wirst du im Leben nicht erreichen
Dies ist mir, wie bereits erwähnt, durchaus bewusst.

BID = 795075

Offroad GTI

Urgestein



Beiträge: 12733
Wohnort: Cottbus

@DonComi

Danke für die Erklärung.
Das ist ja doch mehr Aufwand, als gedacht.

Habe gerade noch eine Seite gefunden, auf der ein Quellcode für einen anderen ADU geschrieben steht: Hier

Überblickt jemand auf die Schnelle, inwieweit der Code für den ADS1213 brauchbar ist?

Anbei noch eine Prinzip-Skizze, der geplanten Schaltung.


MfG Mathias

BID = 795093

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Auf den ersten Blick nicht.

Das ist eine Arbeit von vielleicht drei, vier Stunden, dann läuft die Sache; vielleicht weniger.

Allerdings habe ich jetzt mal gegoogelt und http://www-user.tu-chemnitz.de/~heha/hs_freeware/ADS121x.zip gefunden. Der Verfasser hat sich allerdings, sagen wir mal so, nicht an allgemein anerkannte Programmierregeln gehalten, also sehr unübersichtlich und nicht modularisiert.

Mit ein bisschen Aufwand könnte man da sicherlich den interessanten Teil rausholen, ein wenig überarbeiten (vor allem IO-Geschichten) und dann nutzen.




_________________

BID = 795118

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Anbei noch eine Prinzip-Skizze, der geplanten Schaltung.
Schön.
Aber erwarte lieber weder von der Schaltung noch vom Programm, dass da irgendetwas auf Anhieb so läuft, wie du dir das vorstellst.
Du wirst ein oder zwei Muster bauen müssen, an dem du das Verhalten und die Probleme studieren und verbessern kannst, bevor du sagen kannst: So wird's gemacht!
Kurzum, du musst das lernen, wenn etwas brauchbares zustande kommen soll.

Momentan scheint mir, daß du folgende Aufgabenblöcke zu lösen hast:
* Digitales Interface des gewählten µC (an welche Ports schliesse ich was am besten an)
* Analoges Interface des ADC (Vorverstärker, Überspannungsschutz usw.),
* Programmierung der Schnittstelle zum ADC (Datenaustausch und Parametrierung des ADC)
* Programmierung der Schnittstelle zum Display
* Wahrscheinlich Programmierung einer Benutzerschnittstelle (z.B. Tastatur, RS-232, USB)
* Programmierung der eigentlichen Aufgabe (Kalibrierfaktoren, Steuerung der Kanäle, Umrechnungen Binär-BCD-ASCII, Darstellung auf dem Display).

Das alles wird nicht von heute auf morgen möglich sein, und ich garantiere dir eine Menge Fehler und stundenlange, wenn nicht tagelange, Suche nach diesen!







BID = 795124

Offroad GTI

Urgestein



Beiträge: 12733
Wohnort: Cottbus


Zitat :
und ich garantiere dir eine Menge Fehler und stundenlange, wenn nicht tagelange, Suche nach diesen!
Da hast du völlig Recht.
Das bin ich aber auch schon von anderen Projekten gewohnt.

Bis jetzt hatte ich mich aber größtenteils auf Analogtechnik beschränkt.

_________________
Theoretisch gibt es zwischen Theorie und Praxis keinen Unterschied. Praktisch gibt es ihn aber.


Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182306605   Heute : 27    Gestern : 4419    Online : 568        10.11.2024    0:13
3 Besucher in den letzten 60 Sekunden        alle 20.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0552010536194