Forum: Mikrocontroller und Digitale Elektronik Womit Atmel 90USB1287 via JTAG programmieren?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bartosz M. (osz)


Lesenswert?

Hallo zusammen,

eines vorweg: Ich bin kein Profi, ich bin nur ein Hobby-Bastler, der 
gerne dazulernt. ;)

Ich habe ein Open Hardware Projekt, dass ich gerne nachbauen möchte. 
Alle dafür benötigten Teile habe ich bestellt, Platinen ätzen lassen und 
zusammengelötet. Das Herz des Projektes ist der Atmel 90USB1287-AU, auf 
den ein Stück Software geschubst werden soll. Die Platine besitzt eine 
USB-A-Buchse und bietet die Möglichkeit den Chip mittels eines 
USB-A-zu-USB-A-Kabels zu programmieren. Doch leider klappt das nicht.

Nach Anschluss der Platine über das Kabel an den Rechner wird von der 
Microchip FLIP-Software leider nichts erkannt. Im Gerätemanager taucht 
auch nichts auf, damit ich die USB-Treiber installieren kann, damit FLIP 
überhaupt etwas erkennen kann. Die Gründe dafür können nun vielfältig 
sein, auch defekte oder falsche Teile wären möglich, was ich jedoch 
nicht hoffe.

Nach etwas Recherche im Internet gehe ich davon aus, dass die 
gelieferten Chips keinen Bootloader besitzen, weshalb es nicht möglich 
sein soll den Chip auf diese Art zu beschreiben. Jedenfalls meine ich 
das daraus gelesen zu haben. Nach weiterer Recherche meine ich 
rausgefunden zu haben, dass man in diesem Falle nur noch via 
JTAG-Schnittstelle programmieren kann – die ist zum Glück auf der 
Platine auch vorhanden.

Nun frage ich mich: Was brauche ich dafür?

Wie ihr euch vermutlich denken könnte, möchte ich gerne nicht all zu 
viel Geld für solch einen Programmer ausgeben. Schön wäre es auch, wenn 
es etwas im Stil eines ISP-Programmers wäre, also eine kleine Platine 
mit USB-Stecker, die ich vielleicht auch unter Linux mittels avrdude 
bedienen kann.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Bartosz M. schrieb:
> Nach weiterer Recherche meine ich rausgefunden zu haben, dass man in
> diesem Falle nur noch via JTAG-Schnittstelle programmieren kann

Üblicherweise lassen sich AVRs über ISP programmieren, auch der 
90USB1287.

ISP-Programmieradapter und zugehörige Programme sind einfacher zu finden 
als JTAG-Adapter.

Allerdings ist ab Werk auch ein USB-Bootloader vorhanden, wenn der nicht 
funktioniert, stimmt vielleicht irgendwas nicht am Hardware-Aufbau oder 
dem verwendeten Pfusch-Kabel.

von Bartosz M. (osz)


Lesenswert?

Vielen Dank für die superschnelle Antwort! :)

Ich schaue dann heute Abend nochmal, was ich da zu Hause liegen habe. 
Ansonsten besorge ich mir noch einen passenden ISP-Programmer und 
versuche es damit.

Ach stimmt, wegen dem Kabel noch: Das habe ich eben vergessen zu 
erwähnen, gibt es da eventuell eine Maximallänge, die man nicht 
überschreiten sollte? Ich habe auf die Schnelle ein Kabel geschnappt, 
dass ich bei mir noch rumliegen hatte. Qualitativ ist es sicherlich 
nicht das beste Kabel, aber es ist vor allem relativ lang, ich meine 
eineinhalb bis zwei Meter müssten das sein. Naiverweise bin ich davon 
ausgegangen, das würde schon klappen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vermutlich ist Deine Platine nicht dafür ausgelegt, den USB-Port als 
Deviceport zu betrieben (was die USB-A-Buchse nahelegt) und deswegen 
funktioniert der USB-Bootloader nicht.

Der Controller kann beides, Host und Device, aber er muss natürlich 
irgendwie herausfinden, als was er sich verkaufen soll. OTG-Geräte 
werden üblicherweise mit Micro-USB-Anschlüssen ausgestattet und der da 
vorhandene fünfte Pin dient zur Auswahl der Betriebsart.

Kabel mit zwei USB-A-Steckern sind Pfusch, weil sie suggerieren, man 
könnte mit ihnen zwei Hosts miteinander verbinden, was aber 
prinzipbedingt nicht geht.

von Dr. Sommer (Gast)


Lesenswert?

Bartosz M. schrieb:
> Ach stimmt, wegen dem Kabel noch: Das habe ich eben vergessen zu
> erwähnen, gibt es da eventuell eine Maximallänge, die man nicht
> überschreiten sollte?

Das ist durch die USB-Spezifikation genau vorgegeben: 3m bei LowSpeed, 
5m bei FullSpeed. Längere Kabel funktionieren nicht (zuverlässig), 
weshalb USB-Verlängerungskabel "verboten" sind, was aber findige 
Geschäftsleute nicht daran hindert, sie trotzdem zu verkaufen.

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]
  • [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.