Hallo Besucher, der Thread wurde 15k mal aufgerufen und enthält 41 Antworten

letzter Beitrag von AntaBaka am

SD-Bootloader für MMC2IEC!

  • Hi!


    Na, Lust auf ein kleines Experiment? :)


    Achtung, funktioniert nur mit meinen Platinen!


    Auf MikroController.net gibt es einen Bootloader für die AVR's der in der Lage ist Software-Updates von SD-Karte zu laden.


    Der Thread dazu ist --hier--


    Dem Bootloader aus dem Archiv "HolgerBootloader10.zip" habe ich die nötigen Einstellungen für meine Version vom MMC2IEC verpasst.


    Für einen ersten Test reicht es schon, die binär-Datei muss ich aber noch im Hex-Editor bearbeiten, daher habe ich auch Lars noch nicht angeschrieben, ist eben noch nicht fertig...


    Die im Archiv befindliche "bootloader-0x49454321.hex" wird in den Mega32 gebrannt.
    Dabei sollte auch das MMC2IEC Programm gelöscht werden.
    Falls nicht, für den Test einfach mal von Hand löschen.


    Um den Bootloader zu aktivieren müssen noch die Fuses gesetzt werden.


    BOOTSZ = 01
    BOOTRST = 0


    In AVR-Studio ein Klacks, wie das mit PonyProg geht kann ich leider nicht einmal ausprobieren.


    Die ebenfalls beiliegende "MMC2IEC08.BIN" wird auf die SD-Karte kopiert.


    Ohne Karte sollte das MMC2IEC jetzt nach einem Reset/Abschalten tot sein.
    Legt man dann die Karte ein fängt die eine LED dann hektisch an zu blinken und
    kurze Zeit später ist die Software aufgespielt und das MMC2IEC betriebsbereit.


    Das funktioniert wohl nur mit FAT16 Karten und beim Einschalten mit eingelegter Karte dauert es eben ein klein wenig bis die Dateien gechecked sind.

  • Zitat

    Original von jackdaniels
    beudetet dies also ein flashen von karte, oder das man in zukunft einfach eine firmware von sd laden kann?


    Das bedeutet, dass die Software in Zukunft von der SD-Karte aus geflasht werden kann.


    Also einmal einlegen, neu starten, Software wird geupdated, Karte kann entfernt werden.


    Der AVR kann Programme auch nur aus seinem FLASH heraus ausführen,
    die kann man nicht "mal eben" laden.

  • Zitat

    Original von Shadowolf
    Das bedeutet, dass die Software in Zukunft von der SD-Karte aus geflasht werden kann.


    Also einmal einlegen, neu starten, Software wird geupdated, Karte kann entfernt werden.


    Klingt schon mal interessant. Was ich aber jetzt nicht verstanden habe: Wie ist das bei Updates, wenn z.B. eine neue Version der Firmware in den AVR muß??



    Oliver W.

  • Zitat

    Original von OliverW.
    Klingt schon mal interessant. Was ich aber jetzt nicht verstanden habe: Wie ist das bei Updates, wenn z.B. eine neue Version der Firmware in den AVR muß??


    Ich stelle mir das so vor...
    - Firmware mit definiertem Namen auf SD-Karte tun
    - SD-Karte mit neuer Firmware einstecken
    - MMC2IEC flashed sich selber mit der neuen Version

  • Fast richtig, der Name ist sogar egal. :)


    Der Bootloader dursucht das Hauptverzeichnis nach Dateien der richtigen Grösse, mit der richtigen Kennung, stellt fest, ob das eine höhere Version/Revision ist als bereits geflashed und prüft auch noch eine Checksumme.


    Der Bootloader bleibt dabei immer unangetastet, der wird nicht neu aufgespielt.
    Der kann sogar explizit gegen Überschreiben geschützt werden.


    Nach der ersten Programmierung per Kabel muss man da nie wieder dran.



    Warum probiert das eigentlich niemand aus?
    Kann doch garnichts passieren. :streichel:


    :hammer: :hammer: :hammer: :hammer: :hammer: :hammer: :hammer: :hammer:

  • Zitat

    Original von Shadowolf
    Achtung, funktioniert nur mit meinen Platinen!


    Erklär mir nochmal genau, was an Deiner Version unterschiedlich gemacht ist im Gegensatz zu diesem Schaubild. Das können doch nur ein paar Aus/Eingänge sein, ich glaube, Du hast es irgendwo mal geschrieben, aber nicht komplett. Dann mache ich eine zweite Version meines DIP-MMC2IEC nach Deinen Angaben, das müsste dann ja mit Deiner Software laufen.


    MMC2IEC mit Belegung nach Lars Pontoppidan:


    Mir reichen Angaben wie "statt PA2 als Ausgang PC2 als Eingang" oder so.

  • Zitat

    Original von AntaBaka


    Erklär mir nochmal genau, was an Deiner Version unterschiedlich gemacht ist im Gegensatz zu diesem Schaubild. Das können doch nur ein paar Aus/Eingänge sein, ich glaube, Du hast es irgendwo mal geschrieben, aber nicht komplett. Dann mache ich eine zweite Version meines DIP-MMC2IEC nach Deinen Angaben, das müsste dann ja mit Deiner Software laufen.


    Mir reichen Angaben wie "statt PA2 als Ausgang PC2 als Eingang" oder so.


    Es ist eigentlich ganz einfach.


    - PORTA und PORTC komplett vertauscht
    - Die Leuchtdioden an PORTC werden gegen GND geschaltet
    - PORTD.7 für den 8/9 Umschalter ab 1.3 meiner Platine
    - PORTD.5 für den 10/11 Umschalter ab 1.6 meiner Platine


    Dann gibt es als Unterschied nur die Pegel-Anpassung für die SD-Karte.
    Aber die hast Du so ähnlich ja bereits drin.


    Den Bootloader habe ich so konfiguriert das der die LED auf PORTC.0 benutzt.


    Zum Hintergrund, auf PORTC liegt der Debug-Anschluss vom Controller.
    Wenn der IEC da angeschlossen ist kann man den Debugger erstens nicht nutzen
    und zweitens muss man den Port erstmal freischalten.
    Okay, es gibt nur vier Platinen mit Debug-Anschluss aber den braucht auch nicht jeder und ich habe schon noch vor, was an der Software zu machen.



    Noch einen Vorschlag, das Layout ist einfacher zu verstehen, wenn R7 und R8 nicht scheinbar Kurzschlüsse verursachen.
    Genauso wie R1/R4 und R2/R5 sich nicht wirklich ein Loch in der Platine teilen können.
    Oh, ein ATMega32-16PU muss es auch nicht sein, der ATMega32L-8PU tut es auch.
    Wenn der nur nicht bei Reichelt teuerer wäre als der -16...



    Lars habe ich gestern eine Mail geschickt, bin ja gespannt, was er dazu sagt.



    cbmhardware


    Siehe anderen Thread, es wird in den nächsten Wochen eine Sammel-Bestellung geben.


    Da sich nach Wunsch die Platine ein wenig verändert hat muss ich noch ein neues Layout fertigstellen und vor allem einen Prototyp machen lassen. Die neuen Bauteile bekomme ich wohl endlich morgen und ich werde wohl auch in den nächsten Wochen die Chance bekommen, eine Platine mit fertigen zu lassen.

  • Zitat

    Original von Shadowolf
    - PORTA und PORTC komplett vertauscht
    - Die Leuchtdioden an PORTC werden gegen GND geschaltet
    - PORTD.7 für den 8/9 Umschalter ab 1.3 meiner Platine
    - PORTD.5 für den 10/11 Umschalter ab 1.6 meiner Platine


    OK, danke schonmal.


    Zitat

    Noch einen Vorschlag, das Layout ist einfacher zu verstehen, wenn R7 und R8 nicht scheinbar Kurzschlüsse verursachen.
    Genauso wie R1/R4 und R2/R5 sich nicht wirklich ein Loch in der Platine teilen können.


    Ja, weiß ich ja, reine Faulheit.
    Aber jetzt habe ich das Layout mal angepasst.
    Müsste jetzt klarer sein (s.o.).
    Werde mich dann mal an Deine Version machen.


    Zitat

    Oh, ein ATMega32-16PU muss es auch nicht sein, der ATMega32L-8PU tut es auch. Wenn der nur nicht bei Reichelt teuerer wäre als der -16...


    Was war der Unterschied zwischen den beiden Versionen?
    Und warum ist komischerweise die -8 teurer? Weiß wohl keiner...

  • Yep, das Layout sieht klarer aus.


    >Was war der Unterschied zwischen den beiden Versionen?


    Die "L" Version ist Low-Power, 2,7V bis 5,5V.
    Die nicht-L Version geht von 4,5V bis 5,5V, dafür bis 16 MHz.


    >Und warum ist komischerweise die -8 teurer? Weiß wohl keiner...


    Naja, wollen wir mal fair bleiben, Atmel gibt schliesslich keine Preise an. :)

  • Zitat

    Original von Shadowolf
    >Was war der Unterschied zwischen den beiden Versionen?
    Die "L" Version ist Low-Power, 2,7V bis 5,5V.
    Die nicht-L Version geht von 4,5V bis 5,5V, dafür bis 16 MH


    Wer lesen kann, ist klar im Vorteil...
    :platsch:
    Hatte das L übersehen und gedacht, es seien ein ATMega32-16PU und ein ATMega32-8PU und versuchte zu ergründen, was an dem -8 anders ist als an dem -16, hehe... das mit dem L war mit eigentlich klar mit den 3.3V.


    Darf man den L echt mit 5V betreiben? Ich dachte, der sei nur bis 4,5V angegeben?

  • Zitat

    Original von AntaBaka
    Wer lesen kann, ist klar im Vorteil...
    :platsch:


    ...


    Darf man den L echt mit 5V betreiben? Ich dachte, der sei nur bis 4,5V angegeben?


    Ja was denn nun? :)
    Mach doch einfach mal das Datenblatt auf. :roll:


    Na klar darf man den mit bis zu 5,5V betreiben.
    Genauso wie man den nicht-L nicht mit 3,3V betreiben darf, das wird aber auch nicht unbedingt ernst genommen... ;)

  • Zitat

    Original von Shadowolf
    - PORTA und PORTC komplett vertauscht
    - Die Leuchtdioden an PORTC werden gegen GND geschaltet
    - PORTD.7 für den 8/9 Umschalter ab 1.3 meiner Platine
    - PORTD.5 für den 10/11 Umschalter ab 1.6 meiner Platine


    Muss doch nochmal sichergehen...


  • Zitat

    Original von Shadowolf
    Das Einzige jetzt noch ist, dass man denken könnte, das einige Pins vom
    Controller doppelt angeschlossen sein sollen.


    Fixed.