Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller kompatibel mit USB bzw. programmierbar?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Max M. (maxmicr)


Lesenswert?

Hallo Mikrocontroller Forum :)

ich würde gerne mein eigenes, kleines Mikrocontroller-Board mit 
USB-Anschluss bauen, dass dann am PC programmierbar ist. Natürlich gibt 
es schon fertige Sachen wie die Arduino Boards aber ich möchte mich 
informieren, ob man so etwas auch selber bauen könnte. Leider hab ich 
aktuell überhaupt keine Erfahrung mit so etwas. Woran sehe ich z.B. ob 
sich ein Mikrocontroller programmieren lässt bzw. eine USB Schnittstelle 
hat und welche IDE verwende ich dann zum programmieren?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mis MMM schrieb:
> ob man so etwas auch selber bauen könnte.
Ja.
> Leider hab ich aktuell überhaupt keine Erfahrung mit so etwas.
Ändere das. Lies Bücher, Tutorials und Datenblätter. Lerne.

> Natürlich gibt es schon fertige Sachen wie die Arduino Boards
Kauf dir so eines und sieh, wie das funktioniert und wie die das gemacht 
haben. Es ist keine Schande und zudem lehrreich, sich fremde Designs und 
Applikationen anzusehen und zu verstehen.

von Stefan S. (mexakin)


Lesenswert?

da will jemand weg von arduino und tief einsteigen und ihr blockiert :P

Also USB geht, ich mache das mit Texas Instrument, deren MSP430 Serie 
hat ab einer gewissen Ausbaustufe USB direkt onboard, heißt man kann mit 
entsprechendem USB Stack mit dem  uC kommunizieren und auch 
programmieren. Allerdings ist Programmieren nur über Bootstraploader 
möglich, d.h. du kannst dein Programm nur aufspielen aber das ganze 
nicht im Code live überpfüen, dafür brauchst du spezielle manchmal 
kostenlose Software, dann programmierst du den uC nicht mehr über USB 
sondern über eine spezielle JTAG Schnittstelle, meistens so 4- 8 Pins 
die eben entsprechend verdrahtet werden müssen zum PC hin.

Also du merkst schon das ganze hat schon eine gewisse Einarbeitungszeit 
ich würde mal grob sagen 6 Monate, starten mit Kits ist definitiv 
einfacher und schneller.

von Heinz L. (ducttape)


Lesenswert?

Erstens, Glückwunsch zur Entscheidung für "barebone".

Und jetzt zum Thema.

USB ist nicht grad ein unproblematisches Thema für den Einstieg. Du hast 
es gleich zu Beginn damit zu tun, dass Du 5V Spannungsversorgung vom 
"USB-Stecker" bekommst, die Signalleitungen aber 3.3V haben wollen. Und 
das ist grad mal der Anfang des Problems. USB debuggen kann einen echt 
zum Durchdrehen bringen, wenn man keinen einfachen Weg hat alle anderen 
Fehlerquellen zu eliminieren.

Ich würde Dir empfehlen, dieses Projekt vielleicht etwas 
zurückzustellen. Besorg Dir ein Breadboard und das nötige "Rüstzeug" um 
mal überhaupt die richtigen Fragen stellen zu können und zu wissen was 
du überhaupt brauchst. Weil auch wenn ein µC einen "USB-Anschluss" 
(nennen wir's mal so) hat bedeutet das nicht, dass Du da einfach 'n 
USB-Stecker dranflanscht und das Ding tut. Ein klein wenig komplexer ist 
es dann doch noch.

: Bearbeitet durch User
von Michael K. (Gast)


Lesenswert?

stefan schmitt schrieb:
> da will jemand weg von arduino und tief einsteigen und ihr blockiert :P

Von weg kann doch keine Rede sein, der Gute ist ja noch nicht mal beim 
Arduino angekommen.

Mis MMM schrieb:
> Leider hab ich
> aktuell überhaupt keine Erfahrung mit so etwas.

Nun mag man sich an der robuste Art der Antworten stören, aber 
inhaltlich waren die schon okay.
Mit Null Erfahrung so anzufangen ist einfach Quatsch und kann nicht 
guten Gewissens unterstützt werden.

von Georg (Gast)


Lesenswert?

Michael Knoelke schrieb:
> Mit Null Erfahrung so anzufangen ist einfach Quatsch und kann nicht
> guten Gewissens unterstützt werden.

Ausserdem sollte man nicht gerade mit dem anfangen, was man für den 
Anfang braucht: einem Entwicklungssystem. Münchhausen konnte sich zwar 
selbst aus dem Sumpf ziehen, aber für einen totalen Anfänger ist es eine 
der schlechtestetn Ideen, als erstes ein System zu entwerfen, das man 
braucht, um ein System zu entwerfen.

Georg

von Max M. (maxmicr)


Lesenswert?

Danke für eure Antworten!

Ich werde mich dann nochmal genauer informieren :)

von wendelsberg (Gast)


Lesenswert?

Hallo Mis,

ich habe USB mit diesem Board begonnen:
http://www.ehajo.de/baus%C3%A4tze/smd-baus%C3%A4tze/atmega32u2-breakout-board.html
bin aber relativ schnell auf dieses umgestiegen, das hat auch analoge 
Eingaenge:
http://www.ehajo.de/baus%C3%A4tze/bedrahtete-baus%C3%A4tze/atmega32u4-breakout-board.html

Beide lassen sich direkt ueber USB programmieren.

wendelsberg

von Andreas B. (bitverdreher)


Lesenswert?

Mis MMM schrieb:
> Danke für eure Antworten!
>
> Ich werde mich dann nochmal genauer informieren :)

z.B. hier:
https://www.mikrocontroller.net/articles/AVR-Tutorial

: Bearbeitet durch User
von oldmax (Gast)


Lesenswert?

Hi
Vielleicht hilft dir folgendes:
Ein Controller wird nicht dauernd beschrieben, sondern er bekommt ein 
Programm für eine Aufgabe. Dafür legst du fest, wieviele Input- und 
Outputsignale du brauchst. Das Ganze baust du dann auf eine Platine und 
schiebst dein Programm in den Controller. Der macht dann in der Regel 
etwas anderes, als du erwartet hast und du darfst dann fleißig Fehler 
suchen.Irgendwann hast du dann verstanden, wie die Dinger ticken und du 
bekommst die tollsten Ideen für weitere Schaltungen.
Also, wenn du experimentieren willst, dann kauf dir ein 
Evaluationsboard. Z.B. das von Pollin. (nich gleich wieder meckern, so 
schlecht ist es nicht)
Dazu ein Steckernetzteil, ein paar zusätzliche Bauteile und ganz 
wichtig, einen ISP USB-Stick. Dann kannst du den Controller direkt aus 
AVR Studio über USB programmierren. Wenn du dir ein Steckbrett zulegst, 
hast du völlig frei Hand und kannst dich austoben ohne Ende.
Einen Controller in einer Schaltung mit immer neuen Aufgaben zu 
versehen, halte ich nicht für sehr sinnvoll. Schließlich ist ein 
Controller ohne Beschaltung wie Kaffeepulver ohne heißem Wasser. Du 
kannst es essen, ist aber verdammt trocken.....
Gruß oldmax

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Mis MMM schrieb:
> Ich werde mich dann nochmal genauer informieren

Dazu noch ein Tipp:

Mis MMM schrieb:
> mit USB-Anschluss bauen, dass dann am PC programmierbar ist.

Programmieren ist ja noch recht einfach, zur Not per Boot-Loader und 
'Virtual COM Port'. Schaue Dir mal die Toolketten an, und wie dort das 
Debuggen per Einzelschritt und Breakpoints geht.

stefan schmitt schrieb:
> … Texas Instrument, deren MSP430 Serie …

Beim MSP430 Launchpad hast Du z.B. für ~10€ gleich einen Debugger dabei.

Die Nucleo-Boards incl. Debugger für die STM32F4 kosten auch ~10€.

Für AVR könntest Du den Dragon kaufen, der ist aber schon deutlich 
teurer.

