www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AD Wandler am AT90S2313


Autor: Michael Lippert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen ADS7822 12 bit 75 kHz AD Wandler mit seriellem Output an
einen 2313 gepackt um das Ding auszulesen und die Daten an den PC zu
senden. Ich benutze BASCOM und ich habe den leichten Verdacht, dass
meine Lösung, für jedes der 12 seriellen Bits eine eigene Variable mit
1 Bit Größe zu benutzen seeehhhrr seehhr suboptimal ist. Wie würde man
sowas denn normalerweise ansteuern? Und existiert eine einfache 1 Chip
Lösung um per USB schneller die Daten an den PC zu senden als nur mit
der RS232 Schnittstelle?

Viele Grüße und vielen Dank,
Michael

Autor: HansHans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja und warum nimmst du lauter  Bit Variablen ?
und nicht 2 x Byte oder 1x Word die Restlichen
Bit s sind dann halt Low ..
Ich lese die Daten von einem 16 Bit ADC
(3Bit Control ) + 16Bit Wert) = 19bit so ein

Shiftin Pinb.4 , Portd.6 , Control , 1 , 3  ‘3bit lesen
Shiftin Pinb.4 , Portd.6 , Wert , 1 , 16  ’16 Bit lesen

und das geht ohne Probleme allerdings brauche ich keine 75khz ,
aber auch das sollte gehen .
Gruss HansHans

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für die einfache Anbindung an einen PC wurden hier bereits oft genug
FT245/232 erwähnt. Beide erlauben höherer Übertragungsraten als eine
"echte" serielle Schnittstelle (~10 kByte/sec) - ob die mit Deinem
Wandler theoretisch erforderlichen 115 kByte/sec (12 Bits/Sample * 75
kSample/sec) übertragen werden können, hängt auch von der
Verarbeitungsgeschwindigkeit Deines µCs ab. Schneller als der FT232
wird der FT245, der aber benötigt ein 8 Bit breites Parallelinterface
zuzüglich einiger Handshakeleitungen.
Theoretisch könnte man auch den Prozessor weglassen und mit einem
Schieberegister in Hardware den FT245 mit Daten versorgen. Da scheint
ein CPLD praktisch zu sein.

Allerdings: Was machst Du mit 75 kSample/sec?

Autor: Michael Lippert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ganze ist zum messen der Aktivität von Nervenzellen. Was ist ein
CPLD? Und eine zweite Frage: Wenn ich einen CCD auslese und die Daten
in Echtzeit an den PC senden möchte, wie macht man sowas? Ich hatte die
Idee einen der neuen PICs mit USB2 Interface zu nehmen und einen
schnellen 14 bit ADC. Hat man damit eine Chance?

Autor: Michael Lippert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte auch die Idee mit dem Byte oder Word, aber wie kann ich das
praktisch machen?
Mit IF und dann zB %B0010000000000... addieren? Geht es auch
schneller?

Viele Grüße,
Micha

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um 75 kSample/sec zu übertragen, selbst bei 12 Bit Samplegröße, ist noch
lange kein USB2 erforderlich.

Was das mit Deinem CCD betrifft, ist die zu erwartende Datenrate
entscheidend - und die dürfte wohl auch vom CCD selbst abhängen.


Betr. Deine Addition: Anscheinend benutzt Du Bascom.
Um Dein Sample zu speichern, musst Du einen 16-Bit-Integer verwenden.

Der Shiftin-Befehl von Bascom unterstützt direkt das Verarbeiten von
Wortlängen > 8; Du musst also nur

  Dim Variable As Integer

  Shiftin Pinb.0, Portb.1, Variable, 1, 12

verwenden und fertig.

Um das dann byteweise zu verarbeiten, kannst Du mit den Bascom-Befehlen
Low und High auf die zwei Bytes zugreifen, aus denen Deine Variable
besteht.

  Portc = High(Variable)
  Portc = Low(Variable)

... ob das so sinnvoll ist, hängt von Deiner Hardware ab.
Angenommen, ein FT245 wird verwendet und hängt an Portc, musst Du nach
jedem Anlegen eines Bytes an Portc noch einen Schreibstrobe für den
FT245 erzeugen (Pin /WR auf Low, warten, Pin /WR auf High) und
natürlich dessen Fifofüllstand testen (Pin /TXE testen).
Aber das beschreibt das Datenblatt des FT245.

Autor: Michael Lippert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die guten Tipps!
Der CCD ist fix genug, also die zu verarbeitende Datenrate wären 5 Mio
14 bit Werte pro sek. Also 70 MBit pro s, was gäbs da noch anderes als
USB 2?
Ich habe mal so einen FT245 bestellt und schau mal ob ich mit den 8
MBit schon was machen kann.

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
USB2 ist schnell genug um die knapp 10 MByte/sec des CCD zu übertragen.
Allerdings sollte auch überlegt werden, was auf der PC-Seite damit
geschehen soll - mit einer derartigen Datenmenge irgendwas sinnvolles
anzufangen beginnt etwas schwierig zu werden.

Sowohl für die Signalaufbereitung als auch die Ansteuerung des
USB2-Controllers ist allerdings was deutlich leistungsfähigeres als ein
AVR erforderlich.
USB2-Device-Controller gibt es beispielsweise von Philips, und mit
'nem ARM sollte auch genügend Rechenleistung zur Verfügung stehen.
Du kannst Dir auch mal die EzUSB FX-Controller von Cypress ansehen, die
haben zwar nur einen MCS51-Kern, aber dafür einen sehr gut angebundenen
USB-Device-Controller.

Was möchtest Du mit den CCD-Daten anfangen? Ist das ein
kontinuierlicher Datenstrom? Oder tritt diese Datenrate nur
gelegentlich auf?

Autor: Michael Lippert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also die Daten sollen auf die Platte in Rohform wandern, jedes Frame
als ~500.000 Element Array. Da wird logischerweise die Platte schnell
voll, deswegen läuft es jedesmal auch nur ca. 20 s mit dieser
Datenrate, dann müsste man bei einem neuen Versuch wieder neu per Hand
starten. Nunja, und dann laden wir die Daten in matlab subtrahieren die
einzelnen Frames voneinander und  sehen dem Gehirn der Ratte bei der
Arbeit zu. Deswegen auch die 14 bit, weil es sonst nichts zu sehen
gibt.

Viele Grüße,
Micha

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.