Hallo,
Ich will einen Wegsensor nach seinem Verschleiß ausmessen, so habe ich
mir das vorgestellt.
Sensor -> TP-Filter -> A/D Wandler -> µC USB Controller ->
Auswertung am PC
Ich Will die daten die ich von dem Sensor bekomme über USB auf dem PC
haben, um sie dann z.B. in Matlab auswerten zu können. Ich kenne mich
leier mit µC leider nicht gut aus, könnte mir da einer Helfen, welchen
µC ich da am besten benutzen könnte?
Lg
Peter
Entweder über den USART und dann einen USB <-> USART-Wandler (z.B. FT232
od. CP2102) dran, oder direkt einen uC nehmen der mit USB zurecht kommt.
Beides mal hat man dann einen VCP und kann die Daten bequem auslesen.
Über Matlab oder ein Terminalprogramm gar kein Problem.
Schau mal hier etwas im Forum rum, das hat so ziemlich jede 2.
uC-Schaltung hier.
Grüße
Peter schrieb:> Ich kenne mich> leier mit µC leider nicht gut aus, könnte mir da einer Helfen, welchen> µC ich da am besten benutzen könnte?
Prinzipiell gibt es zwei Möglichkeiten: entweder einen kleinen
Mikrocontroller (z.B. AVR oder PIC) mit UART verwenden und über einen
Seriell-nach-UART-Chip an den USB vom PC hängen; oder du nimmst einen
Mikrocontroller mit integriertem USB - hier wäre ein kleiner Controller
im DIL-Gehäuse der PIC18F14K50 (Beispielschaltung:
www.fundf.net/usbnub/).
SO jetzt nochmal für den dummen Peter ^^.
Müsste ich den µC selber Programmieren? Oder gibt es da von Hersteller
Seite schon was fertiges?
Kannst du mir erklären was VCP heißt?
Lg
Peter
Peter schrieb:> Müsste ich den µC selber Programmieren?
Wenn Du einen nackten Controller kaufst oder ein Demo/Evalboard, dann
ja.
Es gibt aber entweder beim Hersteller oder in gewissen Foren (wie hier)
auch oft Beispielcode. Den müsstest Du dann evtl. auf Dein genaues
Problem anpassen. Also z.B. Samplerate, Anzahl bzw. Auswahl der ADCs,
Datenformat über USART/USB usw....
Peter schrieb:> Oder gibt es da von Hersteller Seite schon was fertiges?
Vom Hersteller mit Sicherheit nicht, aber wie gesagt es gibt fertige
Hardware die Du dann halt noch Flashen musst.
Peter schrieb:> Kannst du mir erklären was VCP heißt?
Virtual-COM-Port.
Die meisten PCs haben ja heute keinen COM-Port mehr, deshalb der "Umweg"
über USB.
Wenn Dein PC noch einen COM-Port hat, dann müsstest Du nur den
USART-Pegel auf die RS-232 Pegel umsetzen lassen (z.B. über einen
MAX232).
Macht aber heut zu Tage wohl keinen Sinn mehr!?
Grüße
Ich würde sowas lieber selber "basteln", weil dadruch der lern effekt
einfach größer ist.
Ich habe mir gerade was über UART durch gelesen, wird das als
schnittstelle für RS232 genutzt, oder auch für USB?. Das ist mir nicht
ganz klar geworden.
Einen AVR µC könnte ich nutzen oder? Haben die auch die möglichkeit auf
USB zu gehen? mit eingebautem UART?
sry falls ich so blöde fragen stelle, kenne mich mit µC nicht so gut aus
Lg
Die Frage wurde schon beantwortet:
Ballermann schrieb:> Entweder über den USART und dann einen USB <-> USART-Wandler (z.B. FT232> od. CP2102) dran, oder direkt einen uC nehmen der mit USB zurecht kommt.
bei den kleine AVRs z.b. ATmega16U4
Wichtiger wäre die Frage, welche Genauigkeit und Geschwindigkeit dein
Messaufbau haben muss.
Es gibt auch Oszis mit USB Schnittstellen oder professionelle
Datenkarten.
Einfache Datenerfassungskarten zum spielen gibt es z.B. von H-Tronik
Peter schrieb:> Ich würde sowas lieber selber "basteln", weil dadruch der lern effekt> einfach größer ist.
Kein Problem.
Ich würde als Einstieg ein fertiges kleines Board nehmen.
Steckbrett geht zwar auch, ist aber wahrscheinlich auch nicht billiger
und gerade für den Anfang ist es besser man hat eine funktionierende
Hardware und kann sich nur auf die eigenen Softwarefehler konzentrieren.
Flashen geht entweder über ein selbst gebasteltes ISP-Kabel oder manche
haben auch sowas schon bereits auf dem Board (2. würde ich empfehlen).
Bootloader geht theoretisch auch.
Peter schrieb:> Ich habe mir gerade was über UART durch gelesen, wird das als> schnittstelle für RS232 genutzt, oder auch für USB?. Das ist mir nicht> ganz klar geworden.
Ne, nur RS232. Deshalb braucht man ja auch einen Baustein alla FT232
oder CP2102 der noch den ganzen USB-Stack außen um die eigentlichen
Nutzdaten rumbastelt.
Gerade als Einsteiger würde ich Dir empfehlen, mach es über den USART
und dann einfach einen oben genannten Baustein dran.
Direkt in Sachen USB einzusteigen ist vielleicht nicht so dienlich!?
Peter schrieb:> sry falls ich so blöde fragen stelle, kenne mich mit µC nicht so gut aus
Kein Problem, so habe ich auch mal angefangen.
Nur wirst Du Dir das meiste selbst aneignen müssen.
Bist Du Student oder kennst Du einen Studenten?
Dann könntest Du Dir z.B. das STK500 besorgen:
http://student.embedded-projects.net/index.php?module=artikel&action=artikel&id=373
Wenn Du unbedingt gleich alles auf dem Steckbrett aufbauen willst, dann
besorg Dir wenigstens gleich nen richtigen ISP Programmer alla AVR-ISP
MK2 oder gleich nen AVR-DRAGON, dann kannst Du sogar etwas Debuggen.
Denke mal ein JTAG-ICE-MKII willst Du Dir für den Anfang nicht gönnen.
Grüße
Ich bin Student.
Mir geht es Primär um die Hardware, ich will eher die Selbstständig
konzepieren, und sekundär geht es mir um die Software. Aber so wie ich
das raus lese ist das keine gute idee oder?
Ich denke Softwaremäßig dürfte das doch nicht so umfangreich werden
oder? Wie Ballermann ja schon schrieb, gibt es viele Beispielcodes, die
ich dann auf meine Anwendung anpassen könnte.
Peter schrieb:> Mir geht es Primär um die Hardware, ich will eher die Selbstständig> konzepieren, und sekundär geht es mir um die Software. Aber so wie ich> das raus lese ist das keine gute idee oder?
Doch, klar geht das auch.
Nur würde ich es heute nicht mehr so machen.
Ich finde halt, gerade beim fliegenden Aufbau auf einem Steckbrett geht
schneller mal ein Draht raus oder man macht anderstwo nen Kurzschluss
und man sucht sich dann ewig den Wolf weil sein Programm nicht mehr
funktioniert.
Wenn Du trotzdem so einsteigen willst, geht das relativ kostengünstig.
Kauf Dir ein ATMEGA (z.B. ATMEGA644) im DIP Gehäuse, dann noch ein Quarz
dazu (z.B. 14,7456 MHz), 2 x 12-22pF Kondensator (für den Quarz), ein
paar 100nF Kondensatoren (wegen evlt. Störungen auf der
Betriebsspannung), 10k Widerstand für den Reset, evtl. noch ein kleiner
Elko und ein kleines Steckernetzteil (z.B. 5V geregelt) und natürlich
noch den FT232 für die USART<-->USB Umsetzung.
Zusammen kommst Du da auf ca. 15-25 Euro.
Dann noch den Selbstbau-Programmer oder besser ein AVR-ISP-MKII.
Peter schrieb:> Ich denke Softwaremäßig dürfte das doch nicht so umfangreich werden> oder?
USART gibt es schon fertig. Der AT644 ist glaub ich weitgehend gleich
zum alt bekannten ATMEGA16/32/128.
ADC auch.
Timer auch.
Also musst Du nur noch diese Komponenten zusammenfügen.
(Ich gehe hier mal von Programmiersprache C aus).
Anonsten wäre noch BASCOM oder ASSEMBLER möglich.
Da kenne ich mich aber nicht aus, gibt es aber bestimmt auch Beispiele
dazu.
Grüße
Was soll der zusätzliche Microcontroller und die seriell-Bastelei?
Einfach wäre es doch einen A/D Wandler mit SPI oder I2C Interface zu
nehmen und einen vernünftigen Schnittstellenbaustein für die USB
Anbindung. Dann entfällt die Programmierung auf der Hardware.
z.B. IO-Warrior:
http://www.codemercs.com/index.php?id=64&L=0
Gibts auch handlich verpackt:
http://www.codemercs.com/index.php?id=256&L=0
Guido Körber schrieb:> Was soll der zusätzliche Microcontroller und die seriell-Bastelei?>...> z.B. IO-Warrior:
Durchsatz typ. 750 Bytes/sec ist nicht gerade so der reiser, oder!?
Bei der angegebenen FCPU von 14,7456MHz schafft der AT644 immerhin
1,8432Mbps. Bei 20MHz dann sogar 2,5Mbps.
Der ADC könnte theoretisch mit bis zu 15kSPS betrieben werden (bei
vollen 10Bit Auflösung).
Grüße
Peter schrieb:> Ich hätte nochmal eine frage, was wäre denn ein guter einstieg in die µC> Programmierung?
Das was Du hier machen willst ist eigentlich schon gut geeignet.
Du musst es nur in die einzelnen Aufgaben zerlegen.
Später wirst Du das auch so machen. Alles auf einmal machen zu wollen
geht meist schief und wird schnell frustrierend. Weiterer Vorteil: Wenn
Du dir richtige Librarys erstellst kannst Du die später immer wieder
benutzen (annähernd gleicher uC vorrausgesetzt).
Also:
1
1. Timer verwenden und evtl. eine LED im Timertakt schalten.
2
2. USART in Betrieb nehmen und ein "Hello World" übertragen an den PC.
3
3. ADC Wert auslesen und über USART übertragen.
4
4. Interrupt einstellen für Timer, USART und ADC.
5
5. Das ganze in ein Projekt zusammenfügen.
Im Prinizip kannst Du dafür das unten aufgezählte Tutorial hernehmen und
anhand dessen diese Punkte realisieren.
Peter schrieb:> Kann mir da jemand ein Buch empfehlen?
Kannst Du schon eine Programmiersprache?
Also C/C++, Basic oder Assembler?
Wenn Du in Richtung C einsteigen möchtest, dann ist das Tutorial hier
auf der Seite nicht schlecht. Schau Dir mal die 2 Links an:
http://www.mikrocontroller.net/articles/AVR-Tutorial
bzw.
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Und da es immer übersehen wird, ja das Tutorial gibt es auch als PDF:
http://www.mikrocontroller.net/wikifiles/1/1b/AVR-GCC-Tutorial.pdf
(nicht immer auf aktuellstem Stand).
Wenn Du wirklich noch keine Ahnung von Programmierung hast, dann kannst
Du auch zuerst mal in eine Programmiersprache auf dem PC einsteigen
(Dann entfällt der Kauf der Hardware und man kann direkt loslegen).
Für C gibt es auch noch ein kostenloses Buch bei Galileo:
http://openbook.galileocomputing.de/c_von_a_bis_z/
Hier hatten Sie es vor kurzem über C++ Tutorials:
Beitrag "c++ tutorial"
Für Basic/BASCOM gibt es bestimmt auch noch eins, musst Du mal suchen
oder jemand anderes was dazu schreiben...
Grüße
Ballermann schrieb:> Bei der angegebenen FCPU von 14,7456MHz schafft der AT644 immerhin> 1,8432Mbps. Bei 20MHz dann sogar 2,5Mbps.
1,8 Mbps auf dem I2C, cool...
> 1,8 Mbps auf dem I2C, cool...
I2C:
"up to 400 kbit/s in the Fast-mode, up to 1 Mbit/s in Fast-mode
Plus, or up to 3.4 Mbit/s in the High-speed mode."
siehe auch (Seite 3 ganz unten)
http://www.nxp.com/documents/user_manual/UM10204.pdf
Ich weiß aber nicht, ob der AT644 dies kann
und ob "Ballermann" hier nicht SPI o.ä. gemeint hat :-)
Martin Maurer schrieb:> "up to 400 kbit/s in the Fast-mode, up to 1 Mbit/s in Fast-mode> Plus, or up to 3.4 Mbit/s in the High-speed mode."
Ja, nur fast mode plus ist eher selten und high speed exotisch.
Guido Körber schrieb:> 1,8 Mbps auf dem I2C, cool...
Wie gesagt...funktionieren würde es sogar (entsprechende Hardware
vorrausgesetzt).
Aber auf das wollte ich garnicht raus.
Es wurde gefragt:
Guido Körber schrieb:> Was soll der zusätzliche Microcontroller und die seriell-Bastelei?
Darauf habe ich dann die Antwort gegeben:
Beitrag "Re: USB µC daten auswertung"
Ein uC bringt den Vorteil, dass man die 15ksps des ADCs über eine
serielle Schnittstelle (USART/RS232) mit bis zu 2,5Mbps an den PC
bringt.
Von I2C war nicht die Rede.
Das ist mit dem vorgeschlagenen IO-Warrior (über I2C) eben nicht
möglich, da er eben "nur" 750 Bytes/sec übertragen kann.
Grüße
Abgesehen davon, dass der IOW56 über 60kByte/s schafft ist die Frage wie
hoch die Samplerate sein muss gar nicht spezifiziert worden. Die A/D
Wandler Chips sind heute im Allgemeinen recht schnell und werden häufig
nicht ausgenutzt.
Die Aufgabenstellung hörte sich für mich nicht nach einer schnellen
Datenrate an.
Guido Körber schrieb:> Die Aufgabenstellung hörte sich für mich nicht nach einer schnellen> Datenrate an.
Ja, da hast Du recht...Verschleiß wird wahrscheinlich nicht eine Sache
von us sein :-D Aber jetzt wird es für den Verschleiß gebraucht und
später soll eine Wechselspannung mit gesampelt werden.
Die IOWarrior sind ja auch nicht schlecht.
Hatte mir auch mal überlegt so ein Ding zu kaufen.
Wenn ich aber dann die 33 Euro sehe, geht es halt zumindest mir so, dass
ich lieber einen ATMEGA16 oder so nehme und das kurz selber mache.
Arbeitszeit ist da auch nicht der Rede wert, die
ADC+Timer+USART-Routinen hat man normalerweise schon in der Schublade.
Den da ist der AD-Wandler schon für einen Preis von 1-3 Euro inklusive,
dann noch ein USB-Seriellwandler dazu und fertig ist der Braten.
Wenn wir im absoluten Low-Budget-Bereich sind, dann würde auch ein
Attiny reichen:
http://www.obdev.at/products/vusb/prjdetail.php?pid=31
Da ist dann die USB-Buchse das teuerste an der ganzen Sache (klar hat
man dann auch nicht die Übertragungsraten, aber für 3 Euro kommt man
dann für eine Verschleißüberwachung aus).
Er meinte ja auch weiter oben er möchte es selbst machen:
Peter schrieb:> Ich würde sowas lieber selber "basteln", weil dadruch der lern effekt> einfach größer ist.
Letzten Endes liegt es bei Ihm was er machen will...wir haben ihm ja
jetzt genügend INPUT gegeben.
Grüße
Ballermann