Neuer Controller, altes Programm: Fahler im Zeitkonitnuum

Gast #1851958
Lesenswert?

Moin!

Nun, na meine Reicheltbestellung da ist, bin ich am Umsatteln von 
Atmega8 auf Atmega8535 (Ein Quantensprung!) im freundlichen PCLL 
Gehäuse. Macke von mir, ich mag das.

Gleichzeitig lege ich ein paar Hertz zu von rd.3,6MHz auf 4MHz. Alles 
lief auf Anhieb, ausser die delay- Funktionen, die beanspruchen nun etwa 
doppelt so viel Zeit viel gefordert (_delay_ms(1000) wartet etwa 2s).
Wo, ausser im Makefile, habe ich die geänderte Geschwindigkeit noch 
anzupassen? Erwarten mich jetzt auch Probleme bei der UART?

Schönen Gruß- Stephan
Gast #1851971
Lesenswert?

>Nun, na meine Reicheltbestellung da ist, bin ich am Umsatteln von
>Atmega8 auf Atmega8535 (Ein Quantensprung!)

"Ein Quantensprung" nach hinten;) Atmega644 wär was nach vorne.

> im freundlichen PCLL Gehäuse

Wie sieht das denn aus?
Gast #1851979
Lesenswert?

Meine natürlich PLCC. Ihr macht mich madig! Ich bin mit der 
"Performance" meines Atmega8 immer zufrieden gewesen und brauche für 
mein Projekt auch nicht mehr. Die Wahl fiel auf diesen Typen, da ich 
noch viele PLCC- Sockel rumliegen habe und keine Verschlechterung oder 
Einschränkung des 8535 gegenüber dem 8 gesehen habe.
Also, wo ist der Haken?
Gast #1852004
Lesenswert?

Zähl Du mal bis 512! Das dauert verdammt lange!
Ich merke schon. Selbstverständlich wird mit diesem uC kein Windows 7 
laufen und die Kamerabildbewegungsüberwachung in Echtzeit und 3D wird 
auch schwierig.
Aber da die Hammerleistung für meine kleine Anwendung reicht und hier 
niemand Horrorgeschichten erwähnt, wie, dass man alle 2 Wochen eine 
Feder aufziehen muss, ist das schon in Ordnung.

Also nochmal zurück zur Frage: an welchen Stellen muss ich dem Chip oder 
Compiler mitteilen, dass nun ein 4MHz Quarz dranhängt bzw., da ich 
hörte, dass Atmel mit eingeschaltetem internen Oszillator geliefert 
wird, welches Programm brauche ich oder nach was muss ich suchen, um die 
Fuses zu setzen, die dem Chip sagen, dass er nun auf den externen hören 
soll.

Eine hab ich noch: angenommen, ich stelle das Fuse -so es denn zu 
stellen ist- auf externen Quarz, und dabei ist in meiner Schaltung ein 
Fehler, dass z.B. mein externen Quarz nicht richtig angeschlossen oder 
beim Löten durchgewichst ist, lässt sich der uC dann insofern noch 
betreiben, dass man das ensprechende FuseBit wieder zurücksetzen kann?

Vor Montag komm ich nicht wieder in die Firma zum Umlöten...

Danke und Prost schon einmal!
Gast #1852057
Lesenswert?

Seemeilenweit zu herb! Flens ist aber auch schon durch, hab jetz Köpi. 
Der nette Mann von Riepen hat mir eine Riesenpackung Köpi- Untersetzer 
und genausoviele Banderolen (heissen die runden Serviettendinger am 
Glasstiel so?) geschenkt. Das nenn ich Kundenbindung.

Nochmal was fachliches: ich habe ein Programm gefunden, das auflistet, 
welche Bits bezüglich der int oder ext Quarzfrage ich setzen kann. Da 
kommt aber meine 4MHz nicht drin vor! (AVR progtool) Warum ned?
#1852060
Lesenswert?

Stephan R. schrieb:
> Also nochmal zurück zur Frage: an welchen Stellen muss ich dem Chip oder
> Compiler mitteilen, dass nun ein 4MHz Quarz dranhängt bzw., da ich
> hörte, dass Atmel mit eingeschaltetem internen Oszillator geliefert
> wird, welches Programm brauche ich oder nach was muss ich suchen, um die
> Fuses zu setzen, die dem Chip sagen, dass er nun auf den externen hören
> soll.

Wie bereits erwähnt muß F_CPU richtig gesetzt sein.

Den atmega8535 selbst muß man über die Fuses einstellen, z.B.:

hfuse: 0=programmed, 1=unprogrammed
0x80 0=S8535 compatibility             -> 0x80
0x40 0=WDT always on                   -> 0x40
0x20 0=enable SPI                      -> 0x00
0x10 0=external Osc CKOPT              -> 0x00
0x08 0=EEPROM preserved on chip erase  -> 0x08
0x04 0=select bootsize1                -> 0x00
0x02 0=select bootsize2                -> 0x00
0x01 0=select reset vector             -> 0x01
                                  ------------
                                  hfuse = 0xC9

