Hallo Leute, ich möchte ein Programm schreiben, welches in der Lage ist über RS232 einige ATMega Typen zu beschreiben (ähnlich PonyProg). Mit einem ATMega32 funktioniert mein Programm auch. Jedoch ist es nicht möglich einen ATTiny 2313 zu beschreiben. Weitere Typen habe ich noch nicht getestet. Ich kann im Datenblatt keinen Unterschied bei der Programmierung von ATMega 32 und ATTiny2313 erkennen. (Der Tiny funktioniert mit Pony Prog) Vielen dank
Zu wenig Infos. Dein Programm läuft also auf dem Tiny, aber das Programmieren eines anderen AVRs geht damit nicht?!
Hallo Timmo Nein genau andersherum. Einen ATMega 32 kann ich beschreiben (also auch auslesen, schreiben und löschen). Bei einem ATTiny funktioniert nur das auslesen korrekt, beim Schreiben und Löschen passiert nichts. Auf dem ATTiny laufen ist der falsche Ausdruck. Ich habe kein Programm geschrieben, was etwas auf dem uC auslöst. Ich habe ein Programm geschrieben, was den uC beschreibt (ein Pony Prog Clon wenn du so willst).
Versuch mal langsamer zu takten! Der Tiny läuft ab werk mit 500 khz wenn ich das richtig in erinnerung habe!
Die Tinys benutzen ein anderes Pollingverfahren. Bzw können nicht alle.
8Mhz sollte der Takt ab Werk sein, ich habe auch andere Taktraten durch die Fuse Bits und andere Verzögerungszeiten in meinem Programm versucht. Dies hat leider keinen Erfolg.
Dir ist bewusst, dass die Pagegrößen unterschiedlich sind? ...
ja ich denke das habe ich richtig in meinem Quellcode beachtet ATTiny hat größe 16word ATMega32 hat 64word
es scheint doch ein TimingProblem zu sein, danke Leute @Christian, was meinst du mit Polling?
Hast du das Datenblatt mal gelesen ? Die Abfrage ob der Flash schon programmeirt ist nennt sich polling. Deshalb gibt es auch kein festes Timing, das kann selbst von Controller zu Controler etwas variieren.
Das Lesen und schreiben eines AT Tiny funktioniert nun. Das Chip Erase funktioniert jedoch nicht. @Christian: Du meinst, dass es einen Befehl gibt, der guckt ob im Tiny nicht nur FF drin steht, sondern schon Programmcode und dieser Befehl muss vorher abgefragt werden?
Christoph Day wrote: > 8Mhz sollte der Takt ab Werk sein, ich habe auch andere Taktraten durch > die Fuse Bits und andere Verzögerungszeiten in meinem Programm versucht. > Dies hat leider keinen Erfolg. 8Mhz ist der Takt ab werk, aber mit der CHKDIV/8 Fuse sind es dan nurnoch 1 Mhz.
Bist du wirklich zu Faul mal ins Datenblatt zu gucken ? Es steht doch alles drin. Du musst eine Seite laden und dann den befehl zum flashen geben. Danach wartest du entweder eine festlegegte Zeit die sich von Controller zu Controller unterscheidet oder du pollst. Beim polling gibts glaub ich 3 verschiedene Verfahren und nicht jeder Controller unterstützt jedes. Zitat aus dem Datenblatt des Tiny2313: The Flash is programmed one page at a time. The memory page is loaded one byte at a time by supplying the 4 LSB of the address and data together with the Load Program Memory Page instruction. To ensure correct loading of the page, the data low byte must be loaded before data high byte is applied for a given address. The Program Memory Page is stored by loading the Write Program Memory Page instruction with the 6 MSB of the address. If polling (RDY/BSY) is not used, the user must wait at least tWD_FLASH before issuing the next page. (See Table 77 on page 178.) Accessing the serial programming interface before the Flash write operation completes can result in incorrect programming.
@Christian Das schein ich doch richtig beachtet, zu haben, wenn ich den uC beschreiben kann ?
Wenn hinterher auch wirklich das richtige drin steht ja. Nur sollte dann die Frage nach dem polling gar nicht erst aufkommen ?! Chip Erase funktioniert immer dazu muss man nur den richtigen Befehl hinschicken. Solang man dem Chip dann nicht zu früh die Stromversorgung klaut was fast nie vorkommt ist alles gut.
Das ist eben mein Problem, schreiben und lesen geht korrekt, aber das löschen nicht. Muss ich vlt zum korrekten Chip Erase noch die Security oder Fuse Bits setzen?
Nein nur das richtige Kommando hinschicken glaub mir.
und die Timins unterscheiden sich auch nicht beim Tiny zwischen Lesen, Schreiben und Löschen?
Soweit mir bekannt nicht, genaueres siehe Datenblatt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.