Moin
da ich gerade Urlaub habe, habe ich an dieser Baustelle mal wieder rumgeschraubt. Anlass war, dass mir in den letzten Wochen der Controller mehrfach ausgestiegen ist - spontaner Reset. Gefunden habe ich, dass der Spannungsregler sich losgerappelt hatte und ein Bein angebrochen war - ich hoffe, das war's.
Jedenfalls, ich habe dann noch ein paar Bugs gefixt und eine gaaaanz wichtige Sache nachgerüstet: Sysex-Dump und Reload!
Hier hatte/habe ich aber ein paar Probleme. Ich konnte relativ leicht mit MIDI-OX das komplette 64k-EEPROM auslesen. Das zurück schreiben bereitet mir aber etwas Probleme.
Erst dachte ich, mein Algorithmus wäre Schrott, weil nicht das im Controller ankam, was MIDI-OX rausschickte. Ich hab dann aber mal mit der Sendepuffergröße rumgespielt, jetzt geht's - dauert aber ewig
.
Das zurück schreiben läuft nur dann zuverlässig, wenn ich den Sendepuffer auf 1 Byte Größe (!) stelle. Bei der Pause zwischen den Puffern kann ich auf 15 ms runtergehen, trotzdem dauert das zurück schreiben der Daten ewig.
Okay, das I2C-EEPROM ist nicht das schnellste, und es kostet etwas Zeit, dass ich noch ein paar Debug-Ausgaben auf dem LCD habe. Die Schreibgeschwindigkeit liegt aber nur bei ca. 80 Byte/s - klar, dass da massig Daten verloren gehen, wenn MIDI-OX die zu schnell rausschickt. Daran ändert sich auch nix, wenn ich die LCD-Ausgaben abklemme.
Meine Frage: Jemand 'ne Idee, ob ich irgendwas radikal falsch machen könnte, oder ist das halt so, dass das I2C-EEPROM vom AVR nur relativ langsam beschrieben werden kann? der I2C läuft mit 100 kHz (mehr machen die Expander nicht), ich nutze die UART-Lib von Peter Fleury mit einem Ringpuffer von 512 byte - trotzdem gehen mir massig Daten verloren, sobald ich nur etwas schneller werde
.
Am Ende egal, weil's ja funktioniert - ich habe mein EEPROM jetzt schon zweimal erfolgreich kopiert, Konfiguration und Presets sichern ist also endlich kein Problem mehr. Trotzdem doof...
Wenn ich mit dieser Runde fertig bin, stelle ich - wie versprochen - endlich mal meinen Quelltext ein.
Gruß, Nils