Hallo Experten, als Anfänger in Sachen µC-Programmierung bin ich gleich bei meinem ersten Projekt auf ein lästiges Problem gestoßen: Der µC (ATtiny24) wird mit 32 KHz (Uhrenquarz) getaktet (Taktgenauigkeit, da mit interner Uhr, und energiesparende Batterie-Applikation). Die erste Programmierung unter Windows XP mit einem seriellen Programmer (eBay, aus Bulgarien, Typ AVR910, mit ATtiny2313) klappte wunderbar - da lief noch der interne Taktgeber mit 1 MHz. Dann habe ich die Fuses auf Low-Frequency-Crystal gestellt. Der Quarz begann offenbar zu schwingen, denn die Testapplikation lief mit der erwarteten Geschwindigkeit. Aber jetzt erkennt das Programm AvrOspII den µC nicht mehr, da er offenbar zu langsam ist... Ich konnte mir zunächst helfen, indem ich auf einem zweiten, älteren Notebook (Win2K), das noch über eine LPT-Schnittstelle verfügt, mit der Kombination STK200 + Kanda-Programmer und der Einstellung SLOW auf den Tiny zugriff. Da kann ich entweder gaaanz laaangsam flashen oder die Fuses zwischenzeitlich wieder auf den internen Taktgeber zurücksetzen. Letzteres heißt aber, Fuses zweimal umbrennen für jeden neuen Programmtest - keine Ahnung, wie lange die das mitmachen. Das Vorgehen ist so, d. h. mit zwei Computern, auf jeden Fall denkbar umständlich (die alte Win2K-Kiste hat eine so geringe Bildschirmauflösung, dass ich damit nicht vernünftig Programmentwicklung betreiben kann). Weiß jemand Rat? Mir wäre sehr geholfen, wenn es gelänge, den AVR910 dazu zu bewegen, mit dem µC langsamer zu kommunizieren. Ist das möglich, evtl. mit anderer Software? Der Programmer wird überhaupt nur erkannt, wenn die COM-Schnittstelle auf 115200 baud gestellt ist. Entsprechend schnell spricht der Programmer dann auch mit dem µC, schätze ich. Jeder Tipp ist herzlich willkommen. Vielen Dank für eure Mühe! Viele Grüße micha61
> Der Programmer wird überhaupt nur erkannt, wenn die COM-Schnittstelle auf 115200 baud gestellt ist. Das ist logisch. > Entsprechend schnell spricht der Programmer dann auch mit dem µC, schätze ich. Hat damit nichts zu tun. Die ISP Geschwindigkeit muss die Programmiersoftware einstellen können. Wenn nicht- Pech gehabt, such dir eine andere, z.B. AVR OSP II.
Idee: Zweiter AVR + 8 MHz Quarz + kleiner Schiebeschalter = Rechteckoszillator mit umschaltbarer Taktfrequenz 32 kHz / 1 MHz. Wenn Du den Takt selbsttätig vom T/C1 erzeugen lässt (CTC mode + toggle pin on output compare), ist das easy mit <20 Zeilen Assembler oder C gemacht. Während der Entwicklung Deines Projekts taktest Du Deinen tiny24 dann mit diesem Modul, das Du zum Flashen auf 1 MHz umschaltest, und danach wieder zurück auf 32 kHz.
Hallo Gast, danke für deine schnellen Antworten und die wertvollen Anregungen! Einen weiteren ATtiny als flexiblen Taktgeber einzusetzen, ist eine gute Idee. Wenn der so erzeugte Takt auf XTAL1 geht und XTAL2 offen bleibt, spielen die Fuses-Einstellungen zur Art des Quarzes vermutlich keine Rolle mehr, so lange nur eine externe Taktquelle vorgesehen ist (?) – dann könnte ich es immer bei der Uhrenquarzeinstellung belassen. Um schnell weiter zu kommen, würde ich aber zunächst deinen ersten Vorschlag zur Programmiersoftware aufgreifen wollen. Ich verwende bereits AvrOspII (Version .547). Die einzige Geschwindigkeitseinstellmöglichkeit, die ich in diesem überaus praktischen Programm gefunden habe, ist die zur Baudrate. Wie beeinflusse ich die ISP-Speed? Warum ist es übrigens logisch, dass man mit 115200 baud arbeiten muss? Ich habe das erst durch Herumprobieren herausgefunden, nachdem ich zunächst schon befürchtete, die Hardware sei defekt... Nochmals vielen Dank!
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.