lfuse: 0=programmed, 1=unprogrammed
0x80 BODLEVEL                          -> 0x80
0x40 0=BOD enabled                     -> 0x40
0x20 SUT1                              -> 0x20
0x10 SUT0                              -> 0x10
0x08 CKSEL3                            -> 0x08
0x04 CKSEL2                            -> 0x04
0x02 CKSEL1                            -> 0x02
0x01 CKSEL0                            -> 0x01
                                  ------------
                                  lfuse = 0xFF

So würde ich ihn für externen Quarz einstellen.
Je nach BOD etc. kann es auch anders aussehen, siehe Datenblatt.

Angenommen, die obigen Einstellungen passen, dann geht es
bspw. mit avrdude so:
avrdude -c stk200 -p m8535 /dev/parport0 -U lfuse:w:0xff:m -U 
hfuse:w:0xc9:m



>
> Eine hab ich noch: angenommen, ich stelle das Fuse -so es denn zu
> stellen ist- auf externen Quarz, und dabei ist in meiner Schaltung ein
> Fehler, dass z.B. mein externen Quarz nicht richtig angeschlossen oder
> beim Löten durchgewichst ist, lässt sich der uC dann insofern noch
> betreiben, dass man das ensprechende FuseBit wieder zurücksetzen kann?

Nö.

Entweder muß die Schaltung mit dem Quarz in Ordnung gebracht
werden, oder der AVR raus und in eine funktionierende Schaltung.

Wenn auf ext. Q. gestellt ist, geht m.W. kein ISP mehr ohne
den Quarz. Ich hatte den Fall aber noch nie, weil ich ja keine
Fehler mache :-)
#1852062
Lesenswert?

Stephan R. schrieb:
> Nochmal was fachliches: ich habe ein Programm gefunden, das auflistet,
> welche Bits bezüglich der int oder ext Quarzfrage ich setzen kann. Da
> kommt aber meine 4MHz nicht drin vor! (AVR progtool) Warum ned?

Datenblatt anschauen!
Der obige Vorschlag sollte von 1 bis 16 MHz gehen mit ext. Quarz.

Und trink mal was anständiges, nicht so eine Preußenplörre.
Gast #1852084
Lesenswert?

Preußenplörren? Alter! Ich komm gleich durch die Leitung!
Falls Du aus Franken kommst: ich liebe Schlenkerla. Falls Du aus Bayern 
kommst: ich liebe Hacker-Pschorr. Falls Du aus Baden kommst: ich liebe 
Tannenzäpfle. Aber sag nie wieder was gegen Flens und Köpi. Dagegen 
kommen sie nicht an!
Gast #1852102
Lesenswert?

Franke also, okay..
Zu BW-Zeiten teilte ich mir die (2-Mann-)Stube (Kaserne 2000!) mit nem 
Franken, der hat auch immer Bier von dahoam mit zur Ostsee gebracht. Hab 
gefühlte 3921 Sorten durch! Ist das eigentlich schon off-topic?
#1852117
Lesenswert?

Stephan R. schrieb:

> wird, welches Programm brauche ich oder nach was muss ich suchen, um die
> Fuses zu setzen, die dem Chip sagen, dass er nun auf den externen hören
> soll.

Und nicht vergessen die Platine immer schön senkrecht zu stellen.
Damit das Pendel im IC auch schön frei schwingen kann. Sonst wirds 
nichts mit einem Takt.

PS: Wusstest du eigentlich schon, dass der Sprung eines Quant 
gleichbedeutend ist, mit der kleinsten möglichen Veränderung? In diesem 
Sinne sollte man noch einmal über die eigentliche Bedeutung des Wortes 
"Quantensprung" nachdenken.
Gast #1852159
Lesenswert?

Übrigens: habe doch tatsächlich das erste FuseBit meines Lebens 
verändert... und nix ist passiert, ausser dass ich jetzt weiss dass ichs 
richtig verdrahtet hab. Scheisse. Würde jetzt alles brach liegen könnte 
ich morgen schön für die Klausur am Montag lernen. Aber so: Atmel-day! 
Mal wieder.
Gast #1852168
Lesenswert?

Studiumse werden, gerade in der heutigen Gesellschaft, völlig 
überbewertet.
Seitdem ich Mathematik mit zwei Tagen "lernen", einen davon betrunken, 
geschafft hab (ohne den blassesten Schimmer) habe ich eine gewisse 
Selbstsicherheit aufgebaut. Und Regelungstechnik... naja. Wird schon!
So. Weibchen schläft, Bier leer... Noch schnell ein, zwei 
JackDaniels-Cola und ab in die Haja. Schluss mit dem Biergezänke. Und 
jetzt nur keine Whisk(e)y Diskussion lostreten!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren