Forum: Mikrocontroller und Digitale Elektronik Datenlogger mit SD Karte, hoher Samplerate und 12-Bit ADC


von Christoph S (Gast)


Lesenswert?

Hallo Leute,

Ich bin eher in der allgemeinen Elektrotechnik angesiedelt und brauche 
daher für diesen Datenlogger umbedingt eure Tipps ;)

Ich möchte 2 analoge Messsignale mit einer Samplerate von je mindestens 
100Sps (optimal: 1kSps) und einer Auflösung von 12Bit ADC messen, und 
auf einer SD Karte speichern. Der Datenlogger selbst sollte mit einer 
Batterie versorgt werden und die Daten der SD Karte auf einem PC 
ausgewertet werden.

Ich habe mich schon Stundenlang (eigentlich Tagelang) auf der Homepage 
von Atmel herumgetrieben, aber nichts passendes gefunden. Den ATmega32 
gibt es fertig am Board, hat aber nur 10-Bit und ich weis nicht, ob 
jedes ATmega 2Bit Oversampling schafft. Leider finde ich auch keinen 
Vertrieb für diese Boards.
Der ATxmega hätte 12-Bits, aber leider finde ich dazu kein Board?

Ein weiteres Problem ist, dass ich für die 
Microcontroller-Programmierung und SMD Löten nicht ausgestattet bin und 
keine Ahnung habe, wie ich einen Microcontroller Programmieren sollte. 
(Grundlagenkurs für C++ war gratis und um sonst!)

Kann mir jemand helfen, mit welchen Bauteilen ich dieses Projekt 
fertigstellen kann, wo ich diese Bestellen kann und wo ich eventuell 
Vorlagen zur Programmierung finde.

Danke im Vorraus,
Christoph

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

12-Bit ADCs gibts z.B. in aktuellen ARM-Controllern (LPC17xx, STM32). 
Zudem gibts die auch auf fertigen Platinen mit Programmer/Debugger.

Wenns Hardwaremaessig ganz einfach sein soll einfach so ein Starterkit 
besorgen. Mit ein bisschen suchen findest du da genug dazu. Das 
Programmieren wird aber wohl keine leichte Aufgabe wenn du davon keine 
Ahnung hast.

Alternativ, wenns unbedingt ein AVR sein soll muesstest du hald auf 
einen externen ADC setzen.

Gruss Christoph

von avr (Gast)


Lesenswert?

Christoph S. schrieb:
> Alternativ, wenns unbedingt ein AVR sein soll muesstest du hald auf
> einen externen ADC setzen.

Die neuen (USB) Atxmegas haben nun (nicht verbugte) 12bit ADCs.

von Christoph S (Gast)


Lesenswert?

Ich habe gehört, dass es für AVR Controller Programmvorlagen gibt, 
deshalb wären mir diese lieber.

Wie heißen die Boards eigentlich, wenn die Controller fix drauf sind und 
man nurmehr ein Programm draufschreiben sollte?

Kann man bei jedem uC einen externen ADC mit einer serielle 
Schnittstelle verbinden?

von Christoph S (Gast)


Lesenswert?

avr schrieb:
> Die neuen (USB) Atxmegas haben nun (nicht verbugte) 12bit ADCs

USB Atxmega -> kann man diese NUR mit USB Verbindung zum PC in Betrieb 
haben?

Was heißt verbugt?

von Kai S. (kai1986)


Lesenswert?

Christoph S schrieb:
> Kann man bei jedem uC einen externen ADC mit einer serielle
> Schnittstelle verbinden?

Mehr oder weniger schon. Der Punkt ist die Betriebsspannung. Wenn der 
ADC und der µC mit der gleichen Spannung arbeiten geht das, sonst ist 
ein Pegelwandler erforderlich (geht aber auch).

Die Frage nach der Hardware ist nicht ganz einfach allgemein zu 
beantworte. Was hast du damit vor und wofür soll es verwendet werden?

Ist es für die einmalige Verwendung im Hobbybereich, oder soll ein 
Serienprodukt daraus werden? Soll es einfach nur irgendwie 
funktionieren, oder soll es eine ausbaufähige Lösung mit Potenzial nach 
oben sein?

Gruß Kai

von Christoph S (Gast)


Lesenswert?

Weder als einmalige Verwendung, noch zur Serienproduktion. Ich möchte 
damit die Reibungskraft von Skiern messen. Der Kraftaufnehmer, 
Verstärker und ein elektrischer Filter funktionieren einwandfrei. Jetzt 
möchte ich die Werte allerdings während der Fahrt messen und speichern, 
um sie danach auswerten zu können.

Die Übertragung von ASCII oder String in ein schönes Programm bekomm ich 
auch mit Labview hin. Das Problem ist also, wie ich die analogen Werte 
speichern soll, um sie irgendwie auf den PC zu bekommen.

Später möchte ich vielleicht noch einen GPS Sensor an eine serielle 
Schnittstelle anhängen, um zu wissen, wie schnell ich unterwegs war.

von Frank K. (fchk)


Lesenswert?

Christoph S schrieb:
> Ich habe gehört, dass es für AVR Controller Programmvorlagen gibt,
> deshalb wären mir diese lieber.

Vorlagen, Bibliotheken und Beispiele gibts für alle Familien.

Schau hier:
http://www.st.com/internet/com/software/lib_drivers_code_examples.jsp

Dazu das Board:
https://www.olimex.com/Products/ARM/ST/STM32-P103/

fchk

von holger (Gast)


Lesenswert?

>Die Übertragung von ASCII oder String in ein schönes Programm bekomm ich
>auch mit Labview hin. Das Problem ist also, wie ich die analogen Werte
>speichern soll, um sie irgendwie auf den PC zu bekommen.

Dann nimm doch einen kleinen Laptop/Tablet plus USB AD Karte
im Rucksack mit.

>und keine Ahnung habe, wie ich einen Microcontroller Programmieren sollte.
>(Grundlagenkurs für C++ war gratis und um sonst!)

Also Null Ahnung. Wie viel Zeit hast du für das Projekt?
Wie viel Zeit kannst du investieren um das alles zu lernen?
Wie viel Geld möchtest du dafür ausgeben?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Über welche Spannungspegel reden wir denn hier?
Das Signal muss vorm ADC noch aufbereitet werden.

Nen 12bit ADC für I2C/SPI raussuchen, an AVR häkeln und an SPI noch die 
SD Karte.
Alles mit 3,3V Versorgen (max 12,882MHz), nen ATMega 324 zB nehmen 
(Pinkompatibel zum 32er).
GPS Module sehen auch gerne 3,3V

Eine SD Lib die auch gleichn FAT32 Dateisystem hat gibs hier auf der 
Webseite.
Die rohen ADC Werte dann einfach als ACSI in eine Datei auf die SD Karte 
klatschen.

Das Einzige was dann hier SMD ist wär der SD Kartenhalter.
Lässt sich aber durch den kauf einer MIcro SD umgehen.
Die kommen meist mit Adapter auf groß SD, den Adapter dann fest einlöten 
und nur die Micro SD nutzen.

Als Wandler bietet sich nen ADS7822 an.

von Christoph S (Gast)


Lesenswert?

Frank K. schrieb:
> Dazu das Board:
> https://www.olimex.com/Products/ARM/ST/STM32-P103/


Danke für die Links! Kann ich diesen ARM direkt mit einem USB Kabel 
programmieren, oder brauche ich noch zusätzliche Hardware?

von Frank K. (fchk)


Lesenswert?

Christoph S schrieb:
> Frank K. schrieb:
>> Dazu das Board:
>> https://www.olimex.com/Products/ARM/ST/STM32-P103/
>
>
> Danke für die Links! Kann ich diesen ARM direkt mit einem USB Kabel
> programmieren, oder brauche ich noch zusätzliche Hardware?

https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/

fchk

von holger (Gast)


Lesenswert?

>Danke für die Links! Kann ich diesen ARM direkt mit einem USB Kabel
>programmieren, oder brauche ich noch zusätzliche Hardware?

Du brauchst einen JTAG Programmer. Siehe Link links oben im Menü.
Da kannst du dir was aussuchen. Und dann viel Spass beim zusammensuchen
von Toolchain usw... Für Anfänger eher nicht geeignet.

von avr (Gast)


Lesenswert?

Christoph S schrieb:
> avr schrieb:
>> Die neuen (USB) Atxmegas haben nun (nicht verbugte) 12bit ADCs
>
> USB Atxmega -> kann man diese NUR mit USB Verbindung zum PC in Betrieb
> haben?

Quatsch. Die haben nur USB-Peripherie. USB Atxmega weil das die neueren 
Atxmegas sind, wo Fehler im Analogteil behoben wurden.

> Was heißt verbugt?

google kaputt?

von Christoph S (Gast)


Lesenswert?

holger schrieb:
> Dann nimm doch einen kleinen Laptop/Tablet plus USB AD Karte
> im Rucksack mit.

Die Geschwindigkeiten sind leider so hoch, dass der Luftwiderstand 
Fehler verursachen würde. Es sollte alles unter dem Rennanzug Platz 
finden ;)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Mein Post wird grade ignoriert?

Wenne dir das mitm AVR ned zutraust, könnt ich gegen ne kleine Spende 
das bauen mit den rausgeführten Pins zum AD Wandler.

von ... (Gast)


Lesenswert?

Christoph S schrieb:
> Die Geschwindigkeiten sind leider so hoch, dass der Luftwiderstand
> Fehler verursachen würde.

Kommst du denn mit dem Geschwindigkeitslimit der zivilen GPS-Empfänger 
klar? ;-)

von Christoph S (Gast)


Lesenswert?

holger schrieb:
>>Danke für die Links! Kann ich diesen ARM direkt mit einem USB Kabel
>>programmieren, oder brauche ich noch zusätzliche Hardware?
>
> Du brauchst einen JTAG Programmer. Siehe Link links oben im Menü.
> Da kannst du dir was aussuchen. Und dann viel Spass beim zusammensuchen
> von Toolchain usw... Für Anfänger eher nicht geeignet.

Wenn man es mit Header Board und JTAG Programmer hardwaremäßig auskommt, 
bin ich zuversichtlich.

Ich habe allerdings noch Fragen zur richtigen Vorgehensweise:
Also die 2 Teile bestellen und sich ins Programmieren einlesen, bis das 
ganze zu Hause ist.
Danach beides an den PC anschließen und den Cortex M3 am Board 
programmieren.
Wenn alles richtig Programmiert ist, eine externe Spannungsversorgung 
für das Board besorgen, SD Karte einlegen, analoge Eingänge und GPS Maus 
anschliesen und man kann ohne PC zu Messen beginnen.
Sehe ich das so richtig?

von holger (Gast)


Lesenswert?

>Wenn man es mit Header Board und JTAG Programmer hardwaremäßig auskommt,
>bin ich zuversichtlich.

Hmm.

>Ich habe allerdings noch Fragen zur richtigen Vorgehensweise:
>Also die 2 Teile bestellen und sich ins Programmieren einlesen, bis das
>ganze zu Hause ist.

Zwecklos. Ohne beides da zu haben kannst du lesen ohne Ende.
Ein Programm kommt dabei nicht heraus.

>Danach beides an den PC anschließen und den Cortex M3 am Board
>programmieren.
>Wenn alles richtig Programmiert ist, eine externe Spannungsversorgung
>für das Board besorgen, SD Karte einlegen, analoge Eingänge und GPS Maus
>anschliesen und man kann ohne PC zu Messen beginnen.
>Sehe ich das so richtig?

Im Prinzip schon. Ein bisschen Kleinarbeit ist da schon noch zu machen.
Ich denke wir werden noch oft von dir hören;)

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Mein Post wird grade ignoriert?
>
> Wenne dir das mitm AVR ned zutraust, könnt ich gegen ne kleine Spende
> das bauen mit den rausgeführten Pins zum AD Wandler.

Nein natürlich nicht ;)

Danke, aber mit dem Löten bin ich schon vertraut. Eine Hilfe brauche ich 
bei der Auswahl der Hardware. Aus dem Grund bin ich hier im Forum. Wie 
werden AVR Programmiert? kann man sich bei diesen den Programmer 
ersparen?

von Kai S. (kai1986)


Lesenswert?

Unabhängig von der Hardware (selbst gebaut oder fertigs Board) würde ich 
auf alle Fälle auf die Feuchtigkeit achten (von außen Schnee, von innen 
Schweiß).

Mein Vorschlag wäre eine Selbstbauvariante mit minimalem 
Materialeinsatz:
- ATTiny 84
- SD Karte
- Spannungsversorgung (z.B. 9V Block und kleinen Spannungsregler)

Der µC hat "nur" eine 10 Bit ADC, was aber vermutlich vollkommen 
ausreicht, da es mit der internen Spannungsreverenz von 1,1 V auch schon 
eine Auflösung von 1mV entspricht. Das muss die Hardware erstmal 
hergeben (weiß natürlich nicht, was du als Hardware hast). Sollte es 
nicht ausreichen kann man immer noch einen externen ADC anschließen.

Bräuchtest dann noch einen Programmieradapter für das ganze, die kosten 
aber auch nicht die Welt.
z.B.
http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-ALL-AVR/3/index.html?;ACTION=3;LA=446;ARTICLE=110345;GROUPID=2969;artnr=DIAMEX+ALL+AVR;SID=10UCT6h38AAAIAAGtWgYcc29ef4cc908235996ef89f1a9154c399

Gruß Kai

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Hier hast Du alles auf einem Board:
http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html
Die 12 Bit sind bei dem hier verwendeten Atmel XMega mit Vorsicht zu 
geniessen, warscheinlich kommst Du aber eh mit 10Bit aus.
Programmieren kannst Du das Board in  C, BASCOM oder LunaAVR.
Mit dieser Lösung bekommst Du wahrscheinlich am schnellsten was auf die 
Beine gestellt.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Fürn AVR brauchste auchn Programmer, da empfehle ich den USBasp (10€ bei 
ebay).
Oder du hast nochn LPT, dann lässt sich da was aus 4 Widerständen 
basteln.

von Christoph S (Gast)


Lesenswert?

So danke für die guten Vorschläge bisher. Ich habe 2 Paletten 
zusammengefasst, die mich interessieren.

1) Die beiden ADC extern http://www.ti.com/lit/ds/symlink/ads7822.pdf
Als Programmer den DIAMEX ALL AVR 
http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-ALL-AVR/3/index.html?;ACTION=3;LA=446;ARTICLE=110345;GROUPID=2969;artnr=DIAMEX+ALL+AVR;SID=10UCT6h38AAAIAAGtWgYcc29ef4cc908235996ef89f1a9154c399
Beim Board bin ich mir noch nicht sicher. Ich habe in einem anderen 
Thread gelesen, dass manche uC nicht die gewünschte Samplerate 
erreichen. Habt ihr Vorschläge dazu? Mit Link zum Bestelle am besten.


2) Alles im selben Board: 
https://www.olimex.com/Products/ARM/ST/STM32-P103/
Und zum JTAG Programmieren: 
https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Was meinste mit gewünschte Samplerate nicht erreichen?

