Forum: Mikrocontroller und Digitale Elektronik ATmega8 vs. ATmega16


von atmega8vs16 (Gast)


Lesenswert?

Ich möchte ein Tastenfeld mit 12 Ausgängen an den ATmega8 anschließen. 
Allerdings wäre der PORT B schon voll belegt. Deshalb möchte ich anstatt 
des ATmega8 einen ATmega16 verwenden, denn bei dem kann man ja die 
Ausgänge auf zwei PORTs verteilen.
Meine Frage ist nun, ob die Grundschaltung des ATmega16 die selbe des 
ATmega8 ist?
Grundschaltung ATmega8 siehe: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Selbstbau
Wenn nicht, wie sieht diese aus?
Danke.

von (prx) A. K. (prx)


Lesenswert?

atmega8vs16 schrieb:

> Meine Frage ist nun, ob die Grundschaltung des ATmega16 die selbe des
> ATmega8 ist?

Ja, nur liegen die Funktionen wie VCC/GND/Reset/... natürlich auf 
anderen Pinnummern, wenngleich geografisch ähnlich. Siehe Datasheet.

Nachdem hier schonmal jemand die Belegung eines 20-Pin Tiny identisch 
auf einen 40-Pin Mega angewendet hatte, ohne sich drüber zu wundern dass 
die komplette rechte Seite unbeschaltet blieb, halte ich es nötig, 
darauf hinzuweisen. ;-)

von bitte löschen (Gast)


Lesenswert?

Wenn man mehr Pins ansprechen will, investiert man schon mal gerne in 
ein Schieberegister (z.B. 4014 für rein und/oder 4015 für raus, je 24 
Cent bei R), als 90 Cent für einen größeren AVR zu bezahlen. Das macht 
unter Umständen auch das Layout einfacher, weil man nur 2 bzw. 3 
Leitungen zur Peripherie routen muss.

von atmega8vs16 (Gast)


Lesenswert?

Danke für eure Antworten.
A. K. schrieb:
> Ja, nur liegen die Funktionen wie VCC/GND/Reset/... natürlich auf
>
> anderen Pinnummern, wenngleich geografisch ähnlich. Siehe Datasheet.
>
>
>
> Nachdem hier schonmal jemand die Belegung eines 20-Pin Tiny identisch
>
> auf einen 40-Pin Mega angewendet hatte, ohne sich drüber zu wundern dass
>
> die komplette rechte Seite unbeschaltet blieb, halte ich es nötig,
>
> darauf hinzuweisen. ;-)
Hä? Also funktioniert das bei dem ATmega16 oder nicht?

Das mit dem Schieberegister ist mir zu kompliziert.

von (prx) A. K. (prx)


Lesenswert?

atmega8vs16 schrieb:

> Hä? Also funktioniert das bei dem ATmega16 oder nicht?

Doch, im Prinzip schon, nur kannst du beispielsweise nicht einfach den 
Takt an Pin 9 anschliessen, sondern musst anhand des Datasheets vom 
Mega16 rausfinden, auf welcher Pinnummer dort der Takteingang liegt.

von Detlev T. (detlevt)


Lesenswert?

Stromversorgung, Schaltung des Quarzes ist identisch, aber halt an 
anderen Pins. Die Bedeutung Fuses sind auch bei jedem Stein anders, 
sogar bei sehr nahen Verwandten (siehe zum Beispiel Mega168 vs. 
Mega328). Die "Sonderfunktionen" der Pins sind auch teilweise auf 
anderen Ports. All dies verrät einem aber das Datenblatt.

von atmega8vs16 (Gast)


Lesenswert?

Danke.
Ich hab noch eine Frage:
Im Datenblatt vom ATmega8 steht 23 Programmable I/O Lines (=23 
programmierbare I/O Pins). Werden da die analogen Anschlüsse von PORT C 
auch mitgezählt? Weil die hätte ich noch frei.

von (prx) A. K. (prx)


Lesenswert?

atmega8vs16 schrieb:

> Im Datenblatt vom ATmega8 steht 23 Programmable I/O Lines (=23
> programmierbare I/O Pins). Werden da die analogen Anschlüsse von PORT C
> auch mitgezählt?

Da werden beispielsweise die beiden Taktanschlüsse und der Reset 
mitgezählt, die aber nur als I/O verwendbar sind, wenn man sie für Takt 
und Reset nicht benötigt. Speziell beim Reset sollte man das aber nur 
machen, wenn man genau weiss was man tut.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Klar, PortC kannst du als I/O nutzen.

von atmega8vs16 (Gast)


Lesenswert?

Okay, danke.
Dann funktioniert auch der ATmega8.

von Achim M. (minifloat)


Lesenswert?

Das Tastenfeld mit 12 Ausgängen könnte man über eine Diodenmatrix 
zusammenführen und an 4 Portpins anschließen. Funktioniert nur, wenn man 
keine Tasten gleichzeitig drückt. Ein Vorschlag dazu:
Taste 1: an Pin0
Taste 2: an Pin1
Taste 3: Über 2 Dioden an Pin0 und Pin1
Taste 4: an Pin2
Taste 5: Über 2 Dioden an Pin0 und Pin2
Taste 6: Über 2 Dioden an Pin1 und Pin2
Taste 7: Über 3 Dioden an Pin0, Pin1 und Pin2
Taste 8: an Pin3
Taste 9: Über 2 Dioden an Pin0 und Pin3
Taste A: Über 2 Dioden an Pin1 und Pin3
Taste B: Über 3 Dioden an Pin0, Pin1 und Pin3
Taste C: Über 2 Dioden an Pin2 und Pin3

Zuerst wird in der Tastenabfrage-Routine geteset, ob irgendwo ein Signal 
anliegt(PIN-Register mit 0x0F ver&en und auf 0 vergleichen). Dann wird 
eine kleine Zeit gewartet, bis sich die Pegel richtig eingestellt haben.
Dann kann man direkt seine Tastennummer auslesen. Taste A, die 
wahrscheinlich "Taste0" sein wird, würde ich dann mit einer bedingten 
Anweisung nachkorrigieren.

mfg mf

PS:
Es müssen nicht unbedingt 18 Dioden verbraten werden, da gibt es auch 
noch diodenlosere, freie Kombinaionen unter den 15 Nutzbaren. 
Gehirnschmalz gefragt.

von (prx) A. K. (prx)


Lesenswert?


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.