AT89C51SND1

Hallo zusammen!

Ich baue gerade einen MP3 Player auf - habe jedoch noch ein bisschen Probleme.

uC ist der AT89C51SND1 von Atmel. Ich habe wie im Reference Desing und Datasheet angegeben die ISP, USB, TST, Reset, FILT und Clock (Quarz) Schaltung auf Lochraster aufgebaut. Meine 3,3V erzeuge ich mit einem LM317.

Schließe ich nun USB an den Aufbau an, so meldet Windows XP nur, dass das Gerät an USB nicht erkannt wurde. Die Installation des USB Drivers von Flip

1.8.8 von Atmel schlägt fehl (Creating Driver entry ... failed, starting driver entry ... failed). Der USB Driver von Flip 2.4.0 lässt sich installieren, allerdings kommt nach dem ich USB eingesteckt habe wieder 'Unbekanntes Gerät'....

Weiß jemand, was passieren müsste, wenn man den Chip anschließt ohne einen Treiber installiert zu haben. Und woran könnte es bei mir evtl. liegen?

Danke! Steffen

Reply to
Steffen
Loading thread data ...

Am Mon, 15 Nov 2004 12:07:59 +0100 schrieb Steffen:

Wo hast Du den denn kaufen können?

Bei Experimenten mit USB ist ein usb snooper ganz praktisch. Es gibt einen kostenlosen bei sf.net. Wenn die Übertragung klappt, zeigt er an, was das Gerät über sich so sagt. Ich tippe aber drauf, daß da noch irgendwas in der Übertragung nicht funktioniert. Windows erkennt dann, daß da was da ist, kann aber nicht richtig mit ihm Sprechen. Wenn Du ein Oszi hast, kannst Du Dir ja mal die Signale anschauen.

Ich meine usb braucht in irgendeiner leitung pullups oder -downs. Bin mir nicht sicher, aber ich meine, das war bei mir mal der Grund, warum es nicht funktioniert hat.

Viele Grüße, Jan

Reply to
Jan Bernauer

Hallo!

Ich habe meinen von eine paar Leuten in einem Forum. Ineltek verkauft VPEs (10 Stück). Segor hat den glaube ich auch.

Das werde ich mir gleich mal anschauen. Problem ist, dass egal, ob der Chip in der Schaltung ist oder nicht der PC immer ein unbekanntes Gerät erkennt. Das dürfte an dem Pullup liegen, den ich auf die D- Leitung geschaltet habe. Das stimmt auch soweit.

Ich habe hier (in meinem Studienort) leider kein Oszi. Ich vermute, dass Windows Das USB Gerät nur erkennt, wegen dem Pullup. Der Controller läuft zwar (also der Quarz schwingt), aber er antwortet nicht ...

Den Pullup habe ich eingebaut ...

Grüße Steffen

Reply to
Steffen

Komisch, ISP via USB war das einzige, was bei mir auf Anhieb geklappt hat.

Oszillator läuft? ISP auf Masse gezogen (damit ISP-Routine anläuft...)? D+ Leitung des USB über 1k5 auf +3,3V gezogen? ALLE Vss/Vdd-Leitungen angeschlossen?

Und schlußendlich: Hast Du _sicher_ die Version mit USB-Bootloader? Es gibt auch einen seriellen (RS232-)-Bootloader...

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

Oha. Der muß an D+. Es ist schließlich ein USB1.1 Full Speed device... Siehe Kapitel 7.1.5 der USB1.1-Spec. Mit Pullup an D- wird ein Low-Speed-Device erkannt (1.5MBit/s).

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

Hallo!

DANKE !! Das war der Fehler. Hatte ich in meinen Schaltplan falsch übertragen.

Jetzt noch eine Frage: Wenn ich nun mit Flip 1.8.8 den Flash erase und anschließend auslese, so ist der Flash zwischen #C000 und #F000 gefüllt. Hier schlägt auch der Blanck Check fehl.

ist folgendermaßen aufgefüllt.

0x00 0x01 0x02 0x03 ... 0x0F 0x10 0x11 0x12 0x13 ... 0x1F ............................ 0xF0 0xF1 0xF2 0xF3 ... 0xFF

und dann wiederholt sich alles. Bis eben 0xFFFF - dann ist wieder alles mit 0xFF gefüllt (wie auch bis 0xC000).

Da habe ich nun verständnisprobleme. Ich dachte ab 0xF000 ist der Bootloader drin (warum ist dann da alles leer?) Warum kann ich den Platz zwiswchen 0xC000 und 0xF000 nicht löschen?

Hast du vielleicht darauf eine Antwort? Ich denke schon, dass alles stimmt, aber ich komm nicht dahinter, obwohl ich das Datasheet gelesen habe ...

Viele Grüße Steffen

Reply to
Steffen

Das ist merkwürdig. Ich habe FLIP im Moment nicht installiert, daher kann ich es nicht ausprobieren, aber sind irgendwelche Lockbits auf enabled geschaltet in Flip?

Der Bootloader liegt zwar ab Adresse 0xF000, aber in einem separaten

4kByte-Flash-Bereich. Dieser wird abhängig vom Register-Bit ENBOOT ein- und ausgeblendet. Wenn Du ISP auf low ziehst, wird ENBOOT beim Reset automatisch gesetzt und der Resetvektor gleichzeitig auf 0xF000 umgebogen. Daher läuft dann der Bootloader. Dieser separate 4k-FLash-Bereich kann via ISP nicht programmiert werden (wär ja auch Käse, wenn sich der Bootloader selber überschreiben könnte). Via ISP siehst Du zwischen 0xF000 bis 0xFFFF immer nur das User-Flash (was aktiv ist, wenn ENBOOT nicht gesetzt ist). Dein User-Programm kann also insgesamt 64k groß werden. Wenn Du Funktionen des Bootloaders in Deinem eigenen Programm aufrufen willst (macht z.B. Sinn, wenn man ein Firmware-Update über eine andere Schnittstelle als USB vorsehen möchte), darf dieser Teil Deines Programms natürlich dann nicht zwischen 0xF000...0xFFFF leigen. Das Bootloader-Flash kann übrigens nur mit einem Stand-Alone-Programmer programmiert werden.

Das geht normalerweise... Ist die Versorgung des AT89C51SND1 stabil und Abblockkondensatoren nahe der Versorgungsspannungspins?

Gruß

Tassilo

--
µC Assembler-IDE für AVR, 8051, Z80, 8048 =>
http://www.theeg.de/aside/index.html
================================================================
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
Tassilo Heeg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.