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?
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.
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.
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.
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.
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
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
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.
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...
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?
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.
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
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"?
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-Boardhttp://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();
}
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...
> 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.
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?
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.
> 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.
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.
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?
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
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
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.
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. :)
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
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?
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
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.
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?
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 ...
> 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.
> 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.
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.
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.
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 :)
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
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.
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.
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.
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.
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.
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.
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 ...
> 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 ...
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.
:)
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.
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
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
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.
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.
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.