Hallo,
ich suche für verschiedene Projekte einen möglichst günstiges Modul mit
usb Anschluss, min 5 digitale I, 3 digitale O, (TTL oder open Collector)
5V sollte mit wenig Bauteilen steuerbar sein.
Stromversorgung über USB
Z.B. diese hier
Entwicklungsboard STM8S103F3P6
http://www.pollin.de/shop/dt/NTI3OTgxOTk-/Bausaetze_Module/Entwicklerboards/Entwicklungsboard_STM8S103F3P6.html
Arduino Micro
http://www.pollin.de/shop/dt/Mjc3OTgxOTk-/Bausaetze_Module/Entwicklerboards/ARDUINO_Micro.html
Programmiert werden diese über USB, was ja ok ist.
In der Realen Anwendung soll das Modul dann die Steuerung von Motoren
und Endschaltern, Winkelgeber etc. übernehmen.
Der Host ( PC oder Raspberry) ist dann per USB angeschlossen und gibt
Kommandos an das Modul oder frägt Statusdaten ab ( Wert des Resolvers
z.b.)
Ist das mit diesen Modulen möglich oder ist die USB Schnittstelle
ausschließlich zum übertragen der Programme da?
Viele Grüße
Bernd
> Programmiert werden diese über USB, was ja ok ist. [...]> Entwicklungsboard STM8S103F3P6
Das STM8S103F3P6 Board wird über die USB Buchse nur mit Strom versorgt,
der µC kennt kein USB. Programmiert wird über die 4-polige Stiftleiste.
> Arduino Micro
Dessen µC kennt USB, was man dann auch frei im Programm verwenden kann.
Bernd schrieb:> ich suche für verschiedene Projekte einen möglichst günstiges Modul mit> usb Anschluss, min 5 digitale I, 3 digitale O, (TTL oder open Collector)> 5V sollte mit wenig Bauteilen steuerbar sein.> Stromversorgung über USB
Vorschlag: PIC16F1454 oder PIC18F2553. Sind nackte Chips mit
USB-Hardware drin, lochrastergeeignet, 5V-Betrieb, einfach
anzuschließen. Beim PIC16F1454 brauchst Du nicht einmal einen Quarz.
XC8 Compiler, MPLAB IDE und USB Stack (Microchip Application Library)
gibts kostenlos auf microchip.com. Zum Programmieren brauchst Du ein
PICKIT3 (Chinaclones ab 20€, Original etwa 50€).
fchk
Hallo,
vielen Dank für die guten Tipps,
da ich auf jeden fall noch externe Beschaltung benötige ist ein PIC eine
alternative.
Wenn ich recht gesehen hab, hat der PIC16F1454 11 I/O anschlüsse, 2 für
USB und 9 andere.
Da wäre die Konfiguration 5 digital Input, 3 digital Output, 1 Analog
Input (Temperatursensor) theoretisch möglich.
Prinzipiell könnte man ja den PIC16 LF 1454 nehmen, und die 5 V per
externe Schaltung nehmen. ( 12 V ist vorhanden, ein kleiner
Festspannungsregler ist ja kein Problem )
Ansonsten den PIC16LF1459 wenn die Pins nicht reichen.
Viele Grüße
Bernd
Bernd schrieb:> Wenn ich recht gesehen hab, hat der PIC16F1454 11 I/O anschlüsse, 2 für> USB und 9 andere.>> Da wäre die Konfiguration 5 digital Input, 3 digital Output, 1 Analog> Input (Temperatursensor) theoretisch möglich.
Der PIC16F1454 hat keinerlei Analogfunktionen. Da müsstest Du dann den
PIC16F1455 nehmen.
> Prinzipiell könnte man ja den PIC16 LF 1454 nehmen, und die 5 V per> externe Schaltung nehmen. ( 12 V ist vorhanden, ein kleiner> Festspannungsregler ist ja kein Problem )
Hast Du 5V-Signale? Der PIC verträgt an seinen Eingängen nur Spannungen
bis Vcc. Wenn Du 5V-Peripherie hast, kannst Du keinen LF-Typen
verwenden.
Wenn Du einen 3.3V PIC nehmen kannst, empfehle ich einen PIC24FJ64GB002.
Gibts als SDIP28. Dafür brauchst Du zwar einen Quarz für USB, aber es
ist ein 16-Bit PIC und damit deutlich angenehmer zu programmieren. Das
ist halt immer eine Abwägung zwischen Stückpreis (der PIC16F1454 ist die
billigste Möglichkeit, ein 100% standardkonformes USB Device zu
realisieren) und Entwicklungsaufwand.
Frank K. schrieb:> er PIC16F1454 ist die> billigste Möglichkeit, ein 100% standardkonformes USB Device zu> realisieren
Wenns keine 10000er-Stückzahlen werden sollen:
So Billig-Arduino-Clone Boards für ein paar Dollar?
Standardkonformes USB, allerdings per Dediziertem USB->Seriell Wandler
Chip, nicht im µC. (Kann ein Vor- oder Nachteil sein. Bei
RasPI-Basteleien: eher Vorteil)
Bootloader ist fertig drauf, IO-Pins gibts genug, auch Analog, und das
ganze Arduino-Framework muss man ja nicht verwenden. Der Bootloader
lässt sich auch direkt mit AVRDude ansprechen oder austauschen.
Ein 60cent Atmega8 aus China und ne Hand voll Hühnerfutter könnten
deinen Zweck erfüllen. V-USB heißt das Stichwort [1]. Da gibts 2
Projekte [2,3].
Ginger ist das flexiblere von Beiden. Außerdem sind diese Projekte mit
Minimalaufwand auf so ziemlich jeden AVR mit genug Speicher portierbar.
Grüße Oliver
[1] http://www.obdev.at/products/vusb/index-de.html
[2] http://www.obdev.at/products/vusb/prjdetail.php?pid=136
[3] http://www.obdev.at/products/vusb/prjdetail.php?pid=51
Edit: Die Firmwares können auch auf nen fertiges Board gebracht werden,
welches für V-USB designt wurde. Ich nehme gerne die USBasp-Clones aus
China her. Ein tinyusbboard wäre wahrscheinlich perfekt für deine
Bedürfnisse. Die gibts günstig bei Ebay.
Bernd schrieb:> Prinzipiell könnte man ja den PIC16 LF 1454 nehmen, und die 5 V per> externe Schaltung nehmen.
Doch wo ist da der Sinn? Wenn du 5V am Ausgang haben willst, ist es doch
sinnvoller, den PIC auch mit 5V zu versorgen und nicht absichtlich 3,3V
o.ä. und dann mit einem Levelshifter drn Ausgang auf 5V zu bringen.
Den normalen 16Fxxxx kannst du meist zwschen 1,8V und 5V betreiben, den
LF nur bis 3,6V. Der Unterschied ist im Grunde nur, dass die LF PICs
weniger Strom ziehen, interessant also bei Batterie betriebenen
Schaltungen. Wenn USB dran ist, bekommste den Strom ja daher.
Der Vorteil der ein-Chip-Lösung ist mMn, dass es besser in ein Projekt
bzw. in eine zu entwickelnde Schaltung eingebaut werden kann.
Die PIC-Lösung für ein Device sieht in der Grundausstattung so aus:
1xPIC16F1459 + USB-Buchse + IC-Sockel + Entstörkondensatoren & co +
Pinleiste.
Macht zusammen bei Reichelt 2.78€. Nun müsstest du die Bauteile noch
irgendwie befestigen (Lochraster, ...) und programmieren (Pickit3, evtl.
Pickit2, clones davon, ...). Lötkolben und Draht vorausgesetzt. Da
nerven die Versandkosten voll rum.
Dafür bekommst du eine standardkonforme USB-Lösung, welche du
individuell in jedes einzelne Projekt einpflegen kannst.
Alternativ mehrere USBasp Clones. Kosten vielleicht auch 2.78 pro Stück
aus China. Dann könntest du auf die Clones für die Bequemlichkeit einen
Bootloader brennen.
Der PIC ist die Lösung, falls du später mal eine einigermaßen schnelle
USB-Anbindung benötigst. Das vusb-Geraffel ist o.k., solange die
Aktionen entsprechend langsam sein können, und deine USB-Hubs nicht
meckern.
p.s. Ardunios habe ich mir noch nicht angeschaut.
Bernd schrieb:> In der Realen Anwendung soll das Modul dann die Steuerung von Motoren> und Endschaltern, Winkelgeber etc. übernehmen.
Dafür würde ich keinen "nackten" µC einsetzen. Schutzbeschaltung für die
Eingänge, Ausgangstreiber, evtl. Spannungsteiler 24V->5V würde ich noch
vorsehen. Dann lohnt das Lochraster-Gebastel nicht mehr, mach es also
gleich vernünftig :)
Noch ein Hinweis zu V-USB:
V-USB ist komplett ungeeignet, wenn man neben USB asynchron noch etwas
zu tun hat, so wie hier die Schrittmotorsteuerung. Denn während
USB-Kommunikation sind die Interrupts gesperrt und die CPU 100%
beschäftigt.
Auch die Fixierung zu Low-Speed-USB macht V-USB zum idealen Kandidaten
für Tastaturen, Mäuse, Joysticks, Funkuhr-Empfänger, RGB-LEDs (WS8212
oder Hardware-PWM), Bootloader, Zeitschaltuhren, Thermo- und Hygrometer
u.v.a.m., aber eben nicht für Schrittmotoren (wegen Interrupts),
USB-Oszilloskope (wegen Datenmenge) und serieller
Schnittstellenemulation (Full-Speed erforderlich).
Lösungsmöglichkeiten heutzutage (2017):
* Ein Pro Micro (mit ATmega32U4, faktisch ein Arduino Leonardo) ist
dermaßen preiswert zu haben und kompatibel zu Steckbrettern, dass es
sich nicht mehr lohnt, mit einem einzelnen Mikrocontroller anzufangen.
Auch nicht bei beabsichtigten Kleinserien mit bis zu 100 Stück.
Absolute Anfänger sollten damit anfangen, denn von Seiten Microchip gibt
es nichts vergleichbares mit einer dermaßen breiten Community (wo man
weiterfragen kann).
* Ein PIC16F1459 (kleiner sollte er bei Deinen Anforderungen an I/Os
nicht sein, auch wenn ein PIC16F1455 geradeso reichen würde) ist IMHO
Quälerei beim Programmieren (für Anfänger) aber auch eine tolle
Herausforderung (für Freaks). Denn nur diese Lösung kommt ohne Quarz
aus. Wenn's denn läuft sehr gut für Massenproduktion (>10000 Stück).
* PIC18F ist genauso aufwändig wie ATmega32U4 (man braucht Quarz und
etwas Außenbeschaltung), aber ersteren gibt's auch in Durchsteck. Gut
für mittlere Stückzahlen. Hier nimmt man, was einem besser gefällt. Ich
bevorzuge Atmel wegen des ausgereiften freien C-Compilers avr-gcc.
* Begibt man sich auf die Schiene von 16- oder 32-Bit-Controllern, wird
es zwar nicht viel teurer, aber da gibt es keine 5-V-I/O mehr! Entweder
man legt gleich alles für 3 V aus, oder man muss sich mit
Pegelkonvertern (Levelshiftern) herumärgern.
* Dass man Schrittmotoren nicht „nackt“ am Mikrocontroller betreiben
sollte ist ein Ammenmärchen. Vor allem wenn sich dieser einfach wechseln
lässt (Durchsteck oder Pro Micro). Es kommt auf die Leistung an!
Genauer: Die Leistung des stärksten Motors, zu dem der DAU ungeschirmte
Signalleitungen parallel legen wird. Zum Motor hin ist das kein Problem,
denn hier werden Schrittmotor-Treiberschaltkreise oder MOS-Brücken
eingesetzt (bitte keinen L298 mehr verwenden!!). Damit ergibt sich die
Trennung zum Leistungsteil automatisch. Wenn man bei Motorleistungen ab,
ich sag mal, 10 W, Serienwiderstände (10 kΩ) in die Nähe des Controllers
in die Abfrageleitungen für Endschalter einbaut, ist's hinreichend
DAU-sicher entkoppelt, dass nichts kaputtgeht.
* Will man mehrere Schrittmotoren koordiniert bewegen (nicht nur auf
Geraden, sondern Kreise und Splines „malen“), sollte man von vornherein
auf 32-bit-Controller tendieren. Einen Einstieg bietet der Arduino Due.
Wie oben erwähnt, 3-V-I/O-Spannung als Pferdefuß, mehr nicht.
Henrik Haftmann schrieb:> * Begibt man sich auf die Schiene von 16- oder 32-Bit-Controllern, wird> es zwar nicht viel teurer, aber da gibt es keine 5-V-I/O mehr!
Falsch. Die gibts auch noch:
NXP LPC17xx existiert und hat 5V tolerante I/Os. Nuvoton hat Cortex-M0
mit weitem Bereich (2.5 bis 5.5V) - aber man braucht für die USB
Signalpegel ohnehin meistens eine 3,3V Quelle, die bei Nuvoton aber
integriert ist.
Die Dinger sind auch schon ein paar Jahre am Markt...