Hi,
ich suche einen kleinen Mikrocontroller der eigentlich nicht allzuviel
können muss :)
Zuerst sollte ich vielleicht sagen, dass ich noch nie mit
Microkontrollern was zu tun hatte.
Also ich habe einen Temperatursensor der per USB Daten an meinen PC
schickt. Ich würde die Daten die er sendet jedoch bereits gerne vorher
abfangen und noch anderwertig benutzen. Später (viel viel später) soll
der MC die Daten auch minimal auswerten können á la: Sensor sagt weniger
als 12° also mach dies und das... doch das kann noch lange warten. Also
mein momentanes Projekt soll erstmal nur dafür da sein, dass ich was
lernen kann und ich nicht gleich viel Geld ausgeben muss.
Deswegen möchte ich erstmal ein Low-Cost Kontroller der einfach nur die
Daten speichern kann und ich Daten dann irgendwie auslesen kann.
Also der MC sollte USB können, da ich ihn als Verbindungstück zwischen
USB-Kabel des Sensors und USB-Anschluss meines PC's benutzen möchte.
Er sollte schon einen Speicher von min. ca. 100MB haben, eventuell kann
man einen MC aber auch auf eine SD-Karte oder ähnliches schreiben
lassen.
Er sollte mit Assembler programmierbar sein.
Könnt ihr mir als Anfänger etwas raten bzw. ein paar Tips geben?
Scherz? Troll?
Wenn nicht: Lern erstmal mit Atmega8 o.ä.
Wenn du dann in einigen Jahren genug Routine hast, um so ein Projekt in
Angriff zu nehmen, gibts auch deinen Wunschcontroller.
>Also der MC sollte USB können, da ich ihn als Verbindungstück zwischen>USB-Kabel des Sensors und USB-Anschluss meines PC's benutzen möchte.
Nimm einen Standard Controller + FT232 Chip, das ist besser für den
Anfang.
>Er sollte schon einen Speicher von min. ca. 100MB haben,
Gibt es nicht. Gängig ist so 2..128kB.
>Er sollte mit Assembler programmierbar sein.
Ich würde dir C als Programmiersprache ans Herz legen...
Hi
@Jörg
>Nimm einen Standard Controller + FT232 Chip, das ist besser für den>Anfang.
Geht nicht, er braucht einen Host.
>Gibt es nicht. Gängig ist so 2..128kB.AVRs bis 256kB Flash. Aber er braucht RAM oder etwas analoges. Da sieht
es wesentlich bescheidener aus.
>Ich würde dir C als Programmiersprache ans Herz legen...
Das ist Ansichtssache.
MfG Spess
Santos wrote:
> Zuerst sollte ich vielleicht sagen, dass ich noch nie mit> Microkontrollern was zu tun hatte.
O.k., dann ist USB erstmal nichts für Dich.
Ne UART ist schon kompliziert genug für nen Anfänger und reicht oft zur
Verbindung mit dem PC.
> Also ich habe einen Temperatursensor der per USB Daten an meinen PC> schickt.
Man sollte Sensoren besser direkt an nen MC anschließen und nicht über
den Umweg USB, ist wesentlich einfacher und billiger.
> Er sollte schon einen Speicher von min. ca. 100MB haben, eventuell kann> man einen MC aber auch auf eine SD-Karte oder ähnliches schreiben> lassen.
O.k., da ist die Zenerpotenz recht kräftig verrutscht, MCs haben etwa
128 Byte SRAM (größere bis 16kB).
Schon Deine biologische Grenzen verhindern ja, 190 Jahre die Temperatur
zu loggen (100MB = 190 Jahre ein Wert je Minute).
> Er sollte mit Assembler programmierbar sein.
Kann man machen. Macht so bis 2kB Programmgröße auch Spaß.
Wenn man sich dann für größere Programme fit fühlt, kann man ja auf C
umsteigen. Das Assemblerverständnis hilft einem dann schnellen und
effizienten Code zu schreiben.
> Könnt ihr mir als Anfänger etwas raten bzw. ein paar Tips geben?
Hier im Forum ist der ATmega8 (oder 168) recht gebräuchlich.
Peter
Santos wrote:
> Deswegen möchte ich erstmal ein Low-Cost Kontroller der einfach nur die> Daten speichern kann und ich Daten dann irgendwie auslesen kann.>> Also der MC sollte USB können, da ich ihn als Verbindungstück zwischen> USB-Kabel des Sensors und USB-Anschluss meines PC's benutzen möchte.
Was du willst, ist also ein System, was sowohl USB-Host (gegenüber dem
Sensor ) und USB-Device (gegenüber dem PC) ist. Und auch wenn du das
nicht glaubst, das ist weder low-cost noch anfängertauglich.
Andererseits braucht man für die beschriebene Aufgabe auch keinen
USB-Temperatursensor...
> Er sollte mit Assembler programmierbar sein.
Tu dir kein komplexes Projekt in Assembler an.
Santos wrote:
> Hi,
Huhu Santos
> ich suche einen kleinen Mikrocontroller der eigentlich nicht allzuviel> können muss :)>> Zuerst sollte ich vielleicht sagen, dass ich noch nie mit> Microkontrollern was zu tun hatte.>> Also ich habe einen Temperatursensor der per USB Daten an meinen PC> schickt.
Du hast einen Sensor, der als USB-Device fungiert? Das muss aber schon
ein sehr aufwaendiger Sensor sein. Was ist es denn fuer einer? Oder
sprichst Du hier von einem komplettem Board bzw. Geraet?
> Ich würde die Daten die er sendet jedoch bereits gerne vorher> abfangen und noch anderwertig benutzen. Später (viel viel später) soll> der MC die Daten auch minimal auswerten können á la: Sensor sagt weniger> als 12° also mach dies und das...
Mit anderen Worten willst Du ein USB-Geraet (mit bekanntem Protokoll) an
ein von Dir entwickelten Host anschliessen und diese Daten auswerten?
Also das hoert sich mal so garnicht nach nem Anfaengerprojekt an ;)
Nur so am Rande: Es gibt Sensoren, die kann man so programmieren, dass
sie z.B. beim erreichen oder unterschreiten einer Temperatur einen Port
schalten, der DS1621 kann das z.B., die Ansteuerung ist aber zwecks I2C
auch nicht gerade Pillepalle fuer einen kompletten Anfaenger.
> doch das kann noch lange warten. Also> mein momentanes Projekt soll erstmal nur dafür da sein, dass ich was> lernen kann und ich nicht gleich viel Geld ausgeben muss.
Dann schalge ich doch mal vor, dass Du klein anfaengst? ;)
> Deswegen möchte ich erstmal ein Low-Cost Kontroller der einfach nur die> Daten speichern kann und ich Daten dann irgendwie auslesen kann.>> Also der MC sollte USB können, da ich ihn als Verbindungstück zwischen> USB-Kabel des Sensors und USB-Anschluss meines PC's benutzen möchte.> Er sollte schon einen Speicher von min. ca. 100MB haben, eventuell kann> man einen MC aber auch auf eine SD-Karte oder ähnliches schreiben> lassen.
Ein "Speicher" von 100MB? Primaerspeicher? Junge ich glaub Du musst
langsam ma wieder auf den Boden kommen :D
> Er sollte mit Assembler programmierbar sein.
Genau und das ganze dann per ASM... ;p
> Könnt ihr mir als Anfänger etwas raten bzw. ein paar Tips geben?
Ja, Grundlagen lernen und realistisch werden ;)
Lieber Gruss,
Michael
(PS, kannst Dich ma melden wenn Du willst: ICQ 307682079)
Was für ein "Sensor" ist das eigentlich und welchen Controller benutzt
die Schaltung?
Mal davon ab das USB nicht wirklich einfach ist da quasi rein
Software-basiert und somit für einen Neuling völlig ungeeignet.
Kann man den ohnehin vorhandenen Controller vielleicht umprogrammieren?
Oder sich zwischen den eigentlichen Sensor und den USB-Controller
hängen?
Hi,
danke für eure vielen Hinweise. Ich hab mich da anscheinend wirklich
etwas überhoben :)
Wie genau der Temperatursensor funktioniert weiss ich nicht da er ein
proprietärer ist. Der misst Temperatur, Luftfeuchte und Taupunkt und hat
nen USB-Anschluss. Am PC angeschlossen simuliert er ein Serielles-Device
á la /dev/ttyUSB0. Wenn man das cattet bekommt man die Daten im
Plaintext als Ascii.
Ich werd mir dann mal einen ATmega8 anschauen um ein bischen was über
Microkontroller zu lernen. Ist der anfängertauglich?
Und Assembler ist mir lieber als C weil ich es besser kann als C. Also
klar ist Assembler für Mikrokontroller sicher was anderes als für 32bit
Architekturen, aber die basics dürften ja die gleichen sein.
Santos wrote:
> Ich werd mir dann mal einen ATmega8 anschauen um ein bischen was über> Microkontroller zu lernen. Ist der anfängertauglich?
Ja, es gibt hier auch ein schönes Tutorial zum Thema AVR.
> Und Assembler ist mir lieber als C weil ich es besser kann als C. Also> klar ist Assembler für Mikrokontroller sicher was anderes als für 32bit> Architekturen, aber die basics dürften ja die gleichen sein.
Na ja, ich finde, dass bei einer bestimmten Größe des Projekts C die
bessere Wahl ist, weil man mehr Überblick hat und es schneller zu
programmieren ist. Mit Assembler hat man natürlich mehr Kontrolle, aber
das wird schnell sehr aufwändig. Ich würde mir mal C anschauen, ist
meiner Meinung nach auch nicht allzu schwer zu lernen.
Santos wrote:
> Hi,> ich suche einen kleinen Mikrocontroller der eigentlich nicht allzuviel> können muss :)>> Zuerst sollte ich vielleicht sagen, dass ich noch nie mit> Microkontrollern was zu tun hatte.
KEINER! Sorry, aber das meine ich wirklich ernst.
Fange erst mal klein an!
Santos wrote:
> Am PC angeschlossen simuliert er ein Serielles-Device> á la /dev/ttyUSB0. Wenn man das cattet bekommt man die Daten im> Plaintext als Ascii.
Wenn das so ist, dann hat dein "Sensor" sicher auch nen kleinen
Controller mit normaler UART und dahinter einen USB-Chip FTDI oder so.
Du könntest mit deinem Microcontroller höchstens versuchen, den
RS232-Eingang an dem USB-Chip abzufangen.
hallo
Wie Einige schon gesagt
Sensor an den MC
MC zum PC mit RS232
Schönes Projekt,
für einen Anfanger schon kompliziert genug,
aber es gibt viel Unterstützung.
P.S. Wenn du das Projekt fertig hast und noch Lust,
dann siehe weiter.
MfG
Hi!
Ich glaube, wenn man das ganze Stück für Stück aufzieht, ist das
durchaus ein Anfängerprojekt. Aber nur weiter lesen, wenn man gewillt
ist, etwas Zeit und Verständnis zu investieren. Wenn eine
schnell-schnell-Lösung gefordert ist, kann ich nicht helfen, oder nur
gegen Bezahlung :)
Zuerst die Frage, warum ein USB-Sensor an einen Controller packen, wenn
der Controller selber in der Lade ist für wenige Cent mehr die
Temperatur zu messen?
Grundlage wäre ein AT90USB162, den es für wenige <10€ zu kaufen gibt.
1) USART ans laufen bringen: Tips dazu im Wiki oder den ATMEL AppNotes.
2) Integrierten Temp-Sensor von z.B. Dallas/Maxim adaptieren (Siehe
Forum)
3) SPI mit einer SD-Card verbinden und zum laufen Bringen (Siehe Forum)
4) Daten auf SD-Speichern als Datei speichern und mit dem PC austauschen
Hier machen wir einen Schnitt und flashen die AT90USB-CDC-Device
Software von ATMEL und sehen, dass man so auf einfache Weise ein
USB-Device ohne neu zu schreibenden Windows-Treiber in betrieb nehmen
kann.
5) Nun fügen wir stück für Stück die Software aus 1..4 in die USB-CDC
Implementation ein und können die Temperaturen parallel zum Speichern
auch über ein Terminal-Programm mitlesen.
6) Wir spielen nun mal mit der USB-Storage Device Klasse herum und
stellen fest, dass man so auf die gespeicherten Daten auf der SD-Card
auch über USB zugreifen kann.
Nun wird es eng. Der kleine AT90USB162 dürfte jetzt am Ende seiner
Kapazitäten sein, wenn er sie nicht schon in 5) erreicht hat. Also wird
es zeit unser erworbenes Verständnis auf etwas größeres los zu lassen.
Also schwenken wir auf einen AT90USB647 oder 1287 um, oder, weil eh
einige Zeit vergangen ist, auf den ATmega32U4 oder einen größeren U4,
die diesen Sommer verfügbar sein werden. Man muss halt sehen, ob sie
auch USB-Host sein können oder nur Device, die /7 der AT90USB Serie
können beides, aber nur an einem Port.
Nur an einem Port bedeutet, dass sie wahlweise und auch im Wechsel Host
oder Device sein können, aber nicht beides gleichzeitig (siehe OTG
Fähigkeit).
7) Wir rüsten die Software als USB-host nach und schaffen eine
Verbindung zu dem ominösen USB-Temperatur-Logger.
Nun haben wir viel gelernt für wenig Geld und als Ergebnis einen Logger,
der USB-Devices mit einem Speicher versieht, selber aber zum Auslesen
auch an einen PC angeschlossen werden kann.
Für eine Serienproduktion kann man letztendlich die SD-Card durch einen
festen FLASH / EEPROM ersetzen, denn so ein SD-Card Sockel halbwegs
brauchbarer Qualität kostet mehr als eine kleine SD-Card selbst.
-----------------------
Man kann das ganze auch gleich fertig kaufen. Das STK525 für den
AT90USB1287 kostet aber ein paar Euro, hat aber alle Anschlüsse, FLASH
und Temperatursensor bereits on Board.
Schönes Wochenende
Ulrich