Widy75 schrieb:
...
also daw starten ... midi interface power on taste grdrückt halten bis blinkt .. dann sysex raufladen ..... und dann kannst mit dem ctrlr plugin einstellungen vornehmen
oder bin ich da jetzt falsch informiert .. i machs halt so .... und geht
Das geht so. Aber wenn man nicht grad die "böse" Version 7 (ohne "a") drauf hat, geht es auch einfacher: SysEx mit Update an eingeschaltetes Interface schicken, fertig.
Das war durchaus einige Arbeit - also nutzt das gefälligst auch
Das Update ist zwar ein Sys-Ex File, das auch "in einem Rutsch", und das auch mit maximaler Midi-Datenrate, an den Controller geschickt werden kann, ist intern aber gar nicht so flach aufgebaut:
Zunächst kommt ein Block, der ein normal laufendes Interface (Noten=>CV dudeln vor sich hin) auf den Bootlader umschaltet.
Dann kommt ein Block aus einer Handvoll "Nullen", um dem Controller ein paar hundert µs Zeit zu geben, den Bootlader zu starten.
Dann kommt ein Block, der dem Controller sagt, wie viel Daten er zu erwarten hat.
Dann kommen lauter relativ kleine Daten-Blöcke (128Byte), die immer genau eine Speicherseite im Programmspeicher-Flash-Eprom füllen. Der Controller hat nämlich nicht genug RAM um erst das ganze Update zu laden - er schreibt das Zeug aber so schnell in sein Flash, dass er damit fertig ist, bevor der nächste Block vollständig da ist. Empfangen des nächsten Blocks und schreiben des vorher gerade Empfangenen erfolgt also (zwangsläufig) gleichzeitig. Die Datenblöcke haben übrigens alle eine Prüfsumme (eine 16-Bit CRC) damit es sehr unwahrscheinlich wird, das falsche Daten geflasht werden.
Sind alle Blöcke korrekt empfangen worden, dann trägt der Controller das in sein EEPROM ein (=es gibt ein gültiges Programm), ebenso wie wenn etwas schief ging (=>vergiss das neue Programm, das im Flash steht, das wird nur abstürzen).
Steht ein gültiges Programm im Flash, dann startet der Bootlader das, steht kein gültiges Programm drin, dann bleibt der Bootlader im Boot-Modus (LED blinkt) und erwartet einen neuen Versuch.
Den Bootlader selber kann man (so) nicht schrotten, denn er kann nur mittels Programmiergerät geändert werden. (Eine sehr sympathische Möglichkeit, die der Atmel da bietet... )
In der bösen Version 7 bin ich mit dem Systemtimer (für alles zeitgesteuerte) von dem 16Bit-Timer auf einen 8-Bit Timer "umgezogen", damit ich den 16Bit Timer für den DCO frei bekomme. Dieser 8-Bit Timer lief nun noch beim Sprung in den Bootlader. Der rechnet damit aber nicht (er hat keine Interuptroutine dazu) und schmiert dann ab. Und deswegen muss man *nur* in der Version 7 die Nummer mit dem Einschalten-bei-gedrückter-Taste bringen, da der Bootlader dann im Bootmodus stehen bleibt. Und genau für solche Fälle ist diese Funktion auch so vorgesehen: man kann dadurch *immer* eine neue Firmware aufspielen, selbst wenn eine Version mal etwas versiebt hat.