Hallo, gerade habe ich versucht das EEPROM des FX2 zu beschreiben. Nun macht er nichts mehr. Mit Hilfe von hextobix -I -F 0xC2 -V 0x04b4 -P 0x8613 FX2.hex habe ich die iic Datei erstellt. Wie gesagt, jetzt macht er nichts mehr. Kann mir jemand sagen, was schief gelaufen ist und wie ich das wieder rückgängig machen kann? Viele Grüße Jan
Kann sein, daß ich das mit dem AN2132 verwechsle, aber ist das EEPROM nicht extern? Dann könnte es reichen, die Datenleitung zu diesem Baustein aufzutrennen, den FX2 einzuschalten und dann die Leitung wieder zu verbinden.
Ich weis jetzt nicht was du mit AN2132 meist, aber ich verwende das Board von Brainstechnology, falls dir das was sagt.
Sorry, meinte den AN2131. Das ist sozusagen der Vorgänder vom FX2. Mit dem FX2 selbst habe ich noch nichts gemacht, nur mal die Datenblätter überflogen. Hat das Braintechnology Board vielleicht einen EEPROM-Jumper?
Hi Was heißt macht nicht smher? Die Aussage ist so gut wie: "Das Internet ist kaputt". Wird er überhaupt noch erkannt? Wo hast du die IIC File hinkopiert? Denk daran, dass das erste Byte ID-Nummern für USB enthält. Die sind bestimmt nicht Teil deiner IIC File. Eine möglichkeit könnte sein, die SCL und SCK Leitungen des EEprom mit einem Draht auf GND zu ziehen, den FX2 mit Cypress IDs starten lassen und dann etwas sinnvolles ins EEprom zu schreiben.
Ok ich sehe gerade, du hast bei deinem Tool etwas angegeben, dass wie ID-Nummern aussieht, von dem her scheint dein Code schlecht zu sein. Ich würde den Code lieber per USB laden (0xC0), dann gibts weniger Probleme.
Tilo schrieb: > Wird er überhaupt noch erkannt? Nein er wird gar nicht mehr erkannt.. > > Wo hast du die IIC File hinkopiert? Denk daran, dass das erste Byte > Hab die Datei mit Hilfe der CyConsole und der Schaltfläche "Lg EEPROM" in den FX2 geladen. Ja irgendwie muss ich den Ausgangszustand herstellen.. Hat jemand schonmal Erfahrungen damit gemacht? > ID-Nummern für USB enthält. Die sind bestimmt nicht Teil deiner IIC > > File. > > > > Eine möglichkeit könnte sein, die SCL und SCK Leitungen des EEprom mit > > einem Draht auf GND zu ziehen, den FX2 mit Cypress IDs starten lassen > > und dann etwas sinnvolles ins EEprom zu schreiben.
Was passiert denn, wenn ich den SDA oder SCL auf Masse ziehe? Bootet der dann wieder mit seiner Standard-Firmware?
Ja, tut er. Anscheinend ist dein Code nicht korrekt. Denkst du dran, über das Steuerbyte im EEPROM den I2C auf 400khz zu schalten? Sonst bootet der zu lange.
nein, das habe ich nicht gemacht. Dazu müsste man meines wissens beim hextobix tool den Parameter -C 0x01 angeben. Kann das sein? Per default ist dieser nämlich immer 0x04... Bis jetzt würde ich die IIC Datei folgendermaßen erstellen: hextobix -I -F 0xC2 -C 0x01 meineDatei.hex Habe in einer anderen Anleitung gelesen, dass man die SDA-Verbindung zwischen EEPROM und FX2 kappen muss, den FX2 anschließen und die Verbindung wieder schließen muss, um ihn wieder programmieren zu können. Reicht das Ziehen auf Masse wirklich aus?
Nein, also bei mir wird er nicht mehr erkannt, auch wenn ich die SDA Leitung auf GND ziehe.. Ich traue mich einfach nicht, die Leitung durch zu schneiden.. gibts da nicht auch noch ne andere Lösung?
jan schrieb: > Nein, also bei mir wird er nicht mehr erkannt Diese Aussage bringt aboslut nix. Da auch nichts über das benutzte Betriebssytem berichtet wird liegt die Wahrheit ganz im Dunkeln. Lade mal usbview und schau ob da was angezeigt wird. Wahrscheinlich ist bei deiner Aktion die Vendor und Produkt ID im EEprom abgeändert und das blööde Windoof meldet mangels fehlender inf Datei nichts mehr. Steck das ganze an eine Linux Kiste und in den Logdateien gibts ausführliche Fehlermeldungen um das Problem einzukreisen.
Hier sind die syslog messages: Der nicht funktionierende FX2: Mar 2 10:08:00 Server02 kernel: usb 1-3: new high speed USB device using ehci_hcd and address 48 Mar 2 10:08:15 Server02 kernel: usb 1-3: device descriptor read/64, error -110 Der funktionierende FX2: Mar 2 10:11:55 Server02 kernel: usb 1-3: new high speed USB device using ehci_hcd and address 53 Mar 2 10:11:55 Server02 kernel: usb 1-3: configuration #1 chosen from 1 choice Mar 2 10:11:55 Server02 kernel: usb 1-3: New USB device found, idVendor=04b4, idProduct=8613 Mar 2 10:11:55 Server02 kernel: usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0 Da werd ich aber auch nicht schlauer draus. Er kann das Gerät anscheien nicht enumerieren..
Hi Was mich stutzig mach ist, dass beim Funktionierendem VID=PID=0x0000 ist, was nicht sein sollte. Hast du bei dem nicht funktionierenden die SDL Leitung mit GND verbunden?
Tilo schrieb: > Hast du bei dem nicht funktionierenden die SDL Leitung mit GND > > verbunden? Ja habe ich. Dann habe ich ihn angeschlossen und er wurde trotzdem nicht erkannt.
Hm, normalerweise geht das, da damit der Bus blockiert wird und der FX2 das Rom nichts sieht. Andererseits tut das bei mir so gerade auch nicht. Ich habe den Vcc Pin des Roms vom Board entlötet und den Pin mit einem Skalpell vorsichtig hochgebogen und nach dem Einstecken mit einem Jumper verbunden. Damit gings dann bei mir,
Auf dem Brain Board ist ein Pull-Widerstand für die EEPROM Adresse. Wenn du den gegen einen Jumper ersetzt kannst du den EEPROM damit deaktivieren. Und dann wird er wieder erkannt. Anscheinend hast du die ganzen Deskriptoren nicht korrekt eingetragen in die ASM Datei...
Ja gut, jetzt erkennt er ihn wieder. Ich schaffe es aber immer noch nicht, die iic-Datei zu ersetllen, damit die Firmware automatisch geladen wird. hextobix -I -F 0xC2 -C 0x01 meineDatei.hex -F 0xC2: Bringt ihn dazu, den Code im EEPROM zu benutzten. -C 0x01: IIC bei 400 khz Dann habe ich die Firmware um den Code erweitert: #define FX2_RENUM (1U<<1) #define FX2_DISCON (1U<<3) if(USBCS & FX2_RENUM) { // RENUM bit is set indicating that the uC should handle USB requests. // This happens if the program is loaded from EEPROM. // Disconnect, switch off RENUM and reconnect again to force the FX2 // logic to handle USB requests. USBCS |= FX2_DISCON; SYNCDELAY; USBCS &= ~FX2_RENUM; SYNCDELAY; USBCS &= ~FX2_DISCON; SYNCDELAY; } Habe ich von Wolfgang Wiesers Homepage: http://www.triplespark.net/elec/periph/USB-FX2/eeprom/ Daraus habe ich dann die IIC Datei erstellt. Mache ich da was bei den Parameter-Angaben falsch?
Warum nimmst du nicht mal Code aus den Beispielen von Cypress, lädst den zu erst per CyConsole, überprüfst ob dieser funktioniert und schreibst erst dann den Code ins EEPROM? Wenn das funktioniert, kannst du mit eigenem Code weiter machen.
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.