Forum: Mikrocontroller und Digitale Elektronik Daten von einem ADC zum USB


von ADE (Gast)


Lesenswert?

Hallöchen.
Ich versuche einen ADC an USB anzubinden. Ich verwende einen 24bit ADC 
(AD7714) für die AD-Umsetzung und für die Anbindung einen den 
PIC18F2455. Ich habe so weit auch alles theoretisch entworfen, Schaltung 
steht auch. Nur was mir derzeit noch Probleme macht ist, wohin und wie 
soll ich die Daten speichern, die vom ADC kommen, damit sie dann vom USB 
gelesen werden können. Es sollt auch möglich sein Befehle an den PIC zu 
schicken, die der dann entsprechend verwaltet. Als Abtastrate des ADC 
verwende ich 1kHz. Kann sein, dass die Frage viel zu simple ist, aber 
ich bin ein absoluter Neuling auf dem Gebiet. Danke

von ... .. (docean) Benutzerseite


Lesenswert?

PIC (RX/TX) TF232 (USB) PC

von Guido Körber (Gast)


Lesenswert?

Ja ist denn schon Ostern?

Anfänger und 24 Bit A/D...

von ADE (Gast)


Lesenswert?

Muss ich leider machen für meine ABschlussarbeit. Und ich habe im 
Studium noch nie was gehört davon. Ich scheiter schon am SPI... und habe 
nur 10 Wochen Zeit dafür. Ein Hoch auf das Bachelor-System. Brauche also 
immernoch dringend Hilfe

von Michael (Gast)


Lesenswert?

Wie schauts denn um deine Kenntnisse aus? Ich würde empfehlen langsam 
sich ranzutasten wenn SPI schon Probleme verursacht. Also erstmal die 
ADC-Werte auf eine simple LED-Anzeige bringen oder auf ein LCD.

von Guido Körber (Gast)


Lesenswert?

Ich würde erst mal mit einem 8 Bit A/D Wandler anfangen, dann ist der 
Frust nicht so groß, wenn die letzten zwei oder drei Bits nur Rauschen 
sind. Beim 24 Bit Wandler werden wohl eher so um die 12-18 Bit Rauschen 
rauskommen, je nach dem wie viel Glück er beim Aufbau hat.

Funktionierenden SPI am USB gibt es ggf. hier:
http://www.codemercs.com

IO-Warrior

von Ein Tip von einem (Gast)


Lesenswert?

http://www.oshonsoft.com/pic18.html
Wenn es schnell gehen soll.
Hat alles für USB, selbst in Basic!

von Alexander L. (lippi2000)


Lesenswert?

Nimm dir nen Controller, verwende den internen ADC und sende die Daten 
per RS232. Das sollte für das Grundverständnis reichen.

Am besten du nimmst nen Funktionsgenerator und testest dann mal einige 
Signale aus.

Für den 1.Lauf würde ich nie mit 24Bit anfangen und gleich gar nicht mit 
USB. Es sei denn du nimmst nen normalen RS232<-->USB-Wandler mit 
Virtuel-COM-PORT.

von Josef (Gast)


Lesenswert?

Ein weiterer Vorschlag fuer USB AD-Wandler z.B.

ADS1252 in Kombination mit TUSB3410, fuer diesen gibt es bereits eine 
komplette Seriell in USB Umsetzung als Software und diese kann dann noch 
auf eigene Applikation angepasst werden.

-> http://focus.ti.com/docs/prod/folders/print/ads1252.html
-> http://focus.ti.com/docs/prod/folders/print/tusb3410.html

von Michael (Gast)


Lesenswert?

>Ich würde erst mal mit einem 8 Bit A/D Wandler anfangen, dann ist der
>Frust nicht so groß, wenn die letzten zwei oder drei Bits nur Rauschen
>sind.

Also wenn bei acht Bit die letzten zwei/drei Bits rauschen...dafür muss 
man sich aber anstrengen und viel falsch machen. Das hab ja nicht mal 
ich geschafft ^^.

von ADE (Gast)


Lesenswert?

Also das SPI läuft jetzt und ich kann am OSZI die Signale beobachten. 
Logischer Weise schwnaken die letzten 5-6 bit. Das ist aber niht weiter 
wild. Ich soll nur eine Auflösung von 16 bit erreichen und ne Zeitbasis 
von 1kHz. Mein Verständnis ist so weit, dass ich weiß, dass ich die 
Daten von meinem ADC in 2 Arrays speichern sollte. Und jedes Mal wenn 
ein 64 byte Array voll ist, dann ins andere wechseln und das volle an 
den USB schicken. Ich weiß nur nicht wie es richtig geht. Die Bauteile 
PIC18F2455 und AD7714 sind fest, an denen kann ich nichts ändern. Sonst 
die schaltung ist auch fertig und aufgebaut mit sehr präziesere Referenz 
für ADC

von Josef (Gast)


Lesenswert?

hmm ich verstehe das problem nicht.
du weißt wie du daten per spi von adc kriegst aber kannst dann keine 
arrays umkopieren?
das sind doch nur ein paar abfragen und schleifen. in der hauptschleife 
guckste ob der adc nen neuen wert hat und wenn ja speicherst du ihn ins 
array und zaehlst den array index hoch. wenn der bei 64 ist dann 
wechselst du das array und kopierst das alte in den usb 
datenarraybereich und das machste die ganze zeit.
so stellst du dir das doch vor, oder? wieso probierst du es dann nicht 
einfach aus. ist doch mal schnell getestet.

hast du denn irgendwelche programiererfahrungen? wieso machst du so eine 
arbeit wenn du keine erfahrung hast? normalerweise kann man sich seine 
arbeiten doch aussuchen oder warst du zu faul und hast dir nur was vom 
prof geben lassen?

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.