Hallo Leute! Ich hab ein kleines Problem. Ich hab ein Testboard (in der Schule gefertigt) auf dem ein at89c5131 verbaut ist. Hat bis gestern auch super funktioniert, nur dann hab ich ein Programm drauf gespielt das auf folgende Speicherstellen Werte speichert... speicher1 data 08h speicher2 data 09h speicher3 data 0Ah speicher4 data 0Bh speicher5 data 0Ch Seit dem ich das Programm drauf gespielt hatte kommt immer wenn ich mein Board via USB an den Laptop anschließe "USB-Gerät wurde nicht erkannt"... Habs schon an mehreren Computern versucht, aber überall das gleiche Problem... Ich hatte bevor ich das Programm drauf gespielt habe (wenn ich mich noch richtig erinnere) ein Programm drauf, das auf folgende Speicherstellen Werte gespeichert hat: speicher1 data 08h speicher2 data 09h speicher3 data 0Ah Und danach konnte ich den Controller noch programmieren... Bin mir aber nicht mehr ganz 100%ig sicher... Also nehme ich an, dass das Speichern auf die Speicherstellen 0Bh und 0Ch nicht so toll war... Kann es sein, dass ich damit irgendwie die "Bootloader" funktion überschrieben habe? Oder dass ich irgend was anderes überschrieben habe, das für den Controller wichtig war??? Bin noch ziemlich neu auf dem Gebiet, und hab deshalb noch nicht wirklich viel Ahnung davon... :( Muss ich nun einen neuen Controller kaufen, oder kann man da irgend was noch machen? Auf dem Testboard ist auch ne RJ 232 Schnittstelle, aber auch über die kann ich den Controller nicht neu Programmieren... (zumindest habe ich es nicht hinbekommen) Was ich vielleicht auch noch schreiben sollte: Das Programm, dass auf dem Controller drauf ist läuft. Und Funktioniert auch, also er speichert Werte auf die Speicherstellen und kann sie auch abrufen... Hoffentlich kann mir jemand helfen... Vielen Dank schon mal, mfg Sunnyboy
Habe gerade noch was gefunden: Boot Loader Jump bit (BLJB): - This bit indicates if on RESET the user wants to jump to this application at address @0000h on FM0 or execute the boot loader at address @F400h on FM1. - BLJB = 0 (i.e. bootloader FM1 executed after a reset) is the default Atmel factory programming. -To read or modify this bit, the APIs are used. Da unser Lehrer gesagt hatte wir müssen BLJB setzen, hab ich das auch gemacht... Liegt es vielleicht daran? Wie bekomme ich das nun aber wieder auf 0, weil ich komm ja über usb nicht mehr dran... Oder hat das damit garnichts zu tun? Grüßle, Sunnyboy
Das Bootloader-Jump-Bit sorgt dafür, dass der µC in den Bootloader geht, welcher standardmäßig bereits auf dem Chip ist. Bei einigen Devices kann er auch gelöscht werden, weiss nicht, ob's auf deinen Chip zutrifft. Ich glaube nicht, dass es an den Speicherstellen liegt, da diese adressmäßig zu weit unten liegen, um "Schaden" anrichten zu können, wenn man sie beschreibt. Probier mal, ganz normal mit FLIP auf den Controller zu kommen. Sollte das nicht funktionieren, musst du den Bootloader per Hardware-Condition starten. Da es unterschiedliche Gehäuse für den Chip gibt, musst du im Kapitel 11.5 des Datenblattes nachlesen, was du tun musst, um den Bootloader zu starten. Falls du PSEN auf Low ziehen musst, dann über einen 1k-4k7 Widerstand, nicht direkt an GND! Ralf
Vielen Dank Ralf für deine Hilfe! Ich habe mich die letzten Tage damit etwas intensiver beschäftigt und habe einiges dazu in den Datenblättern und auch in Foren gefunden. Ich habe mir nun mal den Stromlaufplan unseres Boards angeschaut, und habe leider feststellen müssen, dass wenn wir das Board programmieren, dass über den Schalter PSEN auf GND gelegt wird (über einen 1k5 natürlich). Somit startet unser Board standartmäßig schon den Bootloader per Hardware-Condition. Darum gehe ich nun einfach davon aus, dass der Chip auf irgendeine dumme Art und Weiße einfach kaputt gegangen ist. Ich habe mir auch schon mal vorsorglich 3 neue Chips bestellt :) Aber eine Frage habe ich nun noch: Ich will ja nun nicht gleich wieder einen Chip zerstören, deshalb meine Frage: Welche Speicherstellen kann man denn nun ohne Bedenken benutzen um Werte in einem Programm zwischen zu Speichern? Ich weiß - Im Datenblatt nachlesen - das habe ich zuvor ja auch schon gemacht, aber vielleicht kann mir ja jemand sagen "An die Stellen ABh - XYh kannst du getrost speichern, das habe ich auch schon mal gemacht und alles hat einwandfrei funktioniert" :) Vielen Dank für eure Hilfe, Sunnyboy-88
Beim Kauf neuer 5131 darauf achten, dass es 3-Volt-Typen gibt und 5-Volt-Typen, deren externe Beschaltung etwas unterschiedlich ist.
Wenn kein Programm mit USB-Enumeration programmiert wird, dann wird auch der 5131 nicht als USB-Device erkannt. Lediglich im Bootloader-Modus. Ich würde den "kaputten" Controller nicht voreilig entsorgen. Wahrscheinlich funktioniert er noch und alles ist nur ein Mißverständnis.
Hi, ist das Problem noch aktuell? Beachte bitte: dass wenn der Schalter auf Programmieren gestellt wird, also PSEN auf Masse gelegt, du innerhalb einer Sekunde die Reset-Taste drücken musst. Sonst erscheint genau deine beschriebene Fehlermeldung. Gruß Jan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.