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