mikrocontroller.net

Forum: Projekte & Code I2C - Bootloader für Mega-8


Autor: thkais (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bastle gerade an einem Interface für Modelle, das modular aufgebaut
ist und den I²C-Bus für die Kommunikation verwendet.
Als ich von den Bootloader-Möglichkeiten des Mega-8 gelesen habe,
konnte ich es natürlich nicht lassen - ein sehr nützliches Feature, um
die Devices upzudaten. Vielleicht kanns ja noch jemand brauchen.
Es wird übrigens die ominöse Hardware-I²C-Schnittstelle benutzt.
Über Verbesserungsvorschläge freue ich mich natürlich.

Gruß

Thomas Kaiser

thomas"AT"ft-fanpage.de

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Argh - ich seh grad, daß ich noch ein paar Überreste der Versuchsphase
drin habe. Im Unterprogramm "get_i2c" müssen natürlich die
Port-Befehle raus. Sofern nix angeschlossen ist, störts aber nicht. Wer
weitere Fehler findet, darf sie behalten.

Autor: Stefan Noll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi,

ich habe im internet ein ähnliches projekt gefunden:

http://www.maths.lth.se/matematiklth/personal/ardo...


mfg
stefan noll

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C:\Bootloader\i2c_mega8\M8_boot2.asm(133): error: jmp k: Unsupported 
instruction on ATmega8

Ich bin durch die Suchfunktion auf diesen Thread aufmerksam geworden und 
habe mal die Source durchs AVR Studio "geschickt".
;* General Call = Adresse 0. Das I²C-Device geht nach dem Reset sofort in den Boot-Modus,
;* ein senden des General Call startet das Anwenderprogramm. Dadurch können mit einem
;* General Call alle Devices auf dem Bus mit einem Befehl gezielt gestartet werden.

gencw:
  rcall get_i2c      ;übertragenes Datenbyte lesen
  brcc gencw      ;wiederholen, bis ein Stop-Bit empfangen wird
  clr temp
  out TWCR,temp      ;Die I²C-Schnittstelle abschalten
  jmp $0000      ;reset, Sprung ins Benutzer-Programm

Gut, ich "muss" das auf einen Mega168 umstricken, der kann das ja.

Aber ist jemand anders schonmal auf diese Fehlermeldung gestossen?

Oder anders gefragt: Funktioniert denn der Bootloader bei einem von 
euch?
Wie kann man denn die Sache umschiffen (angenommen, man müsste einen 
Mega8 nehmen)?
Einfach das Z-Register löschen und einen IJMP?

Schönen Gruß
AxelR.

Ja - ich weiss, dass der Thread schon älter ist ;-))

Autor: Hansi Lein (fabian87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich versteh nicht ganz was du nun fragst. Geht jmp denn auch anstatt 
rjmp?

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im Quellcode ist ein JMP nach $0000 angegeben und AVR-Studio sagt, das 
der Mega8 das garnicht kann...
Mir ist aufgefallen, das ja etvl. etwas falsch ist. Das wollte ich kund 
tun.

Andererseits wunderts mich, das ich der erste sein sollte, dem das 
auffällt.

Autor: Hansi Lein (fabian87)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich kenne den assemblerbefehl jmp garnicht... habe auch noch nie 
gesehen, dass der irgendwo aufgeführt wird.

probiers doch einfach mal mit einem rjmp

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier gibts sowas in C:

http://www.zerties.org/tiki-index.php?page=BootLoa...

Gruß Florian

Autor: Berekmeri Norbert (Firma: http://bjnsoft.hu) (bjnsoft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte danach erkundigen, ob jemand sich mit I2c Bootloader Mega 128 
beschäftigt hat? Auf Bascom Sprach.
Vielen Dank für ihre Antwort!

Norbert

Autor: Berekmeri Norbert (Firma: http://bjnsoft.hu) (bjnsoft)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte danach erkundigen, ob jemand sich mit I2c Bootloader Mega 128
beschäftigt hat? Auf Bascom Sprach.
Vielen Dank für ihre Antwort!

Norbert

Autor: Mario Grafe (mario)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wen das Thema Bootloader interessiert, schaut euch mal den Artikel
AVR Bootloader in C - eine einfache Anleitung an!

Autor: Snatch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe hierzu mal eine Frage,

wenn ich einen I2C Bootloader auf meinen Mega8 Brenne.
Wie kann ich dann meinen Code über I2C aufspielen?
Ich Möchte mir eine kleine Software in VB.net erstellen.
Für die PC -> µC Verbindung nutze ich den ELV I2C Adapter.

Ich hänge da voll.

Ich habe mittels dieses Adapters bereits eine Software geschrieben
um meinen µC zu Steueren etc. Aber beim Bootloader hörts auf.

Gruß
snatch

Autor: Sebastian Neusch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Snatch schrieb:
> Ich habe hierzu mal eine Frage,
>
> wenn ich einen I2C Bootloader auf meinen Mega8 Brenne.
> Wie kann ich dann meinen Code über I2C aufspielen?
> Ich Möchte mir eine kleine Software in VB.net erstellen.
> Für die PC -> µC Verbindung nutze ich den ELV I2C Adapter.
>
> Ich hänge da voll.
>
> Ich habe mittels dieses Adapters bereits eine Software geschrieben
> um meinen µC zu Steueren etc. Aber beim Bootloader hörts auf.
>
> Gruß
> snatch

Ich weiss es ist schon alt, aber nicht dass sich jemand Hoffnungen 
macht, das ELV USB Board unterstützt kein Master-zu-Master  Verbindung

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.