Forum: Mikrocontroller und Digitale Elektronik Serielle Datenübertragung


von Tobias (Gast)


Lesenswert?

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 :)

von Cyblord -. (cyblord)


Lesenswert?

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.

von Davis (Gast)


Lesenswert?

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.

von Sepp (Gast)


Lesenswert?

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

von Tobias (Gast)


Lesenswert?

Sagen wir ich suche eine platzsparende und schnelle Möglichkeit mit 
einen Mikrocontroller auf einer Platine zu kommunizieren. Da würde doch 
RS232 rausfallen?!

von Timmo H. (masterfx)


Lesenswert?

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)

von Bernd S. (bernds1)


Lesenswert?

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

von Dietrich L. (dietrichl)


Lesenswert?

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

von tobias p. (topat)


Lesenswert?

Hallo Dietrich,
das soll ausschließlich zur Programmierung vom uC dienen.

von Timmo H. (masterfx)


Lesenswert?

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.

von Eumel (Gast)


Lesenswert?

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

von Viktor N. (Gast)


Lesenswert?

Einen Programmer braucht man sowieso, denn irgendwie muss der Bootloader 
ja drauf.

von Eumel (Gast)


Lesenswert?

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.

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.