mikrocontroller.net

Forum: Compiler & IDEs JTAG zum programmieren und als I/0


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein fertiges Board zum "spielen" bekommen. Ich möchte daran ein 
Display mit HD44780 anschließen. leider werden außer JTAG und CAN keine 
Ports/Pins nach außen durchgeführt. Idee:
JTAG abschalten per

MCUCSR = (1<<JTD);
MCUCSR = (1<<JTD);

und dann die verfügbaren Pins als zum Anschluss des Displays nutzen (mit 
Portexpander 74HC595). Ich benötige aber JTAG auch zum Programmieren des 
Chips. ICh habe gelesen, das sich der Programmer (JTAGIce mkII in meinem 
Falle) trotz per Register abgeschaltetem JTAG noch verbinden kann. Ist 
dies Richtig oder schließe ich mich durch die obigen zwei Zeilen vom 
Board aus? Danke für eure Hilfe.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es könnte sein, dass man per JTAG programmieren kann, wenn zwischen 
Reset und Deaktivierung des JTAG genug Zeit bleibt. So dass der 
Programmer die Initialisierung und somit die Deaktivierung aufhalten 
kann.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort. Wie definiere ich denn diese Zeit, ein 
Delay einzubauen ist natürlich nicht erste Wahl. Laut einer Aussage hier 
im Forum muss der Programmer nSRST innerhalb von zwei Taktzyklen senden. 
Leider finde ich hierzu keine Quelle die dies belegt.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier nocheinmal das Zitat:

To be able to use the JTAG interface, the JTAGEN Fuse must be 
programmed. The device is default shipped with the fuse programmed. In 
addition, the JTD bit in MCUCR must be cleared. Alternatively, if the 
JTD bit is set, the external reset can be forced low. Then, the JTD bit 
will be cleared after two chip clocks, and the JTAG pins are available 
for programming. This provides a means of using the JTAG pins as normal 
port pins in Running mode while still allowing In-System Programming via 
the JTAG interface. Note that this technique can not be used when
for Boundary-scan or On-chip Debug. In these cases the dedicated for 
this purpose.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias schrieb:
> Note that this technique can not be used when
> for Boundary-scan or On-chip Debug.

On-chip debugging kann man trotzdem noch benutzen, außer dass die
Pins dann natürlich nicht ihre IO-Port-Funktion erfüllen können.
Das geht, indem man an die erste der Anweisungen, die das JTD-Bit
setzen, einen Breakpoint setzt und dann im single step über beide
diese Anweisungen geht.  Dadurch ist die zeitliche Bedingung (muss
zweimal innerhalb von 4 Takten gesetzt werden) nicht mehr erfüllt,
und das Setzen des JTD wird ignoriert.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das klingt ja super. Das Display am JTAG soll während der 
Programmierung abnehmbar sein. das Display wird beim Programmieren vom 
JTAG getrennt und dann der JTAGIce dran. Danach ein Reset durchführen, 
JTD in MCUCSR auf 0 also JTAG wieder auf "enable" und Programmieren 
sowie durch setzen des Breakpoints auch Debuggen. Sollte in meinem 
Gedankengang etwas falsch sein bitte antworten, ansonsten Danke für die 
Hilfe!

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.