Oder Du machst halt Serial.print()-Debugging.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Beim MSP430 Launchpad hast Du z.B. für ~10€ gleich einen Debugger dabei.
> Die Nucleo-Boards incl. Debugger für die STM32F4 kosten auch ~10€.
> Für AVR könntest Du den Dragon kaufen, der ist aber schon deutlich
> teurer.
Der Preis darf m.E. am Anfang niemals ein Kriterium sein. Denn wenn man 
sich zu Anfang ohne jegliches Wissen das billigste System 
zusammenkauft, dann wird man einen unglaublich holprigen Einstieg mit 
viel Frust erleben.
Besser ist es, mal ein Wochenende lang zuhause zu bleiben und für die 
gesparten 100€ was zu kaufen, das "out of the box" läuft, Beispiele 
mitbringt und eine Community hat...

von Max M. (maxmicr)


Lesenswert?

Hallo,

ich bins nochmal. Ich hab mich jetzt etwas informiert. Was ich 
herausgefunden habe:

1. Der Mikrocontroller muss eine Schnittstelle haben, über die es 
programmierbar ist
2. Zumeist (?) erfolgt das über JTAG. Dafür gibt es dann entsprechende 
JTAG - to USB "programmer". Mit einem entsprechenden Treiber für den 
programmer und für die IDE kann ich dann mein Programm "flashen"

Dann meine Frage:

Ich hab mir einen Mikrocontroller ausgesucht und ins User Manual 
geschaut. Hier steht unter "Debug":

"...allows a debugging or programming tool to be connected
to the MCU through a single wire bidirectional communication based on 
open-drain line."

Soweit ich mich richtig informiert habe, ist JTAG aber mehradrig:

http://www.aliexpress.com/item/5x70CM-10-Pin-USBISP-USBASP-JTAG-AVR-Download-Wire-Ribbon-Cable-2-54mm-hot-et/32251268777.html

Sprich: Dieser uC ist nicht kompatibel mit JTAG?

von Stefan F. (Gast)


Lesenswert?

Alle Mikrocontroller mit eingebauten Flash Speicher sind irgendwie 
programmierbar, meistens über eine serielle Schnittstelle, manchmal auch 
parallel, manchmal geht sogar beides.

Programmieren über RS232 oder USB werden in der Regel nicht direkt 
unterstützt, sondern mit Hilfe eines Bootloaders, den man erstmal auf 
den Chip laden muss.

Es gibt Mikrocontroller-Chips, die ab Werk mit einem Bootloader 
ausgestattet sind.

Arduino Module arbeiten mit Bootloader, die AVR Chips darauf haben 
jedoch keinen, wenn man sie einzeln kauft. Chinesiche Arduino Clones 
werden gelegentlich ohne Bootloader verkauft.

JTAG ist nur eine Möglichkeit von vielen, und soweit ich das einschätzen 
kann, keinesfalls die am häufigsten anzutreffende. Man findet JTAG eher 
bei größeren Mikrocontrollern - nicht die Größenordnung, mit der ich 
bastele.

> Dieser uC ist nicht kompatibel mit JTAG?

Welchen konkret meinst mit "dieser"? Wenn du einen ausgesucht hast, 
schau ins Datenblatt. Da steht das drin, meist schon auf der ersten 
Seite.

Aber denke immer dran, dass Programmieren und Debuggen zwei par Schuhe 
sind, die oft unterschiedliche Schnittstellen erfordern.

von Georg (Gast)


Lesenswert?

Mis MMM schrieb:
> Sprich: Dieser uC ist nicht kompatibel mit JTAG?

Wenn es um Debugging geht, ist keiner kompatibel - die Schnittstelle ist 
zwar die gleiche, aber die Debugger enthalten i.A. einen eigenen 
Prozessor, daher gibt es für jeden Prozessortyp einen (oder mehrere) 
eigene Debugger. Die sind nur für diesen oder enge Verwandte benutzbar.

Dazu gibt es noch andere Debugger-Schnittstellen, z.B. bei deinem 
Prozessor, und dafür gibt es dann auch eigene Debugger mit dem passenden 
Anschluss. Sowieso vom Hersteller des Prozessors, dazu auch oft 
chinesische Kopien.

Du brauchst also DEN Debugger, der mit deinem Prozessor 
zusammenarbeitet, die anderen hundert oder mehr nützen dir nichts. I.A. 
bilden Prozessor, Entwicklungsboard, Programmer, Debugger und IDE eine 
Einheit.

Georg

von Max M. (maxmicr)


Lesenswert?

Hallo Stefan und vielen Dank für deine Antwort.

Sprich diese "single wire bidirectional communication" ist eine serielle 
Schnittstelle?

Die Frage, die sich mir nun stellt:

In dem zugehörigen Data Sheet:

http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00037613.pdf

Findet sich auf Seite 22 das 32-Pin Layout. Nur wo sind die passenden 
"Beinchen" für die serielle Schnittstelle?

In der Beschreibung darunter steht bei "Output speed":

O3 bzw. O4

"fast/slow programmability"

Sind das die passenden? Auf dem Bild darüber finde ich jedoch keine 
Beschriftung mit "O3" bzw. "O4"?

von Lothar (Gast)


Lesenswert?

Mis MMM schrieb:
> Der Mikrocontroller muss eine Schnittstelle haben, über die es
> programmierbar ist

Es gibt auch sehr günstige uC die sind direkt über USB programmierbar. 
Dabei erscheint der Flash des uC als USB-Stick und man kann das Binary 
direkt drauf ziehen. Diese uC haben dann auch integrierte USB-Treiber in 
einem ROM für Virtual-COM-Port oder HID, damit vereinfacht sich die 
Programmierung doch erheblich:

http://www.watterott.com/de/LPC1343-QuickStart-Board
http://elmicro.com/de/lpc1300-proto.html

(*rom)->pUSBD->init_clk_pins();
(*rom)->pUSBD->init(&DeviceInfo);
(*rom)->pUSBD->connect(TRUE);

void USBIRQ_IRQHandler()
{
  (*rom)->pUSBD->isr();
}

von Max M. (maxmicr)


Lesenswert?

1
Aber denke immer dran, dass Programmieren und Debuggen zwei par Schuhe 
2
sind, die oft unterschiedliche Schnittstellen erfordern.

Achsoo. Das macht das ganze natürlich nicht einfacher.
1
Du brauchst also DEN Debugger, der mit deinem Prozessor 
2
zusammenarbeitet, die anderen hundert oder mehr nützen dir nichts. I.A. 
3
bilden Prozessor, Entwicklungsboard, Programmer, Debugger und IDE eine 
4
Einheit.

Okay. Gut zu wissen. Aber eigentlich muss ich den compilierten Code ja 
nur auf den uC schubsen. Wenn was nicht funktioniert, muss ich halt dann 
im Kopf debuggen...
1
Es gibt auch sehr günstige uC die sind direkt über USB programmierbar.

Ja das möchte ich eben selber bauen ^^

von Lothar (Gast)


Lesenswert?

Mis MMM schrieb:
> Ja das möchte ich eben selber bauen

Die haben hier einen Schaltplan dafür, der uC wird direkt über D+/D- an 
den PC angeschlossen:

https://www.olimex.com/Products/ARM/NXP/LPC-P1343/

von hp-freund (Gast)


Lesenswert?

Ganz zum selber bauen und als Grundlage für eigenes:

http://tomeko.net/miniscope_v2e/index.php?lang=en

von Stefan F. (Gast)


Lesenswert?

> Sprich diese "single wire bidirectional communication" ist
> eine serielle Schnittstelle?

Ja logisch, denn ein Byte besteht aus 8 Bit. Wie sollen die sonst über 
einen Draht übertragen werden, wenn nicht seriell?

Mach nicht den Fehler, serielle mit RS232 gleich zu setzen! RS232 ist 
nur eine Variante von seriellen Schnittstellen.

RS232, RS485, USB, SATA, ISP, PDI TDI, JTAG, SWD, I2C, SPI - das sind 
alles unterschiedliche serielle Schnittstellen. Sie sind alle zueinander 
inkompatibel.

