Fuse bits setzen in Bascom mit STK500

Bluebird68

Neues Mitglied
12. Apr. 2009
4
0
1
Hille
Hallo,

ich habe ein Problem beim setzen der Fusebits und Lockbits in Bascom.

Vorweg ist zu sagen: ich bin Neuling im Bereich Mikocontroller Programierung. Seit ca. einer Woche habe ich ein STK 500 und die Bascom Software. Es läuft soweit recht gut. Ich kann Programme schreiben und auch in einen Chip brennen. Mein Problem besteht aber bei den Fusebits und Lockbits. Die kann ich zwar ändern aber nach dem Schreiben auf einen ATtiny2313 sind die Werte wieder zurückgesetzt und auch nich auf dem Chip angekommen.
Kann mir jemand sagen was ich falsch mache?:(

Schöne Grüße und noch frohe Ostern

Volker
 
Hallo Volker,

diese Problem hatte ich zwar noch nicht (Programmer/ Board selbstgebaut) und das 500er kenne ich auch nicht - hast Du nach dem Setze schon mal das Board aus- und wieder eingeschaltet?


Grüsse,

Michael
 
Hallo,

vielen Dank für die schnelle Antwort.

das mit dem Board aus- und einschalten habe ich auch schon getestet, da ich einen Hinweis gefunden habe das die Fuse Bits erst nach einer Powerdown-Sequenz wirksam werden. Ich habe auch schon mehrere ATiny 2313 getestet. Brachte auch keinen Erfolg.:(
Ich werde mal weiter probieren und testen.
Bin für jede Hilfe dankbar.

Volker
 
Hi Volker,

das mit dem Board aus- und einschalten habe ich auch schon getestet, da ich einen Hinweis gefunden habe das die Fuse Bits erst nach einer Powerdown-Sequenz wirksam werden.
...
Brachte auch keinen Erfolg.:(
hätte mich auch stark gewundert. Da hab ich in nem anderen Thread schon mal
was aus den Datenblättern zu geschrieben. Die Fuses werden nach dem Reset
oder manche auch sofort aktiv. Da der Reset aber nach der Programmierung
der Fuses zwangsläufig durchgeführt wird, kannst du es nicht verhindern
das sie aktiv werden. Den Powerdown hättest du dir also sparen können.
Das hilft zwar für das Verständnis aber leider im Moment nicht weiter :(

Ist eventuell die ISP-Frequenz zu hoch eingestellt, so das der Prozessor es
nicht richtig versteht und dadurch auch nicht übernimmt ?

Oder falscher Prozessortyp eingestellt, der nicht zu dem auf dem Board paßt ?

Außerdem sollte man die Fuses sicherheitshalber vor der Änderung erst einmal
lesen, dann einstellen und danach schreiben. Also nicht nur die angezeigten
ändern und nur schreiben.

Das STK500 hab ich hier. Ich arbeite aber leider nicht mit BASCOM sondern
mit dem AVR-Studio und Assembler. Notfalls kann ich mich ja mal demnächst
da dran versuchen wenn es überhaupt nicht klappen will. Von den Tiny2313
hab ich hier welche rumfliegen.

Gruß
Dino
 
Hi Dino,

Ist eventuell die ISP-Frequenz zu hoch eingestellt, so das der Prozessor es
nicht richtig versteht und dadurch auch nicht übernimmt ?
Ihr sprecht des öfteren von dieser Frequenz. Vielleicht habe ich da ja eine Wissenslücke, den die Atmel-Boards kenne ich ja nicht. Mein selbstgebautes Board und Programmer haben keine bestimmte "Brenn-Frequenz". Was muß ich mir darunter vorstellen? Bascom nimmt den Programmieradapter als STK200/300- kompatibel. Bislang habe ich nicht ein einziges Problem gehabt, auch nicht beim Setzen der Fuse-Bits. Spannung aus und wieder ein - der Atmel läuft. Diese "Weisheit" habe ich aus dem Buch von Roland Walter "AVR Mikrokontroller Lehrbuch".

Grüsse,

Michael
 
Hallo Grandpa,

wenn man über ISP programmieren möchte, gilt folgende Einschränkung:

Low: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz
High: > 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck >= 12 MHz
Mal ganz grob: Man sollte 1/4 fosc nicht überschreiten. Allerdings kann eine zu niedrige ISP-Frequenz auch Probleme bereiten, das ist bei meinen STK600 und dem AVRISPmkII so, ist natürlich möglich, dass es irgendwie an meinem Rechner oder der Softwarekonfiguration liegt. Ich meine aber das Problem schon mal woanders gelesen zu haben.

Vielleicht ist bei dir grundsätzlich die ISP-Frequenz im Bereich <200kHz, so dass es mit internem 1MHz RC-Oszillator und 16MHz Quarzoszillator immer funktioniert.

Gruß,
Dirk
 
Hallo zusammen,

also zuerst das mit den Fuses ... da habe ich hier ...
Software / Wie Fuse-Bits setzen? #13
im Forum schon mal was geschrieben.

Ihr sprecht des öfteren von dieser Frequenz. Vielleicht habe ich da ja eine Wissenslücke, den die Atmel-Boards kenne ich ja nicht. Mein selbstgebautes Board und Programmer haben keine bestimmte "Brenn-Frequenz". Was muß ich mir darunter vorstellen?
Also der Prozessor läuft ja mit seinem internen Oszillator oder einem Quarz
auf einem bestimmten Systemtakt. Die ISP-Frequenz ist dagegen die
Frequenz, mit der die Programmierdaten zum Prozessor geliefert werden
sie dann im Flash oder im EEPROM landen. Die ISP-Frequenz muß immer
niedriger unter der Taktfrequenz liegen. Im Moment finde ich die maximalen
Angaben nicht ... sind meiner Meinung nach aber bei max 1/4 oder bei
manchen CPU-Frequenzen bei max 1/6 .

Bascom nimmt den Programmieradapter als STK200/300- kompatibel. Bislang habe ich nicht ein einziges Problem gehabt, auch nicht beim Setzen der Fuse-Bits. Spannung aus und wieder ein - der Atmel läuft. Diese "Weisheit" habe ich aus dem Buch von Roland Walter "AVR Mikrokontroller Lehrbuch".
Der STK200/300 ist ein Parallelport-Programmer. Der schafft sowieso nicht
so hohe ISP-Frequenzen wie ein USB-Programmer. Bei nem Parallelport-
Progger kann man das sowieso nicht einstellen. Ich hab jedenfalls bei
PonyProg nichts gefunden wo man es einstellen konnte.

Gruß
Dino
 
Hallo zusammen,

Depending on CKSEL Fuses, a valid clock must be present. The minimum low and high periods
for the serial clock (SCK) input are defined as follows:
Low:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz
High:> 2 CPU clock cycles for fck < 12 MHz, 3 CPU clock cycles for fck ≥ 12 MHz
Wenn man den ersten Satz mit interpretiert, dann ergibt sich folgendes Bild ...

Low-Period : 2..3 Clock-Cycles
High-Period : 2..3 Clock-Cycles
mit Betonung auf Period. Also der statische Zustand des Signals am SCK.

Also bei einem Takt an SCK sind das zwei Perioden (1x High, 1x Low) und
damit kommt man auf 1/4 bis 1/6 maximaler SCK-Frequenz im Verhältnis
zur CPU-Frequenz.

CPU : _--_--_-- _--_--_-- _--_--_-- _--_--_--
SCK : ________ ---------- ________ ----------

... das wär jetzt ISP-Takt = 1/6 CPU-Takt.

Gruß
Dino
 
Hi Dino,

danke für die Erklärung. Dann ist bei mir ja alles i.O., schließlich funktionierts ja auch bei eingestelltem 8MHz internem RC-Oszillator ohne Probleme.


Grüsse,

Michael
 
Hallo,

also ich verstehe leider nicht viel von den Einstellungen. Im Bascom konnte ich keine Möglichkeit finden die ISP Frequenz einsustellen. Also habe ich das AVR Studio genommen. Da habe ich aber die gleichen Probleme wie oben beschrieben. Allerdings gibt es dort beim vergleichen die Fehlermeldung das die ISP Frequenz nicht passt. Eine Einstellmöglichkeit habe ich unter dem Reiter "Board" auch gefunden. Dort kann ich die STK 500 Osc und die ISP Frq einstellen. Habe aber keine Ahnung was ich dort angeben soll:confused:
Schöne Grüße Volker
 
Hallo Volker,

kannst Du überhaupt via ISP auf den Tiny zugreifen. Nach Deiner Beschreibung wage ich dies nämlich zu bezweifeln. Ich bin voll und ganz der Meinung von Dino und Dirk und Granpa.

Ich tippe auch auf die ISP-Frequenz. Dabei solltest Du aber schon garnicht richtig lesen können. Bedeutet, beim Lesen der Fuse-Bits bekommst Du unplausible Werte die nicht den Default-Werten entsprechen und wenn Du versuchts die Bausteinkennung auszulesen solltest Du sogar eine Fehlermeldung bekommen.

Mit welchem Tool arbeitest Du? AVRStudio? Welcher Prommer? Direkt über serielle / USB und das STK500? Ist das 6-polige ISP-Kabel richtig gesteckt? Ist der RESET-Jumper auf dem STK500 gesteckt. Der muss gesteckt sein sonnst kriegst den den µC nicht in den Programmiermodus.
Wenn Du einen externen Programmer z.B. AVRISPmkII dran hast muss der RESET Jumper raus!

Grüße,
Markus
 
Hallo Volker,

wie Dino und Dirk schon beschrieben haben, hängt das von Deiner Taktrate des µC ab.
Wenn dieser mit 1 MHz intern geclocked wird so darf die ISP-Frequenz maximal 250k betragen. Nehme mal 115.2k und probiers aus.

Bei meinem AVRStuido befindet sich die Einstellung der ISP-Frequenz unter dem Reiter MAIN - "Programming Mode and Target Settings". Mit der ComboBox kannst Du den ISP-Mode und mit dem Button Settings die Frequenz einstellen.

Meine Version ist eine Englische. Weiß garnciht ob es die Oberfläche überaupt auf Deutsch gibt. Außerdem lohnt es sich auf der Homepage von ATMEL immer die neueste Version zu ziehen denn die SW ist auch nicht unbedingt Fehlerfrei.

Grüße,
Markus
 
Hallo,

Vielen Dank für die Antworten. Ich habe inzwischen ein wenig mit den ISP Werten getüftelt und die Fusebits erfolgreich gebrannt. Der Chip läuft in der Schaltung perfekt!!!! :D :D :D :D :D :D :D

Danke schön
Volker
 
Glückwunsch

Na also, mein Glückwunsch an dieser Stelle
:party:

Grüße,
Markus
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)