Den AVR und die ADCs löteste einfach aufn Lochraster mit Quarz und ISP.
Da brauchste kein Board.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Wenn Du das von mir oben genannte Board
http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html
nimmst, kannst Du das auch mit Bootloader bestellen. Das heisst Du 
benötigst dann keinen Programmer.

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Was meinste mit gewünschte Samplerate nicht erreichen?

Ich möchte mindestens 100 Messwerte pro analog-Kanal erreichen.

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Den AVR und die ADCs löteste einfach aufn Lochraster mit Quarz und ISP.
> Da brauchste kein Board.

Also einfach ADCs, einen ATmega und einen Programmer und die ersten 
beiden zusammenlöten, oder?

von Christoph S (Gast)


Lesenswert?

Albert M. schrieb:
> Wenn Du das von mir oben genannte Board
> http://www.alvidi.de/shop/product_info.php?info=p3...
> nimmst, kannst Du das auch mit Bootloader bestellen. Das heisst Du
> benötigst dann keinen Programmer.

Wo finde ich einen Bootloader?

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Der Bootloader ist ein Programm auf dem Prozessor-Chip, was es Dir 
erlaubt Deine Software über die serielle Schnittstelle auf den Chip zu 
flashen.
Bei dem von mir genannten Board befindet sich ein Schnittstellenwandler 
USB-Seriell bereits on Board. Du kannst also dein Board mit einem 
USB-Kabel mit einem PC verbinden. Diese Schnittstelle erscheint auf dem 
PC als virtueller Port und kann von der benutzen Programmiersoftware 
angesprochen werden. Somit kannst Du ziemlich einfach Dein Programm auf 
das Board übertragen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Jo 100Werte/s haste erwähnt.
Aber warum soll das nicht gehen?

Der ADC selbst schafft 200.000 Werte/s, also kein Problem.
Der AVR muss 2x8bit auslesen per SPI (Der ADC füllt nach 12bit mit 0en 
aus).
Das sind bei 2 Kanälen zu 100W/s, 400byte/s.
Das geht locker übern SPI, der mit Quarztakt/2 laufen kann.
Zum schreiben auf die SD Karte is auch noch genug Zeit.

Also nen Timerinterrupt, der mit 100Hz auslöst.
Darin werden beide ADC ausgelesen und die Werte kommen in RAM des AVR.
Von dort liest dann die Hauptschleife den RAM Abschnitt aus und 
schreibts auf die SD Karte.

Bei meinem MP3 Projekt gehen 40kbyte/s von SD karte übern AVR in nen 
Puffer des MP3 decoders.

von Christoph S (Gast)


Lesenswert?

Martin, welche Bauteile kannst du mir empfehlen?
Die ADCs hast du mir ja schon gezeigt.

von Christoph S (Gast)


Lesenswert?

Albert M. schrieb:
> Der Bootloader ist ein Programm auf dem Prozessor-Chip, was es Dir
> erlaubt Deine Software über die serielle Schnittstelle auf den Chip zu
> flashen.
> Bei dem von mir genannten Board befindet sich ein Schnittstellenwandler
> USB-Seriell bereits on Board. Du kannst also dein Board mit einem
> USB-Kabel mit einem PC verbinden. Diese Schnittstelle erscheint auf dem
> PC als virtueller Port und kann von der benutzen Programmiersoftware
> angesprochen werden. Somit kannst Du ziemlich einfach Dein Programm auf
> das Board übertragen.

Was bedeutet auf der Produktwebseite 
http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html 
oben im Pulldown Menü BOOTLOADER_KEY_MODE?
Und wieso benötigt man noch einen Quarz? Ist der noch nicht auf dem 
Board?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Na dann noch nen ATMmega324 als Gehirn mit 12,882MHz Quarz.
Sonst brauchst nix weiter außer das Konstrukt mit der Micro SD Karte.
was noch weiter benötigt wird hängt von deinen zu messenden Spannungen 
ab und der Stromversorgung.

