AVROspII: ATTiny2313 zu langsam?

Gast #4291712
Ein ATTiny2313-Programm setzt den Takt auf 4 MHz/64. Mein Problem ist 
nun, dass die AVROspII-Software (AVR910 Hardware)den ATTiny nicht mehr 
erreichen kann, weil dieser vermutlich zu langsam ist.

Einen USBASP/USBISP habe ich mit bereits bestellt. Der kommt aber erst 
zum Wochenende.

Was kann ich bis dahin tun?
ISP findet bei aktivem Reset statt und da ist nicht wichtig, was das 
Controller-Programm selbst als Prescaler definiert. Die Div8 Fuse 
hingegen ist relevant. Ist die aktiv, darf der ISP-Takt dank 
4MHz/8=500kHz Takt nicht über 125kHz liegen.

Wo kommen die 4MHz her und mit welcher ISP-Frequenz arbeitet der 
Programmer? Bei RC-Oszillator geht nur ein entsprechend langsam 
einstellbarer ISP-Programmer, oder ein HVP-Programmer.
(Firma: matzetronics)
Ludwig schrieb:
> Ein ATTiny2313-Programm setzt den Takt auf 4 MHz/64

Das interessiert den Programmer normalerweise nicht, denn er hält den MC 
ja im Reset, so das die Software keine Chance hat, den Prescaler zu 
aktivieren. Wenns trotzdem nicht geht, könntest du versehentlich eine 
andere Taktquelle gewählt haben (per Fuse).
Gast
Ihr habt natürlich recht, das Programm des ATiny startet bei aktivem 
Reset erst gar nicht. Da muss ich wohl einen Fehler gemacht und eine 
falsche Fuse gesetzt/gelöscht haben.

Danke für den Hinweis.
Gast
Matthias S. schrieb:
> Ludwig schrieb:
>> Ein ATTiny2313-Programm setzt den Takt auf 4 MHz/64
>
> Das interessiert den Programmer normalerweise nicht...

D.h., Sie können ein Programm laden, in welchem gleich zu Programmanfang 
der 'System Clock Prescaler' auf /256 gesetzt wird, und kommen 
anschließend mit Ihrem Programmer problemlos noch an den uC dran? - Mit 
welchem ISP-Takt läuft das dann?
Hallo,

ich weise mal auf diesen Thread hin:
Beitrag "Problem: Attiny45 mit 16MHz PLL Takt"
in dem wir Problem CPU-Takt mit gesetztem Prescaler durch das Programm 
betrachtet haben.

Es ist halt beim ATtiny45/tn85 nicht so, dass bei einem Reset der 
CPU-Takt ein gesetzter Prescaler zurückgesetzt wird und der Vorteiler 
über das zugehörige Fusebit verwendet wird.

Darauf bin ich auch per Zufall gestoßen.

A. K. schrieb:
> ISP findet bei aktivem Reset statt und da ist nicht wichtig, was das
> Controller-Programm selbst als Prescaler definiert. Die Div8 Fuse
> hingegen ist relevant. Ist die aktiv, darf der ISP-Takt dank
> 4MHz/8=500kHz Takt nicht über 125kHz liegen.
>
> Wo kommen die 4MHz her und mit welcher ISP-Frequenz arbeitet der
> Programmer? Bei RC-Oszillator geht nur ein entsprechend langsam
> einstellbarer ISP-Programmer, oder ein HVP-Programmer.

Matthias S. schrieb:
> Ludwig schrieb:
>> Ein ATTiny2313-Programm setzt den Takt auf 4 MHz/64
>
> Das interessiert den Programmer normalerweise nicht, denn er hält den MC
> ja im Reset, so das die Software keine Chance hat, den Prescaler zu
> aktivieren. Wenns trotzdem nicht geht, könntest du versehentlich eine
> andere Taktquelle gewählt haben (per Fuse).
Gast
Auf einem Galep4 habe ich nur das Programm gelöscht und keine Fuse 
verändert und siehe, der ATiny2313 wird vom AVROspII wieder erkannt.

Hier die Fuses: Ext: 0xFF, High: 0xDF, Low: 0x62

Mit anderen ATTiny2313 zeigt sich das gleiche Verhalten: wird das 
Programm geflasht, hat AVROspII keinen Zugriff mehr, löschen des 
Programms mit dem Galep4 und es geht wieder.

