mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FX2 EEPROM laden


Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weis jetzt nicht was du mit AN2132 meist, aber ich verwende das 
Board von Brainstechnology, falls dir das was sagt.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was passiert denn, wenn ich den SDA oder SCL auf Masse ziehe? Bootet der 
dann wieder mit seiner Standard-Firmware?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Wolfgang R. (portside)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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..

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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,

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

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.