Discussion:
Frage zu AtMega32-Schaltung
(zu alt für eine Antwort)
Hans-Paul Hoppel
2009-02-26 11:10:05 UTC
Permalink
Hallo Leute,

ich bin gerade dabei, mich etwas in µC einzuarbeiten. Ansonsten bin ich
nicht so die elektronische Leuchte, aber so ein paar einfache Dinge
kriege ich hin.

Frage zu diesem Schaltplan:
Loading Image...

Wieso sind hier 2x 100nF parallel geschaltet, nämlich C5 und C1? Ist das
ein versehen und könnte man einen davon nicht sogar weglassen?

Außerdem: Hat jemand einen Schaltplan + C-Code für die Ansteuerung einer
7-Segment-Anzeige mit dem Mega16/32?

Ich habe nur für den Mega8 was gefunden:
http://www.blafusel.de/misc/timer.html

Oder ist das kompatibel, wenn man die entsprechenden Pins auf dem Mega32
belegt und den Quellcode neu compiliert?

Gruß

HaPa
Uwe Hercksen
2009-02-26 11:20:49 UTC
Permalink
Post by Hans-Paul Hoppel
Wieso sind hier 2x 100nF parallel geschaltet, nämlich C5 und C1? Ist das
ein versehen und könnte man einen davon nicht sogar weglassen?
Hallo,

nein, der eine soll direkt neben dem Spannungsregler IC sitzen, der
andere direkt neben dem Mega32. Wenn diese Kondensatoren über längere
Leitungen angeschlossen sind wirken sie nicht mehr so wie notwenig wegen
der Induktivität der Leitungen. Sie sollen Schwankungen der
Versorgungsspannung verhindern wenn sich die Stromaufnahme des
Prozessors sehr schnell und kurz erhöht, es geht da um Vorgänge im
Bereich von Nanosekunden. Die Kondensatoren direkt am Spannungsregler
sind für seine Stabilität notwendig, sie verhindern Schwingungen.

Bye
Michael Baeuerle
2009-02-26 12:30:24 UTC
Permalink
Post by Hans-Paul Hoppel
Außerdem: Hat jemand einen Schaltplan + C-Code für die Ansteuerung einer
7-Segment-Anzeige mit dem Mega16/32?
http://www.blafusel.de/misc/timer.html
Oder ist das kompatibel, wenn man die entsprechenden Pins auf dem Mega32
belegt und den Quellcode neu compiliert?
Klar ist das kompatibel, die Ports der AVRs sind ueberall gleich
implementiert.

Der ATmega32 haette sogar genug Pins um die drei 7-Segmentanzeigen
einzeln (statisch) anzusteuern. Es wuerde dann reichen die Segmentbits
einfach auf den Ports auszugeben. Der Treiber wuerde sich dann auf die
7-Segment Codierung reduzieren und 0% CPU-Last erzeugen wenn gerade kein
Display-Update erfolgt. Auch die externen Transistoren waeren dann nicht
noetig.


Micha
Henning Paul
2009-02-26 12:39:04 UTC
Permalink
Post by Michael Baeuerle
Post by Hans-Paul Hoppel
Oder ist das kompatibel, wenn man die entsprechenden Pins auf dem
Mega32 belegt und den Quellcode neu compiliert?
Klar ist das kompatibel, die Ports der AVRs sind ueberall gleich
implementiert.
Man muss nur aufpassen, die Steuerregister für Timer etc. korrekt zu
bedienen, da gibt es durchaus subtile Unterschiede.

Gruß
Henning
Michael Baeuerle
2009-02-26 14:05:47 UTC
Permalink
Post by Henning Paul
Post by Michael Baeuerle
Post by Hans-Paul Hoppel
Oder ist das kompatibel, wenn man die entsprechenden Pins auf dem
Mega32 belegt und den Quellcode neu compiliert?
Klar ist das kompatibel, die Ports der AVRs sind ueberall gleich
implementiert.
Man muss nur aufpassen, die Steuerregister für Timer etc. korrekt zu
bedienen, da gibt es durchaus subtile Unterschiede.
Stimmt, muss ich zuruecknehmen. War etwas vorschnell von mir, irgendwie
muss ja der Multiplextakt erzeugt werden. Vorraussetzung ist natuerlich
auch, dass man im Compiler/Assembler wie von Atmel empfohlen mit den
Port- und Bitnamen zugreift ... die I/O-Adressen waren bei AVR noch nie
portabel.

Konkret dieses Projekt von ATmega8 auf ATmega32 portieren sollte aber
kein ernsthaftes Problem sein. Die beiden CPUs sind sich ziemlich
aehnlich. Die Firmware scheint auch keine "boesen" Sachen zu machen.


Micha

Hans-Paul Hoppel
2009-02-26 13:11:09 UTC
Permalink
Post by Michael Baeuerle
Post by Hans-Paul Hoppel
Oder ist das kompatibel, wenn man die entsprechenden Pins auf dem Mega32
belegt und den Quellcode neu compiliert?
Klar ist das kompatibel, die Ports der AVRs sind ueberall gleich
implementiert.
Super.
Post by Michael Baeuerle
Der ATmega32 haette sogar genug Pins um die drei 7-Segmentanzeigen
einzeln (statisch) anzusteuern. Es wuerde dann reichen die Segmentbits
einfach auf den Ports auszugeben. Der Treiber wuerde sich dann auf die
7-Segment Codierung reduzieren und 0% CPU-Last erzeugen wenn gerade kein
Display-Update erfolgt. Auch die externen Transistoren waeren dann nicht
noetig.
Hm darüber muss ich nachdenken. Bei der Anzeige allein soll es ja nicht
bleiben. Aber wenn dann noch genug Ports übrig sind, dann ist das schon
eine Überlegung.

Vielen Dank für Eure prompte Hilfe

HaPa
Lesen Sie weiter auf narkive:
Loading...