Forum: Mikrocontroller und Digitale Elektronik Einige grundsätzliche Fragen


von Daniel M. (moelli)


Lesenswert?

Hallo Mikrocontroller.net-Forum,

ich bin im Moment dabei mich ein wenig tiefer in die Materie der 
Mikrocontroller einzuarbeiten und habe ein paar Fragen. Ich habe zwar 
schon mit fertigen Mikrocontroller programmiert und gearbeitet (u.A. 3D 
Kransteuerung mit Super Nintendo Controller). Das Problem ist/war 
allerdings, dass es sich um fertige Controller handelte bei denen die 
Programmierumgebung und alles schon eingerichtet war. (Also hab ich da 
nur programmiert und mit einem Klick alles geladen). Das möchte ich 
jetzt Hobbymäßig ein wenig vertiefen.

D.h. ich möchte nun anfangen mir Controller/Programmiertool selber zu 
bauen/auszusuchen. Da ich mir schon einige Datenblätter angeguckt hab 
und auch hier schon durch einige Tutorials gestöbert hab, tun sich jetzt 
meine "Wissenslücken" auf die ich jetzt stopfen möchte.

XTAL1 und XTAL2 sind die Clock des Mikrocontrollers oder? Je nachdem 
welchen Quartz ich nehme, taktet der Controller anders?! Spricht was 
dagegen den Controller mit maximalem Takt, zu betreiben? Wenn ich 
XTAL1/XTAL2 nicht anschließe, gibts einen internen Default Takt?

Über RxD, TxD spiele ich Daten auf den Controller, oder? Muss ich 
irgendein Pin/Flag noch setzen damit er weiß, dass jetzt Daten kommen? 
Ich programmiere ja mit AVR Studio (?) und möchte dann das Programm per 
Klick über USB -> USB to UART -> Mikrocontroller laden. Funktioniert das 
so einfach?

Wenn ich GND und VCC noch anschließe, sind das die einzigen Anschlüsse, 
die ich benötige um den Controller zu betreiben? Bsp.: Ich programmiere 
ne Endlosschleife, klicke auf Laden und der Controller führt die dann 
aus? Oder übersehe ich (vermutlich ja) noch irgendwas?

Ich hab mir übrigens einen ATmega323 (DIL-40) ausgeguckt, den kann man 
dann schnell tauschen falls ich den schrotte.

Danke schonmal für eure Hilfe
Gruß
Daniel

von Simon H. (simi)


Lesenswert?

Daniel M. schrieb:
> Hallo Mikrocontroller.net-Forum,
>
> ich bin im Moment dabei mich ein wenig tiefer in die Materie der
> Mikrocontroller einzuarbeiten und habe ein paar Fragen. Ich habe zwar
> schon mit fertigen Mikrocontroller programmiert und gearbeitet (u.A. 3D
> Kransteuerung mit Super Nintendo Controller). Das Problem ist/war
> allerdings, dass es sich um fertige Controller handelte bei denen die
> Programmierumgebung und alles schon eingerichtet war. (Also hab ich da
> nur programmiert und mit einem Klick alles geladen). Das möchte ich
> jetzt Hobbymäßig ein wenig vertiefen.
>
> D.h. ich möchte nun anfangen mir Controller/Programmiertool selber zu
> bauen/auszusuchen. Da ich mir schon einige Datenblätter angeguckt hab
> und auch hier schon durch einige Tutorials gestöbert hab, tun sich jetzt
> meine "Wissenslücken" auf die ich jetzt stopfen möchte.
>
> XTAL1 und XTAL2 sind die Clock des Mikrocontrollers oder? Je nachdem
> welchen Quartz ich nehme, taktet der Controller anders?! Spricht was
> dagegen den Controller mit maximalem Takt, zu betreiben? Wenn ich
> XTAL1/XTAL2 nicht anschließe, gibts einen internen Default Takt?
>

Einfach so nicht. Bei einigen uCs kannst Du interne RC- oder Ringoszis 
konfigurieren. Die sind aber nie so genau wie ein Quarzoszillator.
Gegen maximale Taktfrequenz spricht allenfalls der Stromverbrauch. Du 
musst ev. noch daran denken, Waitstates für Flash-Zugriffe einzubauen, 
wenn Du schnell taktest. Das steht dann aber im Datenblatt.

> Über RxD, TxD spiele ich Daten auf den Controller, oder? Muss ich
> irgendein Pin/Flag noch setzen damit er weiß, dass jetzt Daten kommen?
> Ich programmiere ja mit AVR Studio (?) und möchte dann das Programm per
> Klick über USB -> USB to UART -> Mikrocontroller laden. Funktioniert das
> so einfach?