Parallele Schnittstellen hatte man früher z.B. bei Eproms 
(http://www.jameco.com/Jameco/Products/ProdDS/74843.pdf). Die hatten 10 
oder mehr Leitungen für die Adresse, 8 für die Daten und ein paar 
Steuerleitungen. Das wäre das Gegenstück zu seriell.

Schau Dir mal http://mbed.org/ an. Das sind µC Board mit vielseitig 
verwendbarer USB Schnittstelle, die sogar ohen Treiberinstallation 
auskommen. Programmieren kann man wahlweise Lokal oder mit der Web 
basierten IDE. Ich meine irgendwo gelesen zu haben, dass der Bootloader 
frei ist, so dass du deine eigenen Boards damit ausstatten darfst.

von Max M. (maxmicr)


Lesenswert?

1
Mach nicht den Fehler, serielle mit RS232 gleich zu setzen! RS232 ist 
2
nur eine Variante von seriellen Schnittstellen.
3
4
RS232, RS485, USB, SATA, ISP, PDI TDI, JTAG, SWD, I2C, SPI - das sind 
5
alles unterschiedliche serielle Schnittstellen. Sie sind alle zueinander 
6
inkompatibel.

Wie genau funktioniert das dann mit der PC-Kompatibilität? Brauch ich 
einen Konverter der das serielle Signal des uC in ein kompatibles Signal 
für meinen PC bzw. IDE übersetzt?
1
Ganz zum selber bauen und als Grundlage für eigenes:
2
3
http://tomeko.net/miniscope_v2e/index.php?lang=en

Danke! Das sieht sehr interessant aus.

: Bearbeitet durch User
von Frank (Gast)


Lesenswert?

Von NXP gibt es auch noch ne andere Möglichkeit.
Ich meine es ist ein LPC2xxx.
Wenn man da nen Pin brückt und an den PC ansteckt, meldet er sich als 
mass storage device.
Danach kann man einfach das bin/hex auf das "Laufwerk" kopieren.

Allerdings ist darüber kein debugging möglich.

von Stefan F. (Gast)


Lesenswert?

> Wie genau funktioniert das dann mit der PC-Kompatibilität?
> Brauch ich einen Konverter der das serielle Signal des uC
> in ein kompatibles Signal für meinen PC bzw. IDE übersetzt?

Ja genau.

Du solltest erstmal handelsübliche Produkte benutzen, wie sie in den 
zahlreichen Tutorials empfohlen werden.

Für die Entwicklung eines eigenen Interfaces fehlen Dir 
Grundlagen-Kenntnisse und Praxiserfahrung.

Fang mal mit dem Arduino Nano an. Der hat eine USB Schnittstelle, die 
sowohl zum Programmieren als auch zur Kommunikation verwendet werden 
kann.

Wenn Dir der irgendwann mal zu klein oder zu langweilig wird, dann kauf 
Dir ein STM32 Discovery Board. Das hat auch eine USB Schnittstelle 
drauf.

von Max M. (maxmicr)


Lesenswert?

1
Für die Entwicklung eines eigenen Interfaces fehlen Dir 
2
Grundlagen-Kenntnisse und Praxiserfahrung.

Das stimmt.

Muss es denn ein eigenes sein? Gibt es da keine standardisierten ICs?
1
Fang mal mit dem Arduino Nano an.

Auf der Arduino-Seite kostet der 20€. Das müsste doch der gleiche sein, 
oder?

http://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-Board-for-Arduino-/181590631969?pt=LH_DefaultDomain_0&hash=item2a47a52621

: Bearbeitet durch User
von W.S. (Gast)


Angehängte Dateien:

Lesenswert?

Mis MMM schrieb:
> ich würde gerne mein eigenes, kleines Mikrocontroller-Board mit
> USB-Anschluss bauen, dass dann am PC programmierbar ist.

Dann bau dir eines und nimm den LPC1343 dafür. Der ist relativ 
übersichtlich und gut via USB zu programmieren und er kann problemlos 
mit der Freeware-Version vom Keil programmiert werden.

Ich hab dir dazu mal zwei Dinge an den Beitrag gehängt:

1. Ein USB-VirtualComPort zum Lesen und Verstehen lernen. Daß er den 
LPC1343 als Nuvoton-Gerät ausgibt, sollte dich nicht stören. Es sollte 
dir um das Verstehen gehen - und nicht darum, die diversen USB-Routinen, 
die dieser µC in einem zusätzlichen ROM vorhält, als BlackBoxen zu 
benützen. Kurzum, zum Lernen. Darüberhinaus ist dieser virtuelle COM 
Port auch recht bequem zu benutzen.

2. Ein kleines Programm, um damit eine Firmware im Binärformat gültig zu 
machen. Hintergrund: Der LPC1343 besitzt einen fest in einem ROM 
angeordneten Bootlader. Der kann eine Firmware entweder per UART oder 
eben per USB laden. Damit der µC keinen Bockmist im unprogrammierten 
Zustand macht, wird die Firmware nur dann gestartet, wenn die Prüfsumme 
über die ersten 6 oder 7 Interrupt-Vektoren stimmt. Genau DAS macht 
dieses kleine MakeValid.exe - aber nur wenn die Firmware als Binärfile 
vorliegt. Du mußt also FromElf so aufrufen, daß es ein Binärfile und 
kein Hexfile ausgibt.

W.S.

von Max M. (maxmicr)


Lesenswert?

Stefan Us schrieb:
> Ja genau.

Nur mal so Interesse halber: Wo genau finde ich solche ICs bzw. woher 
weiß ich, ob dieser dann auch das Signal meines uC entsprechend 
umwandeln kann?

von WehOhWeh (Gast)


Lesenswert?

Also eigentlich gibts eine Haufen Controller mit USB.

Folgende sind meine Lieblinge:
- STM32F072
- PIC24FJ128GC006
Diese beiden sind recht schön, weil kein Quarz nötig ist. Aber: 
USB-fähige gibts auch von ATMEL, NXP, Freescale und vielen, vielen 
anderen.

Für den PIC habe ich USB schon desöfteren verwendet. Ich nehm da CDC 
(virtuelle Serielle SChnittstelle), damit ist Windows/Linuxseitig alles 
paletti - kein Treiber nötig, Putty reicht als Software.

Willst du den Controller den über USB programmieren, brauchst du einen 
Bootloader. Für beide Beispiele gibts da was vom Hersteller. ABER: USB 
ist trotzdem kompliziert und zickig...
Einen Debugger brauchst du aber trotzdem. Für den PIC ein PICkit3 (clone 
reicht), für den STM ein beliebiges STM32 Discovery-Board - das kann man 
zu einem Debugger umfunktionieren.

Was ich dir empfehlen würde:
Wähle dir eine Controllerfamilie aus, die dir gefällt, und lass USB mal 
aus dem Controller draußen. Nimm derweil einen CP2102. Damit tust du dir 
einen großen Gefallen:
- der hat einen gescheiten Treiber dabei
- der läuft sofort
- Die UART ist sehr Anfängerfreundlich auf allen Seiten

von Max M. (maxmicr)


Lesenswert?

Hallo und danke für die Antwort. Ich weis nicht ob ich dich nicht 
richtig verstanden habe oder du mich ^^

WehOhWeh schrieb:
> Also eigentlich gibts eine Haufen Controller mit USB.

Soweit ich das bis jetzt verstanden habe: Jeder uC hat eine serielle 
Schnittstelle, über die er programmiert werden kann. Nur da diese 
serielle Schnittstelle nicht gleich RS232 ist, brauch ich einen 
entsprechend weiteren uC, der mir das Signal des "Haupt"-uC in ein von 
meinem PC verträgliches Signal umwandelt. Da muss ich mich dann 
wahrscheinlich an die IDE richten, für welche Anschlüsse da Treiber 
bereit gestellt werden. Theoretisch kann das ja der normale PC-Serielle 
Anschluss oder eben auch USB sein. Wenn ich jetzt einen uC, wie z.B. 
einen aus der STM8-Serie benutze: Dieser liefert ja kein USB Signal, 
oder? Also brauch ich da einen IC für das Signal? Und da wollte ich 
wissen, wo es die gibt bzw. eben woher ich weiß, ob die zu dem uC 
passen.

Ich hatte dann an so etwas gedacht:

http://www.aliexpress.com/item/pl2303-module-USB-to-TTL-USB-TTL-9-upgrade-board-STC-microcontroller-programmer-PL2303HX-chip/32277983536.html

von WehOhWeh (Gast)


Lesenswert?

Mis MMM schrieb:
> einen aus der STM8-Serie benutze: Dieser liefert ja kein USB Signal,
> oder? Also brauch ich da einen IC für das Signal? Und da wollte ich
> wissen, wo es die gibt bzw. eben woher ich weiß, ob die zu dem uC
> passen.

Ein CP2102/FT232 ist ein USB->UART Wandler. Der passt zu jedem µC mit 
UART, der µC muss kein USB können.
UART hat fast jeder Controller, unter anderem alle STM8, soweit ich das 
sehe.

Einzig aufpassen musst du wegen der Taktgenauigkeit für eine UART. Nimm 
einen Quarz / Keramikresonator (besser 1%), dann hast du kein Problem. 
Die internen Taktquellen der µC sind oft zu ungenau.

Wie du einen STM8 über die UART programmieren kannst, steht hier:
http://www.st.com/st-web-ui/static/active/en/resource/technical/document/user_manual/CD00201192.pdf
So wie ich das sehe, ist der Bootloader bei einigen (allen?) STM8 also 
schon fertig drin. Den Seriellen Bootloader sollte man auch über den 
CP2102 verwenden können.

Ein Debugger ist trotzdem sinnvoll, weil man über die Serielle nicht 
debuggen kann.

Beim Arduino ist das so, dass der Bootloader Software ist. Mit einer 
Software ist das Programmieren über UART mit vielen µC möglich.

von Heinz L. (ducttape)


Lesenswert?

Ich hab 'ne ziemlich genaue Ahnung was Du willst, nur sowas glaub ich 
gibt's (noch) nicht. Du willst, und korrigiere mich wenn ich falsch 
liege, irgendwas wo Du aus dem USB-Port Deines Recheners rausgehst und 
den an einen "USB-Port" eines µC anschließt und den µC auf die Art und 
Weise programmierst. Also sowas wie "ein Kabel an die D+ Leitung vom 
USB-Port des Computers an einen Pin vom µC und ein anderes Kabel an die 
D- Leitung vom USB-Port des Computers an einen anderen Pin vom µC", und 
darüber das Ding dann programmieren.

Das funktioniert meines Wissens nicht mal mit den Dingern, die einen 
USB-Port haben. Dafür gibt's einen recht einfachen Grund:

USB ist ein relativ "aufwändiges" Protokoll. Ein paar von den älteren 
µCs, so Atmega8 rum, kann man damit, eine USB-Kommunikation aufrecht 
erhalten zu müssen, eigentlich problemlos vollständig auslasten. µCs auf 
der anderen Seite sind während sie ("low-level", also ohne Bootloader 
usw) programmiert werden eigentlich de facto ausgeschaltet. Während des 
(normalen, ISP/seriellen) Programmiervorganges wird üblicherweise 
nämlich die Resetleitung "gedrückt gehalten". Sprich, der µC "läuft" 
nicht. Da sitzt das Ding dumm wie 100m Feldweg rum und läßt sich die 
Bits in den Flashspeicher drücken.

Und die beiden Anforderungen "kommuniziere in einem recht aufwändigen 
Protokoll" und "sitz rum und tu nix" sind halt gegenseitig eher 
ausschließend.

Für Dein Problem gibt's jetzt ein paar Lösungen:

1. Irgendwer findet so einen Chip der das kann. Wie das gehen soll weiss 
ich nicht, aber ich kenn weder alle Chips dieser Erde noch bau ich die 
Dinger, vielleicht gibt's da wirklich was.

2. Organisier Dir sowas mit einem entsprechenden Bootloader drauf. 
Vorteil ist dass dann das geht was Du willst. Nachteil ist dass Du vom 
Bootloader abhängig bist. Sprich, Du hast nicht den gesamten 
Flashspeicher zur Verfügung, Du musst aufpassen dass Du den Bootloader 
nicht überschreibst und ein paar Quirks hat jeder Bootloader auf die Du 
achten musst.

3. Besorg Dir einen Programmer. Die Dinger gibt's für kleines Geld (ab 
so 10 Euro bist Du dabei) und Du hast eine Fehlerquelle weniger. Du 
kannst das Ding ja danach, wenn Du Deinen Bootloader im µC hast und über 
den programmierst auf die Seite legen, aber so 'n Ding sorgt für 
Beruhigung, weil auch wennst 'n Murks baust (und Du wirst, am Anfang 
häufig) kannst Du alles noch "retten".

