Forum: Mikrocontroller und Digitale Elektronik Welcher Mikrokontroller für mich (Anfänger) am Besten geeignet mit USB-Unterstützung?


von Santos (Gast)


Lesenswert?

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?

von Εrnst B. (ernst)


Lesenswert?

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.

von Santos (Gast)


Lesenswert?

War eigentlich weder als Scherz noch zum Trollen gemeint :(

Ist das simple Auslesen und Speicher von Daten wirklich so kompliziert?

von Jörg S. (joerg-s)


Lesenswert?

>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...

von Spess53 (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von Thomas B. (yahp) Benutzerseite


Lesenswert?

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.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

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)

von Rudolph R. (rudolph)


Lesenswert?

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?

von Santos (Gast)


Lesenswert?

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.

von Daniel R. (sliderbor)


Lesenswert?

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.

von Frank B. (frankman)


Lesenswert?

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!

von Dirk (Gast)


Lesenswert?


von Der M. (steinadler)


Lesenswert?

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.

von juppi (Gast)


Lesenswert?

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

von Ulrich P. (uprinz)


Lesenswert?

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

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.