Ich will demnächst ein paar ATtiny12 oder evtl. auch ATtiny11 programmieren. Der ATtiny11 geht nur im High-Voltage mode. Grundsätzlich wäre mir der auch lieber, weil er günstiger ist. Allerdings nehme ich auch den ATtiny12, wenn es nicht anders geht. Bisher habe ich meinen ATmegas mit einem seriellen Adapter programmiert. Den von der Seite in der seriellen Version, da die parallele über Schnittstellenkarte im neuen PC nicht mehr ging: http://s-huehn.de/elektronik/avr-prog/avr-prog.htm Allerdings soll das für die Tinys etwas anders sein, weil ich da noch das Kalibrationsbyte setzen will. Und zwar möglichst einfach, weil ich ein paar mehr davon programmieren will. Der serielle Adapter geht aber damit nicht: http://www.rowalt.de/mc/avr/progd.htm Welche Lösungen gibt es, die beides vereinen? Also weg von der parallelen Schittstelle und gleichzeitig einfache Programmierung bzw. einfaches schreiben des Kalibrationsbytes? Vielen Dank!
Der Tiny11 hat nur den stark driftenden Watchdogoszillator, da ist nichts mit kalibrieren. Beim Tiny12 wird das Kalibrierbyte in die oberste Adresse des Flash kopiert, da kann es die Software dann auslesen. Du must nur das Löschen vor dem Programmieren ausschalten ! Peter
Okay also doch Tiny12 mit ISP-Programmer. Aber wann wird denn das byte da reinkopiert. Macht das Ponyprog oder avrdude (wenn es mal wieder funktionieren sollte) automatisch, wenn ich das benutze und ich muss es nur noch auslesen oder wie funktioniert das? Vor allem wie soll das automatisch funktionieren, woher weiß denn das Programm, dass das mit der Kalibrierung stimmt? Ich habe keinen Plan, wie das gehen soll. Zumindest das setzen. Das auslesen im Programm sollte ja kein Problem darstellen.
Der Hersteller kopiert das Calibrationsbyte da rein. Du darfst es nur nicht löschen. Und wenn du es löscht, dann musst du es selbst reinschreiben (soll mit Pony gehen). ...
Das heißt, jeden Controller, den ich kaufe, der ist schon kalibriert (Tiny12 z.B.) und ich muss mir darüber keine Gedanken machen, wenn ich im normalen Temperaturbereich (um die 25°C arbeite)? Aber im Datenblatt geht das so richtig nicht hervor.
Der Hersteller schreibt in jeden neuen kalibrierbaren AVR das Calibrationsbyre in das L-Byte und H-Byte der letzten Flash-Zelle. Wenn ich mich nicht irre, dann auch in eine EEPROM-Zelle, das habe ich aber nicht überprüft. Wenn du nur neue Chips verwendest und keine Tests damit machst (mehrfach updaten), dann kannst du diese Kopie ausnutzen. Ich nutze dazu immer folgende (eigene) Include-Datei, die ich in die Reset-Routine einbinde: ;--- Calibration des internen RC-Oszillators. ; Kann bei Betrieb mit Quarz entfallen... ; ;Das Calibrationsbyte muss von der Programmer-Software aus dem Signature- ;Bereich des AVR gelesen werden und in das Low-Byte der letzten ;Flash-Zelle geschrieben werden. ;Beim Tiny26 muss der Bezeichner "flashend" definiert werden, da dies ;in der "tn26def.inc" vergessen wurde. ldi zl,low(2*flashend) ;Adresse auf Kalibrationsbyte L ldi zh,high(2*flashend) ;und H lpm ;Kalibrationsbyte lesen ser zl ;Referenz für Vergleich auf Gültigkeit cpse r0,zl ;Kalibyte gültig? (nein wenn $ff...) out osccal,r0 ;ja, Chip kalibrieren... ;--- Ende Calibration... Diese Routine prüft das Byte zusätzlich auf Plausiblität und verhindert das Kalibrieren auf "Maximum" (das Übertakten), falls kein Calibrationsbyte im Flash liegt. Mein Eigenbau-ISP-Programm kalibriert übrigens automatisch beim Löschen wenn das zu brennende Programm die letzte Flash-Zelle nicht benötigt und der AVR kalibriert werden muss (Tiny12, Tiny15, Megaxx bei internem Takt ungleich 1MHz). ...
Ja okay, dann habe ich das verstanden. Also stehen die Werte schon drin und ich könnte die bei neuen Chips auch vorher auslesen, bevor ich damit rumfummele. Dein Eigenbau ISP-Programm: Wie führt es eine Kalibrierung durch bzw. möchtest Du es zur Verfügung stellen?
Es steht (noch) auf www.hannes.de.md zur Verfügung. Ich bin aber aus den dort genannten Gründen nicht daran interessiert, anderen ISP-Programmen Konkurrenz zu machen. ...
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.