4. Du programmierst das Ding über 'ne andere Schiene, ggf. mit anderen 
Tools. Man kann (zumindest die alten) µC von Atmel auch brutal und roh 
über die serielle Schnittstelle programmieren. Dafür braucht's im 
Endeffekt eine (echte!) serielle Schnittstelle und ein wenig 
Hühnerfutterteile (paar Widerstände, Z-Dioden, 'nen Transistor... 
beschrieben in Beitrag "Serial AVR programmer selber bauen"). Das auf's 
Breadboard gesteckt und Du kannst loslegen. Nachteil: Dein Computer 
braucht einen echten seriellen Port, so'n USB-auf-seriell Stecker tut's 
nicht.

Persönlich würd ich Dir zu 3 raten. Weil einfach, relativ billig und 
sehr, sehr anfängertauglich. Den Progger wirst Du so oder so irgendwann 
kaufen, trust me. :)

von Max M. (maxmicr)


Lesenswert?

Heinz L. schrieb:
> Ich hab 'ne ziemlich genaue Ahnung was Du willst, nur sowas glaub ich
> gibt's (noch) nicht.

Ja so hab ich mir das vorgestellt ^^

Heinz L. schrieb:
> 3. Besorg Dir einen Programmer.

Meinst du damit so etwas? 
http://www.aliexpress.com/item/pl2303-module-USB-to-TTL-USB-TTL-9-upgrade-board-STC-microcontroller-programmer-PL2303HX-chip/32277983536.html

Falls ja: Dann muss ich noch herausfinden, welche Pins des µC zu den 
Pins des Programmers geführt werden müssen...

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Max MMM schrieb:
> Meinst du damit so etwas?

Das ist 'so'n USB-auf-seriell Stecker'^^ mit PL2303; und der kann fast 
genau das Gleiche wie der CH340G, der bem Arduino Nano auf der 
Unterseite bereits vorhanden ist:

Max MMM schrieb im Beitrag "Erfahrung mit China Arduino?"
> Ich möchte mir für ein erstes Projekt einen Microcontroller-Board
> kaufen. In einem anderen Beitrag wurde mir bereits das Arduino Nano
> empfohlen. Auf den einschlägigen Seiten gibts einen Nano (Nachbau?) für
> wenige Dollar:
> ebay 181590631969

: Bearbeitet durch User
von Max M. (maxmicr)


Lesenswert?

Torsten C. schrieb:
> Das ist 'so'n USB-auf-seriell Stecker'^^ mit PL2303; und der kann fast
> genau das Gleiche wie der CH340G, der bem Arduino Nano auf der
> Unterseite bereits vorhanden ist

Sprich: Funzt?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Max MMM schrieb:
> Sprich: Funzt?

Für den Nano, ja.

Heinz L. schrieb:
> 3. Besorg Dir einen Programmer. Die Dinger gibt's für kleines Geld …
> weil auch wennst 'n Murks baust (und Du wirst, am Anfang
> häufig) kannst Du alles noch "retten".

Ich nehme an, Du meinst einen Programmer/Debugger, oder?

Max MMM schrieb:
> Wenn was nicht funktioniert, muss ich halt dann im Kopf debuggen...

Im Kopf, ja, oder
wie ich schrieb:
> Du machst halt Serial.print()-Debugging.

Ich kann nicht sagen, was Du alles 'im Kopf debuggen' kannst. Bei Deinen 
Ambitionen solltest Du m.E. nicht an <10€ Euro für eine 
Debugger-Hardware sparen.

Lothar Miller schrieb:
> Der Preis darf m.E. am Anfang niemals ein Kriterium sein.
> Besser ist es, … was zu kaufen, das "out of the box" läuft