Die Grundbeschaltung eines AVR gibs zur Genüge im Netz sowe den 
Anschluss der SD Karte am AVR.

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Na dann noch nen ATMmega324 als Gehirn mit 12,882MHz Quarz.
> Sonst brauchst nix weiter außer das Konstrukt mit der Micro SD Karte.
> was noch weiter benötigt wird hängt von deinen zu messenden Spannungen
> ab und der Stromversorgung.

Meinst du einen ATmega324 als DIP Bauteil?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Jops:
http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-324PA-PU/3//index.html?ACTION=3&GROUPID=2959&ARTICLE=121841&SHOW=0&START=0&OFFSET=500&;
SMD wollteste ja nich (klang jedenfalls so).
Passt auch schön auf Lochraster (Sockel empfielt sich).

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Christoph S schrieb:
> Was bedeutet auf der Produktwebseite
> 
http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html
> oben im Pulldown Menü BOOTLOADER_KEY_MODE?

Da kannst Du Dir verschiedene Bootloader aussuchen.
Wenn Du nicht weisst welchen, einfach mal bei Alvidi fragen was die 
unterschiede sind.

> Und wieso benötigt man noch einen Quarz? Ist der noch nicht auf dem
> Board?

Der Quarz ist im Boardpreis inbegriffen. Ich würde Dir für eine 
problemlose schnelle Datenübertragung vom/zum PC den 14.7456 MHz Quarz 
empfehlen. Du kannst natürlich auch mit dem Chip-internen Taktgenerator 
arbeiten. Aber wenn der Quarz nunmal zum Lieferumfang gehört ...

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Jops:
> http://www.reichelt.de/Atmel-ATMega-AVRs/ATMEGA-32...
> SMD wollteste ja nich (klang jedenfalls so).
> Passt auch schön auf Lochraster (Sockel empfielt sich).

Wie kann ich den Programmieren?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Steht hier alles auf der Webseite.
Den proggste in C mit WinAVR oder AVR Studio.
Das Programmiergerät heißt AVR ISP (gibt verschiedene).
USBasp gibs fürn 10er beim ebaychinesen.

von Christoph S (Gast)


Lesenswert?

Albert M. schrieb:
> Der Quarz ist im Boardpreis inbegriffen. Ich würde Dir für eine
> problemlose schnelle Datenübertragung vom/zum PC den 14.7456 MHz Quarz
> empfehlen. Du kannst natürlich auch mit dem Chip-internen Taktgenerator
> arbeiten. Aber wenn der Quarz nunmal zum Lieferumfang gehört ...

Okay also einfach den Quarz mitbestellen und einbauen..

Und zur Auflösung: Du hast angedeutet, dass die Auflösung nicht 
unbedingt 12bit sind. Kann ich dazu noch 2 externe ADCs und eine GPS 
Maus schalten? (natürlich alles SPI-konform) Hat dieses Bauteil genügen 
SPI Eingänge?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Google mal nach SPI, das isn Bus.
Da kannste also viele Geräte anschließen.
Deshalb hat jdes SPI gerät nen chip select.
DEr chip select muss dann an irgendein Portpin des Controllers mit der 
das SPI gerät auswählen kann.

GPS ist meist UART.

von Christoph S (Gast)


Lesenswert?

Martin Wende schrieb:
> Google mal nach SPI, das isn Bus.
> Da kannste also viele Geräte anschließen.
> Deshalb hat jdes SPI gerät nen chip select.
> DEr chip select muss dann an irgendein Portpin des Controllers mit der
> das SPI gerät auswählen kann.
>
> GPS ist meist UART.

Also kann ich genügend SPI Geräte an einen uC anschließen, oder?
Durch die Programmierung kann ich das ausgewählte Gerät festlegen

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Christoph S schrieb:
> Und zur Auflösung: Du hast angedeutet, dass die Auflösung nicht
> unbedingt 12bit sind. Kann ich dazu noch 2 externe ADCs und eine GPS
> Maus schalten? (natürlich alles SPI-konform) Hat dieses Bauteil genügen
> SPI Eingänge?

