Forum: Mikrocontroller und Digitale Elektronik Mehrfachfunktionen von Pins beim ATMega


von Namtam (Gast)


Lesenswert?

Habe mich bereits durch Datenblätter und Inet gewühlt, aber leider immer 
noch keine Antwort gefunden :(

Nun, folgendes Problem: Ich habe hier einen ATMega16, kann aber keinen 
anderen Prozessortypen verwenden. Ich habe sämtliche Eingänge belegt, 
bis zum letzten, brauche aber noch etwa zwei Eingänge. Platzmässig ist 
es auf der Platine sehr eng (da Grösse vorgegeben), weshalb ein 74HC244 
ausscheidet.

Die Idee ist jetzt folgende: Ist es möglich, die vier Pins des 
JTAG-Interfaces für zwei Funktionen zu verwenden, d.h: ich programmiere 
den Prozessor via JTAG-Interface. Sobald der Prozessor dann gestartet 
wird, der Prog-Adapter also auch entfernt worden ist, steuere ich per 
Software die vier Pins weiteren Funktionen zu. Mit dem einen Pin schalte 
ich eine Status-LED, mit einem weiteren steuere ich einen Ausgang, an 
den ein externes Gerät angeschlossen ist.

Meine Frage ist also, ob es möglich ist, die vier Pins TDI, TDO, TMS und 
TCK für zwei Funktionen zu verwenden, ohne dass sie sich gegenseitig in 
ihrer Funktion beeinträchtigen? Könnte man beispielsweise mittels 
irgendeiner Erkennungsmethode (Prüfung des TDI auf High-Impuls oder 
sowas zur Funktionszuteilung als JTAG-Interface, wenn nicht, Zuteilung 
von TMS, TCK als Ein-/Ausgang für weitere Funktionen?

Mag ein bisschen verworren geschrieben sein, aber ich hoffe, ihr 
versteht, was ich meine :)

von Johannes M. (johnny-m)


Lesenswert?

Namtam wrote:
> Die Idee ist jetzt folgende: Ist es möglich, die vier Pins des
> JTAG-Interfaces für zwei Funktionen zu verwenden, d.h: ich programmiere
> den Prozessor via JTAG-Interface. Sobald der Prozessor dann gestartet
> wird, der Prog-Adapter also auch entfernt worden ist, steuere ich per
> Software die vier Pins weiteren Funktionen zu.
Du musst lediglich am Anfang Deines Programms das JTAG-Interface 
deaktivieren. Das geht über das Bit JTD im MCUCSR.

von Namtam (Gast)


Lesenswert?

Klingt simpel..

Ist es dann auch möglich, diese Deaktivierung wieder aufzuheben? Oder 
wäre dann der Prozessor praktisch OTP?

von tzuz (Gast)


Lesenswert?

Das geht du musst jedesmal wenn du das Ding brauchst
es neu initialisieren.

von Johannes M. (johnny-m)


Lesenswert?

Namtam wrote:
> Ist es dann auch möglich, diese Deaktivierung wieder aufzuheben? Oder
> wäre dann der Prozessor praktisch OTP?
Solange das JTAG nicht per Fuse abgeschaltet ist, sollte das problemlos 
gehen.

Und wirklich "OTP" ist ein AVR eigentlich nie, es gibt immer irgendeinen 
Weg, ihn erneut zu programmieren...

von Namtam (Gast)


Lesenswert?

Vielen Dank, ihr habt mir sehr geholfen :)

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.