mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehrfachfunktionen von Pins beim ATMega


Autor: Namtam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Namtam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klingt simpel..

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

Autor: tzuz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das geht du musst jedesmal wenn du das Ding brauchst
es neu initialisieren.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Namtam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank, ihr habt mir sehr geholfen :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.