Bin ratlos.
Gast
Ich kenne den AVROspII nicht, aber vielleicht hilft es, wenn gleich zu 
Programmbeginn, also noch vor dem Setzen des Vorteilers, eine 
Warteschleife von 1..2 Sekunden eingefügt wird.
Gast
S. Landolt schrieb:
> Ich kenne den AVROspII nicht, aber vielleicht hilft es, wenn
> gleich zu
> Programmbeginn, also noch vor dem Setzen des Vorteilers, eine
> Warteschleife von 1..2 Sekunden eingefügt wird.

Kann nicht sein, da das Programm nicht startet, die Kommunikation mit 
dem Chip erfolgt während Reset Low ist.

>> Bin ratlos.
> Warum? Steht doch z.T. hier, vor allem aber auch in dem von Uwe S.
> zitierten Link.

Wie erklärt der Link mein Problem?
Gast
> Kann nicht sein...
Haben Sie es ausprobiert? Evtl. gibt das Programmiergerät, so wie es im 
Datenblatt steht, einen positiven Impuls auf /RESET.

> Wie erklärt der Link mein Problem?
Es gibt Programmiergeräte, die sich wie Ihres verhalten, also nur noch 
mit sehr langsamem ISP-Takt an den uC kommen. Andere schaffen es 
angeblich, vielleicht meldet sich mal ein Besitzer, um welche es sich 
handelt.
Gast
Hi,
Sollte es nicht gehen wenn man beim einschalten der Betriebssp. den 
Reset schon gesetzt hat? Der µC springt doch meistens gleich an bevor 
auf Prog.
umgeschaltet wird, da wird das Register ja schon gesetzt und Reset 
verändert es nicht mehr. Es sei denn ich irre mich gerade gewaltig.

Viel Erfolg, Uwe
Gast
Nehme ich diese Zeilen aus meinem Programm, die den Teiler (64) setzen 
heraus, dann funktioniert der Zugriff einwandfrei:

[/C]
    CLKPR = (1 << CLKPCE);
    CLKPR = (1 << CLKPS2) | (1 << CLKPS1);
[C]

Ausschnitt aus dem Programmercode des verwendeten Programmers:
1
        ... 
2
clr_LED       ; LED on
3
catch_ports   ; catch ports
4
clr_SCK       ; clear SCK
5
pas_RESET     ; set RESET passive
6
ldi temp1,50  ; delay 50mS;
7
rcall delay
8
act_RESET     ; set RESET active
9
ldi emp1,50   ; delay 50mS;
10
rcall delay  
11
        ...

Der komplette Code ist hier:

http://www.klaus-leidinger.de/mp/Mikrocontroller/AVR-Prog/avr910_2313_v38b.hex
Gast
Michael K. schrieb:
> Ludwig schrieb:
>> Nehme ich diese Zeilen aus meinem Programm, die den Teiler (64) setzen
>> heraus, dann funktioniert der Zugriff einwandfrei:
>
> Das klingt dann doch sehr danach, dass der ISP-Takt nicht passt bzw zu
> schnell ist.

Nach einem Reset werden alle Register des ATTiny2313 zurückgesetzt. D. 
h. der Teiler auch.
Gast
Auch wenn ich den den Resetpin - vor dem Einschalten des Programmers - 
auf Low lege, das gleiche Ergebnis: kein Zugriff auf den Chip.

Es reicht, dass diese Zeilen im Code stehen:
1
    CLKPR = (1 << CLKPCE);
2
    CLKPR = (1 << CLKPS2) | (1 << CLKPS1);
Ist auch meine Erfahrung, die Prescalerbits überstehen einen Sprung in 
den ISP-Mode unverändert.
Ich konnte dann nur noch im HV-Mode (STK500) vernünftig programmieren.

Die Programmer gehen ja auch erstmal in tristate und werden nur bei 
einer Programmieraktion aktiv.
D.h. nach jedem Power-On wird auf alle Fälle erstmal die Applikation 
gestartet.
Gast
Thomas H. schrieb:
> Ludwig schrieb:
>> Was kann ich bis dahin tun?
>
> Du könntest die Zeit zum Lesen nutzen, oder dich aktiv in der
> Flüchtlingskriese engagieren. Oder einfach den Tiny der nicht erreichbar
> ist irgendwo unterklemmen wo ein Tisch oder ähnliches wackelt und einen
> neuen nehmen.

Bitte nur sachliche Antworten. Ein Mindestmaß an fachlicher Kompetenz 
ist schon erforderlich. Einfach nur dumm sein reicht hier nicht, Thomas. 
Du musst also draußen bleiben.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.