2 externe ADCs geht. Ich würde aber zuerst mal mit dem ADC vom XMega 
probieren, insbesondere da die verlangte Samplerate sehr niedrig ist.

GPS-Mouse eher fraglich wenn Du das Protokoll der Mouse nicht kennst. 
Wie Du die elektrisch da reinbekommst frag mal andere hier.
Da würde ich lieber ein GPS-Mudul kaufen bei dem die Schnittstelle und 
das Protokoll dokumentiert sind.
Wenn Du nicht fitt in C bist, würde ich das Ganze in Bascom 
programmieren, um das ganze zeitnah installiert zu bekommen :)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Gibt ja nicht viele GPS Protokolle, meist isses NMEA.

von Christoph S (Gast)


Lesenswert?

Ich glaube, dass es für mich am besten ist, wenn ich das fertige Board 
kaufe:
http://www.alvidi.de/shop/product_info.php?info=p34_AVR-ATxmega-USB-Extended-Modul-mit-ATxmega256A3.html 
Für das andere bin ich wahrscheinlich noch zu unerfahren.
Da bestelle ich wie schon besprochen den 14,75MHz Quarz und bei die 
freie Installation, die man auswählen kann, informiere ich mich noch. 
Außer hier kann mir jemand was empfehlen.

Zum Programmieren benötigt man zusätzlich nur ein USB Kabel und die 
Bootloader Software. Ich schätze, man kann das Programm so gestalten, 
dass die Daten binär oder Hex auf der SD Karte gespeichert werden 
können.

Die Spannungsversorgung ist hier extern.

Wenn die Auflösung zu ungenau ist, kann ich mir später noch externe ADCs 
kaufen. Ist die Messung von negativen Spannungen ein Problem?

Bei dem GPS Signal lasse ich mir noch Zeit. Das packe ich erst im 
nächsten Ausbauschritt an ;)

So ich hoffe, dass ich damit alles machen kann, was ich brauche.
Vielen Dank für eure Hilfe und falls etwas in dem Beitrag nicht so 
stimmt, bitte sofort melden

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Christoph S schrieb:
> Zum Programmieren benötigt man zusätzlich nur ein USB Kabel und die
> Bootloader Software. Ich schätze, man kann das Programm so gestalten,
> dass die Daten binär oder Hex auf der SD Karte gespeichert werden
> können.

Die Bootloader Software brennt Dir Alvidi auf den Chip. Die 
Treibersoftware für den PC kannst Du von der Alvidi Seite runterladen.
Die Daten lassen sich binär, hex oder am besten dezimal auf der SD-Karte 
speichern.

> Ist die Messung von negativen Spannungen ein Problem?

Du kannst negative Spannungen nicht an den Prozessor anlegen. das mag 
der garnicht. Hebe einfach durch einen Spannungteiler mit 2 gleichen 
Widerständen das Potential an den ADC Eingängen auf Vcc/2. Die Spannung 
an diesem virtuellen Nullpunkt darf dann max. +Vcc/2 und -Vcc/2 sein.

von Christoph S (Gast)


Lesenswert?

Albert M. schrieb:
> Du kannst negative Spannungen nicht an den Prozessor anlegen. das mag
> der garnicht. Hebe einfach durch einen Spannungteiler mit 2 gleichen
> Widerständen das Potential an den ADC Eingängen auf Vcc/2. Die Spannung
> an diesem virtuellen Nullpunkt darf dann max. +Vcc/2 und -Vcc/2 sein.

Die Nullpunktsanpassung mach ich einfach an dem Poti von meinem 
Differenzverstärker (INA121)


Nochmal zum Bootloader: weist du, wo ich mich zu den verschiedenen 
Programmen informieren kann?

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Christoph S schrieb:
> Nochmal zum Bootloader: weist du, wo ich mich zu den verschiedenen
> Programmen informieren kann?

