PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C-Bootloader für ATTINY45



stupsi
01.02.2006, 10:34
Ich habe mir aus Platzgründen den ATTINY45 für ein kleines Projekt ausgesucht. Es sollen alle 6 Ports, also auch der RESET-Pin verwendet werden.
Mit dem kleinen HV-Programmer ( http://elm-chan.org/works/avrx/report_e.html#AVRXP ) ist es möglich, den RESET-Pin als Port freizuschalten, was auch sehr schön funktioniert. Danach ist aber ein Bootloader notwendig, der über I2C den Chip programmieren kann.

Gefunden habe ich dazu auch einen schönen I2C-Bootloader: ( http://openservo.com/ oder gleich http://openservo.com/viewcvs/viewcvs.cgi/OpenServo/ATtinyX5_Bootloader/ )

Das Prinzip vermute ich so: Der I2C-Bootloader im ATTINY45 simuliert nach dem Einschalten kurzzeitig einen Standard-I2C-FLASH, den man mit dem Programm beschreiben kann.
Dort wird allerdings ein recht komplexer I2C-Controller: (Dimax U2C-12 USB-I2C/SPI/GPIO Interface Adapter und Programmier-Software ) zum Programmieren verwendet, den ich mir nicht extra kaufen möchte. Ab hier durchschaue ich das System nicht mehr.

Ist es auch möglich, diesen ATTINY45 z.B. mit dem RN_PC_I2C- Adapter zu programmieren? Wenn ja, welcher Aufwand ist dazu notwendig?

gruß stupsi

Ratber
01.02.2006, 11:45
Womit du ihn Progrmierst ist im Grunde Latte.

Der Bootloader macht beim Einschalten aus dem Controller für einen moment einen Slave.

Dh. dein Programmer muß sofort nach einschalten des Ziels die Komunikation aufbauen um ihn zu programieren.
Der Bootloader wartet nur eine einstellbare Zeit bevor er weitermacht.
Das Protokoll düftest du ja schon haben.

stupsi
01.02.2006, 15:28
danke für die antwort; das alles habe ich vermutet; es hilft mir leider nix weiter. Man benötigt sicherlich eine spezielle Software zum progammieren dieses Systems.
Die Jungs von OPENSERVO haben das Programm dazu geschrieben: http://www.openservo.com/viewcvs/viewcvs.cgi/OpenServo/TWIBootProg/

Puuuuh. Das ist mir viel zu komplex und sicherlich unmöglich, es an den RN-PC-I2C anzupassen.

Gruß Stupsi

Ratber
01.02.2006, 15:46
Nö,so komplex ist das eigentlich nicht.

Im Grunde würde es schon reichen die paar Bytes zur reaktivierung des Resetpinns zu senden.
Da kann man sich nen alten Tiny26 oder M8 nehmen,passende Sequenzen für die benötigten Controller reinsetzen (Is ja nicht bei jedem gleich) und fertig.

Dann beschränkt sich die Prozedur nur auf anstecken,auswählen welcher Controller und Go.

Die Idee schwirrt mir schon ne Weile im Hinterkopf herum aber wie das immer so ist hat man entweder keine Zeit oder keine Lust dazu.
Wenn sich so nen Tiny11-15 oder auch nen 26er verabschiedeet dann werf ich ihn lieber weg und nehme den nächsten.