Und was wäre das Deiner Meinung nach, wenn nicht eine der o.g. 
Varianten:
* MSP430 Launchpad
* Nucleo-Board mit STM32F4xx
* Arduino-Board mit AVR-Dragon

Da NXP genannt wurde:

* Das LPCXpresso wäre auch noch inclusive Debugger-Hardware

von Stefan F. (Gast)


Lesenswert?

Der Arduino nano hat einen AVR Mikrocontroller, der bereits mit einem 
Bootloader-Programm ausgestattet ist. Darüber hinaus befindet sich auf 
der Rückseite des Modul ein USB/UART Chip, der die Brücken zwischen 
PC(USB) und Mikrocontroller(UART) Schnittstelle macht.

Es gibt auch andere Arduinos mit anderen Chipsätzen. Aber alle haben 
einen Bottloader drauf.

Langer Rede kurzer Sinn: Alle Arduino Module kannst über USB 
programmieren.

Das Chinesische Billigteil, dass du bei Ebay gefunden hast, ist ein 
Arduino Nachbau. Ob du bei dem Preis Qualität erwartest, musst du dir 
selbst überlegen.

Es waren schon Arduino Clones im Umlauf, wo einzelne Pins vertausch oder 
nicht verbunden waren. Es gab auch welche mit gefälschten FTDI Chips, 
die vom aktuellen FTDI Treiber zerstört werden. Abgesehehn davon, 
scheinen die meisten Ardunio Clones jedoch brauchbar zu sein, wenn man 
den Diskussionen dieses Forums folgt.

Manche Arduino Clones enthalten keinen Bootloader. Dann muss man sie 
über den ISP Port erst selbst draufladen, wozu man einen ISP 
Programmieradapter (Atmel ISP MKII) benötigt.

Da in der Artikelbeschreibung der Bootloader nicht erwähnt wird, ist 
wahrscheinlich auch kleiner drauf.

von Max M. (maxmicr)


Lesenswert?

Stefan Us schrieb:
> Darüber hinaus befindet sich auf
> der Rückseite des Modul ein USB/UART Chip, der die Brücken zwischen
> PC(USB) und Mikrocontroller(UART) Schnittstelle macht.

Da alle STM8 µC auch über eine serielle UART Schnittstelle verfügen, 
müsste doch das Teil auch damit kompatibel sein, oder?

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Stefan Us schrieb:
> Atmel ISP MKII

Was ist sinnvoller? Ein Atmel ISP MKII oder ein AVR-Dragon?

Max MMM schrieb:
> Da alle STM8 µC auch über eine serielle UART Schnittstelle verfügen,
> müsste doch das Teil auch damit kompatibel sein, oder?

Technisch ja, ist halt einer dieser chips aus diesen 'USB-auf-seriell 
Steckern'^^. Der auf dem Nano ist fest mit dem ATmega328(?) verbunden, 
den willst Du doch nicht mit einem STM8 verbinden, oder?

Stefan Us schrieb:
> Da in der Artikelbeschreibung der Bootloader nicht erwähnt wird, ist
> wahrscheinlich auch kleiner drauf.

Mag sein, wahrscheilich hatte ich immer Glück. Zumindest wäre ein Fehlen 
kein Grund zur Reklamation. Wobei: Reklamationen und China ...

: Bearbeitet durch User
von Heinz L. (ducttape)


Lesenswert?

> Heinz L. schrieb:
>> 3. Besorg Dir einen Programmer.
>
> Meinst du damit so etwas?
> 
http://www.aliexpress.com/item/pl2303-module-USB-to-TTL-USB-TTL-9-upgrade-board-STC-microcontroller-programmer-PL2303HX-chip/32277983536.html

Nein. Das Ding ist im Endeffekt nix anderes als ein Konverter von USB 
auf "altes" Serial RS232. Das ist im Endeffekt "nur" ein alter 9-pol 
Serial Port für Deinen Rechner (wobei Du noch den 9-pol Stecker mit den 
richtigen Adern von dem Stecker der da rechts dran ist verbinden 
müsstest). Programmieren ist damit nicht. Auch wenn die Beschreibung 
sowas suggerieren mag.

Was Du suchst ist ein "USB AVR ISP", wobei ISP für "in system 
programmer" steht, was im Prinzip heißt "kann den Chip in der Schaltung 
programmieren, musste nicht erst rauslöten". Egal. ISP ist jedenfalls 
das Zauberwort, und zwar passiert das, damit der Akronymwahnsinn 
komplett ist, üblicherweise über die SPI Schnittstelle. Das billigste 
Trumm das ich da auf die Schnelle finden könnte (suche nach USB ISP 
Programmer beim Lieferchinesen) war das da: 
http://www.aliexpress.com/item/S105-New-1pc-USB-ISP-Programmer-For-ATMEL-AVR-ATMega-ATTiny-51-Development-Board/2036513207.html

Guck da aber in der Liste der unterstützten Chips ob Deiner dabei ist. 
Und zwar GENAU Deiner! Frag sicherheitshalber wenn da nicht GANZ GENAU 
Dein Chip bei steht!


> Falls ja: Dann muss ich noch herausfinden, welche Pins des µC zu den
> Pins des Programmers geführt werden müssen...

Das ist relativ leicht, da genormt. Du kommst aus dem Ding mit einem 
10-pol Stecker raus, der ist zwar heute ungewöhnlich, funktioniert aber 
auch nicht anders als der heute übliche 6poler. Da guckst Du bitte auf 
die Seite 
https://www.mikrocontroller.net/articles/AVR_In_System_Programmer und 
scroll runter da ist 'n Bild von dem Stecker und welche Adern wohin 
gehen. Diese Adern eben mit den Pins am µC verbinden. Also das wo MOSI 
rauskommt tust auf den Pin, der im Schaltplan MOSI heißt. Zusätzlich 
solltest Du noch Strom an den µC tun, also die Adern die gern VCC und 
GND hätten entsprechend verbinden.

Zusätzlich sollten da noch KOndensatoren und der eine oder andere 
Widerstand dann dran wenn's "ernst" wird, sowie, falls externer Takt 
gewünscht, eben der entsprechende Quarz. Wie das genau aussieht 
entnimmst Du dann am besten halt den Unterlagen des Chips Deiner Wahl.

Das klingt jetzt nach viel Tamtam für "nur mal eben proggen", zugegeben. 
Dafür bist Du damit absolut und 100% unabhängig von irgendwelchen 
"Fertiglösungen" wie Arduino und co und kannst davon wegarbeitend Dein 
komplett eigenes Ding machen.

Und billiger noch dazu, weil die Teile die Du ausser dem Chip selbst 
brauchst für die Schaltung kosten im Centbereich, statt einige Euro bis 
zweistelliges an Euros für 'n Arduino.

von Stefan F. (Gast)


Lesenswert?

> Was ist sinnvoller? Ein Atmel ISP MKII oder ein AVR-Dragon?

Kommt auf den Anwendungsfall an. Beide Produkte können einiges, was das 
jeweils andere nicht kann.

von W.S. (Gast)


Lesenswert?

Heinz L. schrieb:
> Ich hab 'ne ziemlich genaue Ahnung was Du willst, nur sowas glaub ich
> gibt's (noch) nicht. Du willst, und korrigiere mich wenn ich falsch
> liege, irgendwas wo Du aus dem USB-Port Deines Recheners rausgehst und
> den an einen "USB-Port" eines µC anschließt und den µC auf die Art und
> Weise programmierst.

Ja und?
Genau DAS hab ich mit dem LPC1343 vorgeschlagen:
Den kann man per USB und auch per UART programmieren, denn wenn der fest 
eingebaute (und unlöschbare) Bootlader gestartet ist und er feststellt, 
daß er sich am USB befindet, dann meldet er sich am PC als kleiner 
Massenspeicher an, wo man die selbstgebastelte und per "MakeValid" 
gültig gemachte Firmware einfach draufkopiert. Egal womit, on nun 
Explorer oder Totalcommander oder Drag&Drop oder Kommandozeile, ist 
wurscht, es geht mit allem. Wenn der Bootlader merkt, daß er nicht am 
USB hängt, dann wirft er den UART an und läßt sich z.B. mit FlashMagic 
programmieren.

