www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90USB646 USB wird nicht erkannt


Autor: Waigel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

wie im Anhang zu sehen ist, habe ich mir ein eigenes Entwicklungsboard 
mit einem AT90USB646 gemacht. Leider wird dieser bei Anschluss an eine 
PC nicht erkannt. D.h. er passiert gar nichts.

Folgendes wurde bereits geprüft:

- Alle VCC und GND Anschlüsse sind versorgt.
- Reset und HWB Taster funktionieren (Ungedrückt High, sonst low)
- D+ und D- sind nicht vertauscht

- Reset und HWB besitzen eine Pull Up wie gefordert
- An UCAP ist in 1uF Kondensator gegen Masse


Mit einem ISP Programmer bekomme ich kontakt zu Mikrocontroller.
Folgende Fuses sind gesetzt:

Brownout detection bei 2,4V
HWBE, CKDIV8
Ext. Crystal Osc. 8.0- Mhz 258CK + 65ms

Nachdem NICHTS funktioniert hat, habe ich mit dem ISP Programmer den 
uController erased (Ja, ich weiß, der Bootloader ist jetzt weg). Ich 
habe ein simples program eingespielt, das nur eine LED schalten soll, 
nichteinmal das funktioniert. Daher war der Verdacht da, dass etwas mit 
dem Clock nicht stimmt. Doch auch nach umstellung auf den internen Clock 
leuchtete kein LED.

Woran könnte es noch liegen ? Ich hoffe auf eure Hilfe.

Vielen Dank schon mal.
Gruß,
Waigel

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab jetzt etwas weiter geforscht und herausgefunden, dass der 
uController GAR NICHTS macht.

Ich kann mit dem ISP Programmer den uController programmieren, die Fuse 
bits setzen, alles.
-> Ein Takt gibt es und der uController arbeitet auch.
(extern hängt ein 16MHz quarz dran, habe aber auch schon die internen 
1MHz probiert)

Ich hab folgendes simples Programm eingespielt und hänge mit dem Osci 
auf PC0 und PC1:
int main()
{
  DDRC = 0xFF;
  PORTC = 0xFF;
  
  int cntr = 0;
  while(1)
  {
    if(cntr == 255)
    {
      PORTC |= (1<<PC0);
      cntr = 0;
    }
    else
    {
      PORTC &= ~(1<<PC0);
      cntr++;
    }
  }
} 

Beide Pins bleiben low, nichts ändert sich. D.h. für mich, der 
uController läuft nicht, bzw. es wird nichts ausgeführt.

Was also kann hier falsch sein ?


Danke euch für eure Antworten.

Gruß,
Waigel

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

Bewertung
0 lesenswert
nicht lesenswert
Hast du wirklich mit ISP gearbeitet oder mit JTAG?  (Dein Schaltplan
zeigt keinen ISP-Steckverbinder, wohl aber einen für JTAG.)

Hintergrund: ISP würde nicht mehr funktionieren, wenn mit dem Takt
des Controllers was im Argen ist, JTAG dagegen benutzt (beim
Programmieren) seinen eigenen Takt, sodass du einen kaputten CPU-Takt
nicht bemerkst.

Ansonsten bliebe eigentlich nur noch ein Kurzschluss von /RESET nach
Masse, sodass der Controller die ganze Zeit im Reset ist.  Das merkst
du mit keinem der beiden Programmier-Interfaces.

Zwischen "es läuft überhaupt erst einmal ein Stück Firmware" und
"meldet sich am USB" liegen jedoch Welten.  (OK, mit dem Bootloader
hätte es natürlich gehen sollen.)

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jörg Wunsch

Es war nicht vorgesehen an die Schaltung mit einem ISP Programmer 
ranzugehen. Nachdem aber sämtliche IO Ports herausgeführt sind, habe ich 
zu Debug zwecken einen ISP Programmer angeschlossen.
Es ist also wirklich einer dran. (Hintergrund: Ich hab nur ein Evertool 
JTAG device und das unterstützt den AT90USB646 nicht).

Den /Reset habe ich glaube ich schon 20mal geprüft. Der liegt immer auf 
+5V und wenn der Taster gedrückt wird auf 0V.

Der Thread heißt "USB wird nicht erkannt", weil ich zunächst ein USB 
Problem vermutet hatte, nur hat sich eben jetzt herausgestellt, dass der 
uController selber erst mal "nichts" tut.

Ich weiß gerade echt nicht weiter wo ich noch suchen soll. Denn 
eigentlich, wenn er per ISP Programmer erreichbar ist und er Reset es 
nicht ist, dann muss er laufen.

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

Bewertung
0 lesenswert
nicht lesenswert
Waigel schrieb:
> Denn
> eigentlich, wenn er per ISP Programmer erreichbar ist und er Reset es
> nicht ist, dann muss er laufen.

Sehe ich auch so.  Vielleicht tatsächlich defekt?

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab eben das CKOUT Fuse bit gesetzt.

Bei internem RC Osc. messe ich dort einen 8MHz Takt mit dem Osci. (5V 
Ampl.)
Bei externem Crystal Osc. messe ich entsprechend einen 16MHz Takt.

-> Ext. Crystal funktioniert und auch der interne Takt kommt.

Welche Art von Defekt könnte denn dazu führen, dass der uController 
"normal" funktioniert und auch reagiert, nur sein Programm nicht 
ausführt ?

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

Bewertung
0 lesenswert
nicht lesenswert
Sind alle Fuses im Originalzustand (siehe Datenblatt)?

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, habe eben alle fuses in den orignal Zustand laut Datenblatt gesetzt, 
keine Änderung (nur dass kein Takt an PC7 mehr zu messen ist. OK, das 
CKOUT ist auch nicht mehr gesetzt).

