Forum: Mikrocontroller und Digitale Elektronik AVR ATtiny mit Uhrenquarz zu langsam für Programmer


von Michael S. (micha61)


Lesenswert?

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

von Bensch (Gast)


Lesenswert?

> 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.

von Gast (Gast)


Lesenswert?

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.

von Michael S. (micha61)


Lesenswert?

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
Noch kein Account? Hier anmelden.