Und wenn man den Bootlader beim Einschalten nicht aktiviert, dann ist 
das Ganze eben ein µC mit USB-Anschluß, aus dem man nach eigenem 
Gutdünken ein USB-Device machen kann wie man will.

Besser kann man's m.E. nicht kriegen.

W.S.

von Heinz L. (ducttape)


Lesenswert?

W.S. schrieb:
> Heinz L. schrieb:
>> Ich hab 'ne ziemlich genaue Ahnung was Du willst, nur sowas glaub ich
>> gibt's (noch) nicht. Du willst, und korrigiere mich wenn ich falsch
>> liege, irgendwas wo Du aus dem USB-Port Deines Recheners rausgehst und
>> den an einen "USB-Port" eines µC anschließt und den µC auf die Art und
>> Weise programmierst.
>
> Ja und?
> Genau DAS hab ich mit dem LPC1343 vorgeschlagen:
> Den kann man per USB und auch per UART programmieren, denn wenn der fest
> eingebaute (und unlöschbare) Bootlader gestartet ist und er feststellt,
> daß er sich am USB befindet, dann meldet er sich am PC als kleiner
> Massenspeicher an, wo man die selbstgebastelte und per "MakeValid"
> gültig gemachte Firmware einfach draufkopiert. Egal womit, on nun
> Explorer oder Totalcommander oder Drag&Drop oder Kommandozeile, ist
> wurscht, es geht mit allem. Wenn der Bootlader merkt, daß er nicht am
> USB hängt, dann wirft er den UART an und läßt sich z.B. mit FlashMagic
> programmieren.
>
> Und wenn man den Bootlader beim Einschalten nicht aktiviert, dann ist
> das Ganze eben ein µC mit USB-Anschluß, aus dem man nach eigenem
> Gutdünken ein USB-Device machen kann wie man will.
>

Es mag Dir nicht aufgefallen sein, und vielleicht überinterpretiere ich 
da etwas, aber es schien mir so als ob der Threaderöffner ja eben 
explizit nicht 'n "Entwicklungsboard" haben will sondern die µC 
eigenständig erforschen will. Zusätzlich ist sehr offensichtlich dass er 
mit der Materie eher noch am Anfang steht und teilweise mit den 
Grundlagen nicht vertraut ist.

Dein Vorschlag dazu ist 'n Cortex M3 auf etwas das man mehr oder weniger 
"glorified breakout board" nennen könnte, im Endeffekt aber nicht weit 
davon weg ist was ihm auch 'n Arduino im AVR-Bereich liefern würde. Und 
genau das will er ja eben offensichtlich nicht haben. Weil genau das hat 
er eben im Eingangsposting geschrieben.

von Max M. (maxmicr)


Lesenswert?

Heinz L. schrieb:
> Es mag Dir nicht aufgefallen sein, und vielleicht überinterpretiere ich
> da etwas, aber es schien mir so als ob der Threaderöffner ja eben
> explizit nicht 'n "Entwicklungsboard" haben will sondern die µC
> eigenständig erforschen will.

Exakt. Ich hab mich jetzt jedoch erstmal doch für einen Arduino 
entschieden und werde da einiges ausprobieren. Wenn ich mich damit 
sicher fühle, kommt der nächste Schritt :)

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Heinz L. schrieb:
> Und
> genau das will er ja eben offensichtlich nicht haben. Weil genau das hat
> er eben im Eingangsposting geschrieben.

Das ist so, aber mehrere Poster haben ihm erklärt, dass es eine nicht so 
gute Idee ist, alles allein und vom absoluten Nullpunkt aus aufzubauen. 
Und möglicherweise konnten wir ihn davon sogar überzeugen, was ja hier 
selten genug vorkommt:

Max MMM schrieb:
> Ich hab mich jetzt jedoch erstmal doch für einen Arduino
> entschieden und werde da einiges ausprobieren.

Viel Erfolg,

Georg

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

> Viel Erfolg
Wünsche ich auch, mit 'Serial.print()-Debugging'. * duck-und-weg *

von W.S. (Gast)


Lesenswert?

Heinz L. schrieb:
> Es mag Dir nicht aufgefallen sein, und vielleicht überinterpretiere ich
> da etwas, aber es schien mir so als ob der Threaderöffner ja eben
> explizit nicht 'n "Entwicklungsboard" haben will sondern die µC
> eigenständig erforschen will.

Was schreibst du da eigentlich für einen Unsinn? Im Allgemeinen ist es 
nicht meine Art, mich selbst zu zitieren, aber hier muß es mal sein:

W.S. schrieb:
> Dann bau dir eines und nimm den LPC1343 dafür. Der ist relativ
> übersichtlich und gut via USB zu programmieren..

Reicht das aus???

So, nun reicht's von meiner Seite. Wer sich zuallererst ein Arduino 
zulegen will: "Exakt. Ich hab mich jetzt jedoch erstmal doch für einen 
Arduino entschieden und werde da einiges ausprobieren." - der hat ganz 
offensichtlich nicht vor, bei seinem allersten Satz "ich würde gerne 
mein eigenes, kleines Mikrocontroller-Board mit USB-Anschluss bauen," zu 
bleiben. Da nützt dann auch weder ein Ratschlag noch ein fertiger 
USB-Treiber.

Also gut Nacht zusammen.

W.S.

von Heinz L. (ducttape)


Lesenswert?

Wir reden von https://www.mikrocontroller.net/part/LPC1343 ja? Einem 
Chip, der in seiner "bastlerfreundlichsten" Variante als QFP daherkommt. 
Einem Chip, der 3.3V und NUR 3.3V verdaut, und entsprechend wenn von USB 
gepowered 'n entsprechenden Voltage Regulator davor braucht. Und 
diversen anderen Klimbim. Ja sicher "geh bitte, Details", für sicher 
viele hier, aber ich erinner mich noch gut wie's zu meinen 
"Einstiegszeiten" war, da war die Wahl des richtigen Spannungsregulator 
bereits 'ne Nummer für sich.

Und das willst Du ernsthaft 'n Einsteiger antun? So nach dem Motto, das 
muss das Boot abkönnen?

Das ist wieder was zum Thema "talk for your audience, not just to it". 
Ich hab hier oft das Gefühl dass die Antworten eher der eigenen 
Bestätigung und der Bestätigung der eigenen Überlegenheit dienen als der 
Hilfe des Hilfesuchenden. Es ist ja nunmal so, und dieser Thread zeigt's 
wieder mal deutlich, oft genug weiss der, der sucht, nicht mal was er 
sucht. Der Threadersteller hat, weil USB halt omnipräsent ist und jedes 
Furzgerät sowas kann, angeonommen, dass das was ganz einfaches ist das 
eben mal "so" funktioniert. Die Annahme ist ja per se nicht mal so 
"naiv" sondern eigentlich verständlich. Dass USB allerdings ein 
Protokoll ist das eben nun nicht mal eben so "out of the box" 
funktioniert, Marke "Kabel dran und gut", das konnte der Threadersteller 
nicht wissen. Woher auch? Jedes noch so triviale Gerät hat sowas, 
entsprechend liegt der Schluss nahe dass das so komplex nicht sein kann.

Es ist auch nicht komplex, der Teufel steckt halt im Detail. In Details, 
um die sich ein Anfänger im Bereich Mikroelektronik nicht unbedingt 
kümmern müssen sollte. Der Einstieg sollte einfach sein. Und, simma's 
uns, einfacher als AVR wird's so fix nicht. Die Chips "fressen" so 
ziemlich jede Spannung im handelsüblichen Bereich bis 5V, die 
Minimalbeschaltung ist sehr überschaubar, es gibt Tonnen an Information, 
Schaltbilder und Troubleshootingtips im Netz...

Und ja, der Threadersteller hat ursprünglich geschrieben, er will alles 
selbst machen und dann sagt er, er kauft nun doch 'n Arduino. Was ich 
ihm nur hoch anrechnen kann, er hat seinen Thread tatsächlich gelesen, 
gelernt, reagiert und hat erkannt dass seine ursprüngliche Idee zwar 
richtig war (und ganz ernsthaft, ich bin sicher dass Du, werter TE, das 
Ding mal bauen wirst, nur eben nicht heute) aber eben noch nicht in 
Reichweite und dass er dorthin erst mal mit anderen Mitteln hinkommen 
muss.