Wie gesagt, einfach mal bei Alvidi anrufen und fragen.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Beim Loggen auf SD-Karten immer darauf achten, dass die Schreibzeit für 
einen Block (512bytes) im ungünstigsten Fall 250ms dauern kann. Falls 
Aufzeichnungslücken ausgeschlossen werden müssen, mit Doppelpuffer 
arbeiten und entsprechend viel RAM für die Pufferung vorhalten.
Ist ein recht anspruchsvolles Anfängerprojekt, aber zu schaffen. Viel 
Erfolg.

von Christoph S (Gast)


Lesenswert?

Martin Thomas schrieb:
> Beim Loggen auf SD-Karten immer darauf achten, dass die Schreibzeit für
> einen Block (512bytes) im ungünstigsten Fall 250ms dauern kann. Falls
> Aufzeichnungslücken ausgeschlossen werden müssen, mit Doppelpuffer
> arbeiten und entsprechend viel RAM für die Pufferung vorhalten.
> Ist ein recht anspruchsvolles Anfängerprojekt, aber zu schaffen. Viel
> Erfolg.

Danke!
Kennst du irgendwelche Vorlagen für den Bootloader? Ich denke, dass 
solch ein Programm relativ oft benötigt wird.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Christoph S schrieb:
> Kennst du irgendwelche Vorlagen für den Bootloader? Ich denke, dass
> solch ein Programm relativ oft benötigt wird.
Wie bereits gesagt kannst Du das Board von Alvidi mit bereits auf den 
Prozessor geflashten Bootloader bekommen. Was willst Du noch mit 
irgendwelchen Vorlagen? Du kannst Dir auch den zum Prozessor passenden 
Bootloader von der Alvidi Seite runterladen. Das bringt Dir aber nix, 
weil Du den dann mit einem ISP Programmer, den Du nicht hast, auf den 
Prozessor flashen müsstest.
Vieleicht solltest Du vom Bootloader Abstand nehmen und gleich einen 
anständigen Programmer kaufen (Atmel AVRISP MKII für ca 40 Euro), dann 
brauchst Du Dir über Bootloader keine Gedanken mehr machen.

von Wolfgang-G (Gast)


Lesenswert?

Martin Thomas schrieb:
>Beim Loggen auf SD-Karten immer darauf achten, dass die Schreibzeit für
>einen Block (512bytes) im ungünstigsten Fall 250ms dauern kann. Falls
>Aufzeichnungslücken ausgeschlossen werden müssen, mit Doppelpuffer
>arbeiten und entsprechend viel RAM für die Pufferung vorhalten.

Dazu vom mir einige Fragen:
a) Was gehört zu den ungünstigen Fällen?
b) Wie funktioniert ein Doppelpuffer?

Hintergrund: Ich habe ein „EKG-Gerät“ gebaut und zeichne die Messwerte 
auf einer SD-Karte auf. Dazu wird der ADC alle 5ms abgefragt und der 
Wert in ein Feld des RAM geschrieben. Ist das Feld mit 512 Bytes 
gefüllt, dann wird das Feld auf die SD-Karte geschrieben. Ich habe den 
Eindruck, dass immer mal Messwerte fehlen.
MFG

von Stephan (Gast)


Lesenswert?

Wolfgang-G schrieb:
> b) Wie funktioniert ein Doppelpuffer?

2 Puffer a 512Bytes.
Puffer A voll > weitere Werte in Puffer B erfassen + Puffer A 
wegschreiben bis
Puffer B voll > weitere Werte in Puffer A erfassen + Puffer B 
wegschreiben
...

Wolfgang-G schrieb:
> Ich habe den
> Eindruck, dass immer mal Messwerte fehlen.

Kann natürlich auch an schlechtem Design liegen. z.B. Datenerfassung 
nicht im Interrupt (wegschreiben blockiert dann u.U. Datenerfassung).

Stephan

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.