RxD und TxD (davon gibts üblicherweise mehrere) sind U(S)ART-Anschlüsse. 
Damit kannst Du seriell kommunizieren. Das heisst:
Du kannst daran ein Terminal hängen, zu Debug-Zwecken, kleiner Monitor 
dran, um Tests auszuführen etc.
ODER Du verwendest einen Boot-Loader. Einige uCs haben sowas im Flash. 
Um den zu verwenden, musst Du bei Power-Up irgendeinen Pin irgendwie 
ziehen (high oder low) Das steht im Datenblatt. Dann entweder ein 
Programm schreiben, das gemäss Anleitung im Datenblatt mit dem 
Bootloader kommuniziert, oder eben ein Programmiertool von der 
Herstellerhomepage oder sonstwo runterladen.
Ich bevorzuge aber JTAG. Damit kannst Du nicht nur laden, sondern auch 
debuggen.

>
> Wenn ich GND und VCC noch anschließe, sind das die einzigen Anschlüsse,
> die ich benötige um den Controller zu betreiben? Bsp.: Ich programmiere
> ne Endlosschleife, klicke auf Laden und der Controller führt die dann
> aus? Oder übersehe ich (vermutlich ja) noch irgendwas?

Kommt halt auch auf den Prozi an. ... ups, jetzt sehe ich gerade Dein 
"übrigens" unten. Ich arbeite (spiele) mit 'nem STM32.
Am besten schaust Du Dir eine einfache Beispielschaltung (Eval-Board, 
App-Note,...) an und überlegst Dir (anhand des Datenblatts), welche 
Anschlüsse nun wirklich nötig sind. Reset ist noch so ein Kandidat 
(nicht immer...)
--> Unbedingt die Versorgungsspannung abstützen! 100nF parallel zu jedem 
Vcc/GND-Paar ist die Regel (oder auch 10nF). Und mit die Leitung nicht 
über die Nachbargemeinde routen! :-)


>
> Ich hab mir übrigens einen ATmega323 (DIL-40) ausgeguckt, den kann man
> dann schnell tauschen falls ich den schrotte.
>
> Danke schonmal für eure Hilfe
> Gruß
> Daniel

von Olaf (Gast)


Lesenswert?

>  tun sich jetzt
> meine "Wissenslücken" auf die ich jetzt stopfen möchte.

Ja, das ist ziemlich auffaellig. Schonmal mit 'Buch' probiert?

> Spricht was
> dagegen den Controller mit maximalem Takt, zu betreiben?

Hoher Takt bedeutet hoeherer Stromverbrauch. Kann man machen, muss man 
aber nicht. Manchmal ist auch irgendein langsamer Takt bei einer krummen 
Taktfrequenz sinnvoll weil man die besser passend runterteilen kann. 
(z.B fuer RS232)

> Wenn ich XTAL1/XTAL2 nicht anschließe, gibts einen internen Default Takt?

Bei manchen Microcontrollern gibt es einen internen RC-Oszillator der 
nichts mit den Anschluessen XTAL zutun hat. Anderer Controller kennen 
soetwas nicht. Und es gibt auch Controller wo man zwei oder noch mehr 
Quarze anschliessen kann.

> Wenn ich GND und VCC noch anschließe, sind das die einzigen Anschlüsse,
> die ich benötige um den Controller zu betreiben?

Es gibt Controller das ist das so. Es gibt andere die wollen noch ein 
Reset haben oder eine Steuerleutung auf einen bestimmten Pegel gesetzt 
haben. Dafuer hat der Hersteller Datenblaetter fuer seinen Controller wo 
er jeden einzelnen Pin beschreibt.

> Ich programmiere
> ne Endlosschleife, klicke auf Laden und der Controller führt die dann
> aus? Oder übersehe ich (vermutlich ja) noch irgendwas?

Es gibt Controller da ist das so. Es gibt auch welche da ist das anders. 
Zum Beispiel hat Atmel die ganzen Fuses die auf die richtigen 
Einstellungen gebrannt werden muessen. Anders rum kann es dir bei 
Renesas passieren das du mit dem ersten Befehl deines Programms das 
Gehaeuse deines Controllers auswaehlt oder selber entscheiden kann ob 
der Controller mit Quarz oder internem Oszillator laufen soll. Jeder 
Hersteller hat da so seine Eigenarten.

Olaf

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.