Man nennt so etwas "Ratschläge annehmen". Er ist nämlich hierher 
gekommen um Ratschläge zu erhalten. Und, entgegen dessen was sonst hier 
oft passiert, hat er sie sogar angenommen. So gesehen verständlich, dass 
so etwas irritiert, es passiert so selten.

von Michael K. (Gast)


Lesenswert?

W.S. schrieb:
> der hat ganz
> offensichtlich nicht vor, bei seinem allersten Satz "ich würde gerne
> mein eigenes, kleines Mikrocontroller-Board mit USB-Anschluss bauen," zu
> bleiben. Da nützt dann auch weder ein Ratschlag noch ein fertiger
> USB-Treiber.

Man muß nicht B sagen weil man A gesagt hat.
Man kann auch erkennen das A ein Fehler war.

Zu dieser Entscheidung zu kommen, und da schliesse ich mich ductape an, 
spricht für den TE.

von Lothar (Gast)


Lesenswert?

Heinz L. schrieb:
> Einem Chip, der in seiner "bastlerfreundlichsten" Variante als QFP daherkommt.

Gibt es daher fertig auf DIP-Adapter:
http://www.watterott.com/de/LPC1343-QuickStart-Board
... mit Demo-Software (CDC, HID, MSC)

von Heinz L. (ducttape)


Lesenswert?

Lothar schrieb:
> Heinz L. schrieb:
>> Einem Chip, der in seiner "bastlerfreundlichsten" Variante als QFP daherkommt.
>
> Gibt es daher fertig auf DIP-Adapter:
> http://www.watterott.com/de/LPC1343-QuickStart-Board
> ... mit Demo-Software (CDC, HID, MSC)

Alles richtig, Lothar, nur sind wir dann wieder da wo ich sag, da kannst 
dann gleich 'n Arduino nehmen. Weniger komplex und preislich sind die 
"Minimalarduinos" dort auch nicht mehr weit weg. Und wenn er mal die 
ersten Erfahrungen zusammen hat und die Nase voll hat davon sich durch 
die Sprache des Arduinos limitieren zu lassen, kann er für kleines Geld 
AVR Chips kaufen, die's zumindest in den Varianten bis Mittelklasse 
allesamt in DIP-Ausführung gibt und den Arduino dafür als Programmer 
verwenden.

von Cyblord -. (cyblord)


Lesenswert?

Heinz L. schrieb:
> Alles richtig, Lothar, nur sind wir dann wieder da wo ich sag, da kannst
> dann gleich 'n Arduino nehmen.

Übrigens. Jedes Mal wenn hier jemand Arduino empfiehlt, töte ich ein 
süßes Katzenbaby. Nur so zur Info.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Cyblord ---- schrieb:
> Jedes Mal wenn hier jemand Arduino empfiehlt, töte ich ein
> süßes Katzenbaby.

Dann empfehle ich den STM32F103C8T6. Wenn man sich eh neu einarbeitet, 
muss man sich ja nicht in 8-Bitter einarbeiten. Der STM32F103C8T6 ist 
als China-Exportschlager soger oft billiger als ein 8-Bit-AVR.

Siehe Beitrag "STM32F103C8T6 ARM STM32 Minimum System Development Board Module For Arduino"

Lasst die Katzenbabys in Ruhe! Man muss ja nicht die grässlichen 
Arduino-Libs nehmen, falls man die Hardware nutzen möchte.

von google (Gast)


Lesenswert?

Cyblord ---- schrieb:
> Übrigens. Jedes Mal wenn hier jemand Arduino empfiehlt, töte ich ein
> süßes Katzenbaby. Nur so zur Info.

Mach weiter. Ich hasse Katzen ...

von Lothar (Gast)


Lesenswert?

> Weniger komplex und preislich sind die
> "Minimalarduinos" dort auch nicht mehr weit weg

Wir hatten vorher Arduino für USB ist das ist deutlich komplexer (und 
fehlerträchtiger) als der LPC1343 mit ROM-Treiber, vor allem wenn man 
nicht nur CDC sondern HID/MSC/DFU nutzen will.

> AVR Chips allesamt in DIP-Ausführung

Den LPC1343 gibt es pinkompatibel als LPC1114 DIP - leider ohne USB, 
hier muss NXP mal tätig werden ...

von Heinz L. (ducttape)


Lesenswert?

Ich bin nun wirklich kein Arduino-Fan, aber die Dinger haben nunmal ein 
paar Vorteile: Billig, relativ stabil, irre viel Support im Netz und vor 
allem, wenn man davon die Schnauze voll hat sich von dem eingebauten 
Schmarrn der sich dort Programmiersprache nennt gängeln zu lassen noch 
immer ein vollwertiger ISP für den "ernsthaften" Einstieg in die 
AVR-Welt.

Und ganz ehrlich, wenn ich so von AVR zu ARM guck, preislich ist die AVR 
Geschichte irgendwie (noch) angenehmer. Die Tools die man braucht sind 
teilweise weit billiger zu kriegen und/oder leichter selbst zu machen. 
Es gibt weit mehr an Chips in DIP/DIL und nicht nur in QFL oder sogar 
nur noch QFN und BGA. Das Setup ist einfacher und die Chips "verdauen" 
weit mehr Mißbrauch und Spannungsbreiten. Alles große Vorteile wenn man 
am Anfang steht.

Und die Dinger können auch nicht so viel dass einen die Doku erschlägt. 
:)

von W.S. (Gast)


Lesenswert?

Heinz L. schrieb:
> Und das willst Du ernsthaft 'n Einsteiger antun? So nach dem Motto, das
> muss das Boot abkönnen?

Ja.
Ganz richtig.

Wer antritt, um sich einzuarbeiten und deswegen sogar - was ich löblich 
finde - plant, sich sein eigenes Board zu entwerfen, der ist mit sowas 
gut bedient. Ich sage dir: Dieser Chip hat ganz genau die Eigenschaften, 
die der TO sich in seinem Eingangspost gewünscht hat. Und er ist 
innerlich überschaubar.

Erzähle mir bloß nicht, man könne es sich oder anderen heutzutage nicht 
mehr zumuten, einen simplen QFP auf ne LP zu löten oder sich bei 
Reichelt&Konsorten einen passenden Spannungsregler zu kaufen.  Wenn du 
jetzt jammerst, daß sowas deiner Meinung nach viel zu kompliziert sei, 
dann frage ich mich besorgt, was denn wohl als nächstes Argument käme. 
Etwa allgemeines Schimpfen auf SMD? Weil das heutzutage eben auch klein 
ist im Vergleich zu einer ECC81 ?

Wo leben wir denn? Etwa im elektronischen Schlaraffenland, wo einem die 
fertig programmierten Boards gebraten auf den Basteltisch fliegen? Wo 
man seinen eigenen Kopf nicht mehr zu bemühen braucht, um was selber zu 
lernen, da es ja alles schon fertig gibt? Wo man nicht mehr die Nase ins 
Buch oder in einen Quellcode zu stecken braucht, um die Welt nicht als 
"Ist mir zu schwer und zu neu" abzutun? Freiwillig schon in jungen 
Jahren verkalken?

Wenn der TO geschrieben hätte "ich möcht ein wenig mit µC herumdaddeln, 
weil ich gehört hab, daß das jetzt hipp ist" dann wäre die Sache klar 
gewesen - er hätte alles nehmen können, was von Anfang an schon wackelt 
und tut, aber deine Ratschläge bedeuten im Klartext, die Flinte schon 
vor der Jagd ins Korn zu werfen.

W.S.

von Georg (Gast)


Lesenswert?

Cyblord ---- schrieb:
> Übrigens. Jedes Mal wenn hier jemand Arduino empfiehlt, töte ich ein
> süßes Katzenbaby

Warum solltest du auch zu Katzen eine besseres Verhältnis haben als zu 
den anderen Forumsteilnehmern.

Georg

