-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Fuse Bits ATMega168

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    21

    Fuse Bits ATMega168

    Anzeige

    Hallo,

    ich bin auch Neuling in der Prozessor-Programmierung.

    Ich hab den ASURO mit der SUMO-Erweiterung und wollte den mit einem ATMega168 zum laufen bringen. Als ich merkte, dass die Timer "nicht stimmen" und ich keine Kommunikaton über die IR-Schnittstelle hinbekommen, bin ich - wieder mal - auf die Fuse-Bits gestossen.

    Der ATMega168 läuft wohl noch mit den internen 1MHz. Da ich gehört hab, dass man mit den Fuse-Bits viel falsch machen kann, Suche ich hier Hilfe. Welche Werkzeug nimmt man? avrdude? AVR-Studio?

    Für avrdude benötige ich wohl drei korrekte Hexzahlen.
    Im AVR-Studio 4 bin ich auch nicht weit gekommen. Ich finde dort acht Möglichkeiten für einen ext. Crystal. Osc. 8Mhz, wo mir die nachfolgenden Parameter nichts sagen.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554

    Re: Fuse Bits ATMega168

    Hallo esieg,

    willkommen im Forum

    Zitat Zitat von esieg
    ... ATMega168 zum laufen bringen ... gehört hab, dass man mit den Fuse-Bits viel falsch machen kann ...
    Genau so ist es. Deshalb gibt es einen sehr praktischen Fusebit-Calculator. Sprich: eine ausgefuchste Einstell-Tabelle.
    http://www.engbedded.com/fusecalc/

    Ich weiß nicht, wie schnell der Quarz für Deinen mega168 läuft - aber ich denke Du wirst nur ein einziges Häkchen setzen - das bei SPIEN. Denk daran, dass zur besseren Unverständlichkeit Atmel immer von einer "1" spricht, wenn dieses "Häkchen" nicht gesetzt ist - schau Dir also den unteren Teil im Calculator an - darin ist also nur dieses SPIEN mit Haken versehen. Dies alles ohne Gewähr ! Da Du auch nicht schreibst, wie Du den m168 flasht, kann ich zum Fusebitsetzen nichts sagen. Bei mir geht das mit einem STK500-Clone direkt aus dem AVRSTudio - und das ist relativ übersichtlich.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    Renkum
    Alter
    72
    Beiträge
    128
    Ich emphele http://www.engbedded.com/fusecalc/ für eine Lösung.

    lg,

    Ed

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    21
    Vielen Dank, die Herren. Das ging ja schneller, als die Polizei erlaubt.

    Über den Calculator bin ich gestern nacht auch schon "gestolpert", war mir aber auch bei dem nicht sicher.

    Ich programmiere den ATMega168 über ISP, Protokoll STK500v2 mit einem USB-Programmer (Diamex DX USB). Spannung nehme ich dabei 5V vom USB-Programmer. Nach einigen Anlaufschwierigkeiten (wegen der Switches auf dem Programmer) funktioniert das eigentlich ganz gut. Mit dem AVR-Studio hab ich da schon mehrfach geflasht, mit avrdude "gelesen".

    Mit diesen Hinweisen: gibt es noch etwas zu beachten bei den ganzen Bits?

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    21
    Hallo,

    vergessen hat ich noch den Quarz. Wenn ich nicht falsch liege (auf die Schnelle: http://www.asurowiki.de/pmwiki/pmwik...Main/Prozessor) taktet der 8MHz.

    Zurück zu fusecal: Wenn ich die "Feature configuration" nehme ...
    habe ich aber beim fusecal allein acht Möglichkeiten für den externen Quarz:

    Alle Kombinationen CKSEL 1110 SUT 00 bis CKSEL 1111 SUT 11.

    Weiter:
    - Divide clock by 8 internally; [CKDIV8=0] ?
    - Clock output on PORTB0; [CKOUT=0] ?

    Was nimmt man hier? Fasst man das an oder lässt man das?

    Wie schreibt man überhaupt? Mit AVR-Studio erst die FUSE-Bits lesen, dann den Wert für Clock ändern und wieder schreiben?
    Oder lieber mit avrdude die kompletten drei Bytes setzen?

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.554

    Re: Fuse Bits ATMega168

    Zitat Zitat von oberallgeier heute um 09:08
    ... ich denke Du wirst nur ein einziges Häkchen setzen - das bei SPIEN ...
    Ciao sagt der JoeamBerg

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    21
    Aha, bezog sich auf den Abschnitt

    Manual fuse bits configuration

    Für mich (zum mitschreiben)

    • CKSEL = 1111
      SUT = 11


    Dumme Frage des Laien am Rande:
    CKDIV8=0
    würde bei externem Takt von 8MHz den Prozessor intern mit einem MHz takten ? (Ich geb's ja zu, bin noch nicht dazu gekommen, mich in diverse Datenblätter zu vertiefen. Das Meiste hab ich bislang aus den Büchern "Mehr Spass mit dem Asuro")

    Vielen Dank für die Hilfe. Ich werde es heute Abend ausprobieren - wohl am besten mit avrdude.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Ich verwende folgende Einstellungen für den Asuro mit ATmega168 und 8MHz Quarz.
    Low: FF, High: DD, Extended: F9
    Das enspricht folgenden Einstellungen:
    CKSEL = 1111 (8MHz ext. Crystal Osc 8.0-Mhz)
    SUT = 11 (Startup Delay maximum)
    BODLEVEL 101 (2,7V)
    SPIEN = 0 (enable, kann man nicht durch ISP ändern)
    BOOTSZ = 00 (1024words, ist egal, solange kein Bootloader verwendet wird)

    alle anderen Fuses auf 1, nicht programmiert, kein Haken

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    21
    tja, ich hab ihn wohl geschrottet:
    • - ich hab alle drei Bytes in einer Zeile übergeben (avrdude -cstk500v2 -pm168 -Pcom4 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m -U efuse:w:0xf9:m)
      - dann hat avrdude Eines nach dem Anderen mit viel Protokoll geschrieben und verifiziert
      - dann meldete das Programm einen Fehler im Verify des extfuse
      - dann hab ich wohl erschrocken dem Falschen zugestimmt
      - der USB-Programmer verschwand in einer Endlosschleife (LED signalisierte Zugriff auf den Controller, jedoch keinerlei Rückmeldung mehr)
      - in meiner Verzweiflung hab ich ihn vom USB-Kabel getrennt
      - und nun hab ich wieder meinen schönen Fehler "stk500v2_command(): command failed" - auch bei einem ATMega8, der definitiv "noch tut" und auch bei einem ASURO 16K (soll ja wohl auch ein ATMega168 sein)


    Und darin sind sich der avrdude und AVR-Studio konsequent einig. Ich weiss nun nicht mal genau, was alles platt ist:


    und habe keinen Plan, wie ich das herausbekomme ...

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Das ist ja übel. Ich habe sie Einstellungen nochmals verifiziert und kann keinen Fehler feststellen, der einem vom Prozessor aussperrt. Außer man hat keinen externen Quarz Oszillator dran.

    Die Fehlermeldung beim verify ist allerdings richtig, das ist eine avrdude Macke. Es gibt eigentlich nur 3 extended Bits beim mega168. Die oberen 5 Bits sind irrelevant. Man hätte auch 0x01 programmieren können, dann gäbe es keine Fehlermeldung.

    Funktioniert denn der Prozessor, wenn du ihn direkt auf den Asuro steckst, ohne Sumo Erweiterung? Es könnte ja sein, das das Taktsignal vom Quarz gestört ist. Bei mir steckt der ATmega168 direkt auf dem Asuro.

    Der andere ATmega8, der vom Programmer nicht erkannt wird. Ist das der Original Asuro Prozessor? Wenn ja, ist das auch normal, weil beim Asuro Prozessor ISP deaktiviert ist.

    Was mir noch einfällt. Ist der Atmega168 vielleicht ein ATmega168P. Ich glaube, da gibt es auch leichte Unterschiede bei den Fuses.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •