Hallo,
um einen Mikrocontroller im Normalfall vom Computer aus zu programmieren
wird ja eine serielle Schnittstelle benutzt, oder?! Also via SPI, I²C
und RS232/UART. Worin liegen die Unterschiede also was ist am "besten"?
Bitte steinigt mich nicht für diese Frage :)
Tobias schrieb:> Hallo,> um einen Mikrocontroller im Normalfall vom Computer aus zu programmieren> wird ja eine serielle Schnittstelle benutzt, oder?! Also via SPI, I²C> und RS232/UART. Worin liegen die Unterschiede also was ist am "besten"?>> Bitte steinigt mich nicht für diese Frage :)
Ich hätte gerne 2 große flache und 3 spitze und eine Tüte Kiesel bitte.
Tobias schrieb:> Hallo,> um einen Mikrocontroller im Normalfall vom Computer aus zu programmieren> wird ja eine serielle Schnittstelle benutzt, oder?! Also via SPI, I²C> und RS232/UART. Worin liegen die Unterschiede also was ist am "besten"?>> Bitte steinigt mich nicht für diese Frage :)
Erläutere den Hintergrund deiner Frage.
Hallo!
Die Programmierung erfolgt über eine (meist) serielle (auch proprietäre)
Schnittstelle am µC selbst. Bei den AVR's ist diese die
SPI-Schnitstelle. Auch über JTAG kann programmiert werden. Diese wird
aber hauptsächlich zum debuggen verwendet (kleinere AVRs haben gar kein
JTAG, sondern ein DEBUG Wire, oder auch nichts zum debuggen, je nach
Typ). Die (meisten) PCs besitzen diese Schnitstellen nicht, weshalb ein
Protokollwandler (z.B. USB zu SPI) nötig ist. Diese kann man kaufen (z.B
AVR-ISP oder mk2) oder bauen.
Gruß Sepp
Sagen wir ich suche eine platzsparende und schnelle Möglichkeit mit
einen Mikrocontroller auf einer Platine zu kommunizieren. Da würde doch
RS232 rausfallen?!
Tobias schrieb:> Hallo,> um einen Mikrocontroller im Normalfall vom Computer aus zu programmieren> wird ja eine serielle Schnittstelle benutzt, oder?!
Also ich verwende in der Regel einen Programmieradapter und wenn man den
µC ohne speziellen Programmieradapter für die Anwender updatefähig
machen will greife ich inzwischen eher zu USB als zu RS232.
Aber von den von dir genannten
> ... SPI, I²C und RS232/UART.
würde ich RS232 vorziehen, da SPI und I²C doch etwas spezieller sind.
RS232 hat jeder PC bzw. ist über einen günstigen USB=>RS232 Adapter für
jedermann einfach zu Handhaben.
Tobias schrieb:> Sagen wir ich suche eine platzsparende und schnelle Möglichkeit mit> einen Mikrocontroller auf einer Platine zu kommunizieren. Da würde doch> RS232 rausfallen?!
Nö warum? RS232 ist immernoch das einfachste. Entweder mit Pegelwandler
auf der Platine oder per USB => RS232/TTL Adapter. Für RS232 brauch man
keine speziellen Tools, da geht einfach jedes Terminal-Programm (bei
Windows ist auch eins dabei) und selbst über die Kommandozeile lässt
sich da sehr leicht drauf zugreifen. Und auch die Programmierung einer
Applikation ist mit RS232 immernoch am einfachsten.
Aber um einen µC über RS232 programmieren können brauchen die meisten
µCs zumindest einen Bootloader, nur die wenigsten haben einen integriert
(wie z.B. der STM32)
Tobias schrieb:> Sagen wir ich suche eine platzsparende und schnelle Möglichkeit mit> einen Mikrocontroller auf einer Platine zu kommunizieren. Da würde doch> RS232 rausfallen?!
Vergiß alles, was du bis jetzt gesagt hast und nimm ISP. Und die kann
kein PC von Haus aus, also brauchst du sowas wie den AVRISP-MKII oder
ähnliches. ISP ist der 6polige Stecker (oder mal 10polig), der mit dem
AVR verbunden wird.
Wenn du nicht in der Schaltung programmieren willst, kannst du auch den
STK500 oder ein anderes Programmier- oder Testboard nehmen und den AVR
zum Programmieren dort reinstecken. Der STK500 kann dann auch
HV-Programmierung, wenn du dich mal ausgesperrt hast...
Tobias schrieb:> Sagen wir ich suche eine platzsparende und schnelle Möglichkeit mit> einen Mikrocontroller auf einer Platine zu kommunizieren.
Du musst unterscheiden,
- ob Du die Kommunikation benutzen willst den µC zu programmieren,
- oder ob Dein Anwenderprogramm mit dem PC oder einem anderen µC Daten
austauschen soll.
Das eine hat mit dem anderen normalerweise nichts zu tun (Ausnahme
vielleicht: Bootloader).
Gruß Dietrich
Dann nimmst du einen richtigen Programmieradapter. Für AVR z.B. AVR ISP
MK2, für PIC z.B. PICKIT 3 ICD oder so. Mit den billigen Bastellösungen
wirst du auf Kurz oder lang meist nicht glücklich und am Ende schmeisst
du die billige Lösung weg und kaufst dann doch was Vernünftiges. Wer
billig kauft, kauft zweimal.
tobias patzke schrieb im Beitrag #3156999:
> Hallo Dietrich,> ich möchte die Kommunikation ausschließlich zum Programmieren benutzen.
Dann schaust du in das Dtenblatt deines Controllers wie dieser gerne
programmiert werden möchte. Das kannst du dir NICHT aussuchen. Der
Controller kann, sofern ein Bootloader drauf ist, auch durch eine andere
Schnittstelle programmiert werden. Diesen Bootloader kriegst du aber nur
so auf den Cntroller drauf wie der Hersteller des Controlers es sich
ausgedacht hat
Viktor N. schrieb:> Einen Programmer braucht man sowieso, denn irgendwie muss der Bootloader> ja drauf.
No, es gibt auch diverse Controller die mit Bootloader ausgeliefert
werden. Welche steht im (wer hätte das gedacht) Datenblatt.