von Lothar (Gast)


Lesenswert?

Heinz L. schrieb:
> ISP für den "ernsthaften" Einstieg in die AVR-Welt

Hat sich wohl immer noch nicht so rumgesprochen dass bei ARM (wie auch 
bei 8051 davor) ISP über UART läuft. Somit braucht man auch keinen 
Programmer wie bei AVR MOSI/MISO sondern nur ein 5 EUR USB-seriell 
Kabel.

Und ein ARM-Debugger kostet grade mal 18 EUR und dafür gibt es Firmware 
für alle Protokolle (JTAG, SWD, J-Link, DAP)

http://www.watterott.com/de/LPC-Link-2

von Heinz L. (ducttape)


Lesenswert?

W.S. schrieb:
> Wer antritt, um sich einzuarbeiten und deswegen sogar - was ich löblich
> finde - plant, sich sein eigenes Board zu entwerfen, der ist mit sowas
> gut bedient. Ich sage dir: Dieser Chip hat ganz genau die Eigenschaften,
> die der TO sich in seinem Eingangspost gewünscht hat. Und er ist
> innerlich überschaubar.

Gut und schön, nur ist das Schritt 2 des Werdeganges. Schritt 1 ist, mit 
DIPs und Drahtteilen was zusammenzustecken damit's am Breadboard läuft, 
sich drüber freuen dass das geht. Oder vielmehr, die Teile rumstecken 
bis es geht. Ich weiss nicht wie's bei dir am Anfang war, aber bei mir 
war am Anfang da wenig das gleich mal ad hoc funktioniert hat. Ich hab 
in den Elektrotechnikvorlesungen gepennt. Was mir natürlich auf'n Kopf 
gefallen ist als ich entdeckt hab dass µC was Feines sind, aber da war's 
nach der Uni.

Und ich weiss eben nicht wo der TE dabei steht. Kann ja sein dass er 'n 
DI Elektrotechnik Diplom an der Wand hängen hat. Dann mag's ja so sein. 
Sonst ist es sehr frustend mit teilweise nicht grad billigen Chips 
rumzulöten um dann zu fragen "woran liegt's jetzt, Schaltung? Falsch 
gelötet? Chip gebrutzelt? Ömm..."

> Erzähle mir bloß nicht, man könne es sich oder anderen heutzutage nicht
> mehr zumuten, einen simplen QFP auf ne LP zu löten oder sich bei
> Reichelt&Konsorten einen passenden Spannungsregler zu kaufen.

Wie gesagt, für DI Etech sicher nicht. Für Otto Vorhernixeletriker kann 
die Wahl des richtigen Spannungsreglers bereits zu einer Odyssee ganz 
für sich selbst werden. "Low drop? Oder nicht? Was bedeuten denn die 
ganzen lustigen Begriffe die da bei den verschiedenen dabei stehen, ich 
will doch nur von 5V auf 3.3V kommen. Und wozu da jetzt Kondis dran? 
Müssen die genau diesen Wert haben? Und wo was anhängen? An welche Seite 
kommt was?" Usw.

> Wenn du
> jetzt jammerst, daß sowas deiner Meinung nach viel zu kompliziert sei,
> dann frage ich mich besorgt, was denn wohl als nächstes Argument käme.
> Etwa allgemeines Schimpfen auf SMD? Weil das heutzutage eben auch klein
> ist im Vergleich zu einer ECC81 ?

Ja. SMDs steckt man so ungut auf's Breadboard. Und wenn ich nicht grad 
den Platinenbader pro cm² bezahl löt ich auch lieber die Drahtteile.

> Wo leben wir denn? Etwa im elektronischen Schlaraffenland, wo einem die
> fertig programmierten Boards gebraten auf den Basteltisch fliegen?

Wer von uns will ihm denn sowas einreden, hmmmmm? :)
Aber mal abseits der Sticheleien, am Anfang ist es meiner Meinung nach 
immer noch besser von einer "known good" Solution wegzuarbeiten.

> Wenn der TO geschrieben hätte "ich möcht ein wenig mit µC herumdaddeln,
> weil ich gehört hab, daß das jetzt hipp ist" dann wäre die Sache klar
> gewesen - er hätte alles nehmen können, was von Anfang an schon wackelt
> und tut, aber deine Ratschläge bedeuten im Klartext, die Flinte schon
> vor der Jagd ins Korn zu werfen.

Meine Vorschläge gehen in die Richtung, jemanden der mit der Materie 
eben erst anfängt langsam ranzuführen. Und dafür sind meiner Meinung 
nach nunmal AVRs ideal. Sie sind simpel. Viel simpler werden die Teile 
nicht. VCC und GND anklemmen und das Ding quietscht schon. Quarz 
optional. Sogar Blockkondi, Resetpullup usw optional. Obwohl vorteilhaft 
und der Stabilität zuträglich, aber TUN TUT's auch ohne, und das zählt. 
Sowas bringt Frohsinn weil das Erfolgserlebnis da ist.

Und auch wenn man zuerst mal einen Progger kaufen muss der halt "fertig" 
daher kommt, die Chips selbst kann man "roh" und direkt ansprechen. Ohne 
breakout board, ohne Trägerplatine, man bekommt viel mehr das Gefühl 
nicht davon abhängig zu sein dass da ein anderer irgendwas gemacht hat 
sondern man kann "mit dem Chip selbst" arbeiten. Nicht der Chip, auf 
einer Platine, mit Hühnerfutter drumrum, mit Interface links und rechts 
und mit unveränderlichem Bootloader. Wenn ich das haben will geh ich 
zurück an die Arbeit und programmier wieder für PCs. Da versteht die CPU 
auch den eigenen Befehlssatz nicht mehr...

AVRs haben halt den Charm dass der Chip wirklich "dir gehört". Du 
bestimmst alles. Und ich hab das Gefühl das ist etwas das dem TE wichtig 
ist. Mag sein dass ich das da hineininterpretier (und falls der TE 
überhaupt noch mitliest würde es mir doch etwas bedeuten zu wissen ob 
ich mir da nur was einbilde) aber ich hab das Gefühl dieses "selbst 
gemacht und unter meiner Kontrolle" Gefühl ist dabei für ihn etwas 
Wesentliches.

von Max M. (maxmicr)


Lesenswert?

Heinz L. schrieb:
> AVRs haben halt den Charm dass der Chip wirklich "dir gehört". Du
> bestimmst alles. Und ich hab das Gefühl das ist etwas das dem TE wichtig
> ist.

Ist eigentlich der wesentliche Punkt, warum ich das machen möchte. Ich 
hab es satt, z.B. im PC-Bereich immer auf die Soft- bzw. 
Hardwarehersteller warten zu müssen, bis die sich zusammenraufen und 
endlich (als Beispiel) x86 mit ARM kompatibel machen.

Deswegen freu ich mich, mal endlich was komplett selber machen zu können 
:) Hab auch schon ganz viele Ideen, mal schaun wie schnell sich das 
alles umsetzen lässt ^^

Ist erfreulicherweise aktuell das günstigste Hobby, das ich je hatte.

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

Heinz L. schrieb:
> Ich weiss nicht wie's bei dir am Anfang war,

Wozu das?

Aber wo du fragst: Ich hatte tatsächlich als Bub von so etwa 10 Jahren 
mit der ECC81 angefangen, Gegentakt-Oszillator, Taste im 
Kathodenkreis... Und mein Einstieg in die µC Technik hieß "Selberlesen, 
Selbermachen, Selberlernen"

So. Auch von den heutigen Einstiegswilligen erwarte ich mit einiger 
Selbstverständlichkeit, daß sie Pioniergeist mitbringen und sich selbst 
bilden. Man hilft ja, wo man kann, da ist es an denen, die da nach Hilfe 
fragen, selbige auch anzunehmen.

Und du solltest nicht in voreilender Bedenksamkeit so reden, als hätte 
der TO weder ne ruhige Hand noch genug Grips zum Lesen und 
Sich-Weiterbilden.

Argumente wie "das hab ich in der ET Vorlesung nicht gehabt" oder so 
übersetzen sich für mich beim Lesen zu einem ganz herben Schimpfwort.

W.S.

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.