Ext: 0xF3
High: 0x9B
Low: 0x5E

Sind eventuell Änderungen notwending, nachdem der Bootloader per ISP ja 
gelöscht wurde ?

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

Bewertung
0 lesenswert
nicht lesenswert
Waigel schrieb:

> Sind eventuell Änderungen notwending, nachdem der Bootloader per ISP ja
> gelöscht wurde ?

Nö, wenn er damit partout nichts macht, würde ich auf einen kaputten
Controller tippen.  Möglicherweise harrt er intern immer im Reset.

Mit einem aktuelleren JTAG ICE (oder AVR Dragon) könntest du natürlich
mal versuchen herauszufinden, ob er überhaupt irgendeinen Befehl
abarbeitet.

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein AVR Dragon oder vergleichbares habe ich leider nicht zur Hand.
Ich bekomme die Tage aber noch ein 2. Exemplar der obigen Schaltung (da 
es sich dabei um eine gefärtigte Platine handelt.)

Mal sehen ob die sich genauso verhält, ansonsten ist wohl der 
uController hinüber.

Danke erst mal für die Mühe. Falls jemandem noch etwas einfällt....


Gruß,
Waigel

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welche Art von Defekt könnte denn dazu führen, dass der uController
>"normal" funktioniert und auch reagiert, nur sein Programm nicht
>ausführt ?

Auf jeden Fall gab es schon zahlreiche Berichte über nicht 
funktionierende SELBSTGEBAUTE Boards mit AT90USB1287, auch hier im 
Forum. Ich kann mich aber nicht errinnern, dass jemand mal die Ursache 
ergründet und berichtet hätte, höchstens ein "jetzt geht es" oder so, 
teilweise nach Chip-Tausch. Meine Boards liefen stets, war vielleicht 
nur Glück. Aber AT90USB128x -- will man den heute noch freiwillig 
einsetzen, ist doch schon etwas angegraut. (Ich hoffe man kann den 
AT90USB128 überhaupt noch kaufen, denn ich werde irgendwann noch einige 
benötigen.)

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

Bewertung
0 lesenswert
nicht lesenswert
Stefan Salewski schrieb:
> ber AT90USB128x -- will man den heute noch freiwillig
> einsetzen

Wenn du bei AVR und 64 oder 128 KiB Flash bleiben willst, was wölltest
du sonst nehmen?  Lediglich für die AT90USB82/162 scheint es in Form
der ATmega*U2 bislang Nachfolger zu geben.  Habe gerade nicht geguckt,
was die ATmega*U4 genau sind, aber zumindest gibt's die nicht mit
USB-OTG (OK, hat der '646 auch nicht) und auch wiederum maximal mit
32 KiB Flash-ROM.

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan Salweski

Da freut man sich doch über ein so tolles Produkt aus dem Hause Atmel 
;-)
Grundsätzlich ist an meiner Schaltung nicht viel dran. Und zusätzlich 
handelt es sich noch um einen gefertigt Platine, keinen 
Lochrasteraufbau. Und dann wurde das ganze noch professionel bestückt. 
D.h. die Wahrscheinlichkeit eines Schaltungsfehlers ist verhältnismäßig 
gering, nachdem der Plan nicht komplex und soweit auch stimmig ist.


@all
Wie gesagt, ich schau mal morgen was das 2. Exemplar macht (bzw. nicht 
macht) und geb dann Bescheid.



PS.: Auf dem Board befindet sich noch ein FTDI, der am uController 
angeschlossen ist und der funktioniert. (tut nichts zur Sache, aber nur 
so am Rande)

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

ja, ich persönlich habe eh eine recht starke Bindung an den AT90USB1287, 
Du weist wahrscheinlich warum -- wenn nicht ist auch nicht schlimm.

Aber er ist über 5 Jahre auf dem Markt, vor ca. 6 Monaten war er recht 
schlecht erhältlich, da wollte ich mir eventuell ein paar Dutzend 
einmotten...

Ja, was gibt es denn sonst für schöne Chips mit USB? Auf XMEGA mit USB 
hatte ich mal gehofft. Einige ARM Cortex mit High-Speed gibt es wohl 
jetzt, ist aber eine andere Welt, und gehört eh nicht in diesen Thread.

Gruß, Stefan

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan

Der AT90USB128 und der 646 sind ja quasi "baugleich". Ich hab ihn auch 
wegen des USBs verwenden wollen um unkompliziert ein HID device zu 
emulieren. Aber naja....

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir ist gerade noch eingefallen, hat eingentlich jemand von euch den 
original Atmel DFU Bootloader zum 646 zur hand ?
Dann bei Atmel kann man den wohl seit der Umstellung der Webseite nicht 
mehr herunterladen.
(nur für den Fall, dass das Ding mal läuft und ich den dann wieder 
aufspielen will)

Danke.

Autor: Stefan Salewski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>original Atmel DFU Bootloader zum 646 zur hand ?

Soweit ich weis gibt es von Dean Camera (LUFA) eh eine Open-Source 
Alternative.

Autor: Waigel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,


ich habe frohe Kunde; Eben habe ich das 2. Board getestet und es hat auf 
sofort funktioniert. USB, Bootloader, alles.

Ich verzeichne das jetzt ganz oben auf der Top10 Liste mit merkwürdigen 
Fehlern rund um Atmels. Denn dass ein Defekt sich so seltsam auswirkt 
!?...

Naja. Viele Dank für eure Hilfe und noch viel Erfolg mit euren 
Projekten.

Gruß,
Waigel

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.