-
        

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

Thema: AVRprog Fehlermeldung Servo Problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2013
    Beiträge
    23

    AVRprog Fehlermeldung Servo Problem

    Anzeige

    Hallo zusammen,
    brauche mal Eure Hilfe.
    Bekomme bei AVRprog eine Fehlermeldung Address: 0x000,Expected:0x940c,Received:0xfff

    bis Dato hat es eigentlich gut Funktioniert. wollte jetzt mal versuchen mein neuen externen Quarz mit einzubinden !!!
    Habe wohl die falsche Einstellung vorgenommen .
    Kann mir jemand weiterhelfen ????

    Zudem ne frage wenn ich Servos ansteuern will benötige ich doch diesen Externen Quarz ????
    Das Problem ist das die Servos am Endanschlag weiterlaufen wollen und nicht stehen bleiben !!!

    Wäre für jede Hilfe Dankbar !!!
    Gruß Thomas

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Hast du die Fuses falsch gesetzt oder was?
    Kannst du die noch auslesen? Dann poste die mal hier.

    Das die Servos in den Endanschlag laufen, klingt für mich erstmal nach zu langem/kurzem Timing. Das kann natürlich sein wenn dein Programm mit ner anderen Frequenz berechnet ist als der Chip in wirklichkeit Taktet.

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2013
    Beiträge
    23
    Hallo Daniel,
    danke das du dich meldest,ja ich kann die Hex Datei rausladen.
    Aber wie kann ich die hex Datei hier reinstellen es gehen doch nur Bilder hier !!!
    Gruß Thomas

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Die Hex Datei möchte ich auch garnicht haben. Die kann ich nicht lesen bin ja kein Atmega.

    Ich möchte sehen welche Fuses du aktuell gesetzt hast. Ich benutze z.B. den Burn-O-Mat in Verbindung mit AvrDude. Dort kann man die Fuses auslesen.
    Zusätzlich könntest du hier noch deinen Quellcode aus Bascom posten und mir sagen was für einen Quarz du benutzt.

    Gruß Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557
    Hi Thomas!

    Zitat Zitat von Smith-mini-plane Beitrag anzeigen
    ... wenn ich Servos ansteuern will benötige ich doch diesen Externen Quarz ...
    Nein, Servos sind gegenüber geringen Verschiebungen des Signaltimings sehr tolerant, die können getrost mit dem internen Oszillator des Controllers (ist ja ein Atmel !?!) getaket werden (klick hier - mein tiny-Servotester).

    Wenn Deine Servos in den Endanschlag pfeifen, kann es auch daran liegen, dass Du entweder kein oder ein defektes Programm im Controller hast - hast ja Probleme beim Flashen genannt - möglicherweise liegts am der häufigsten Fehler bei der Servoinstallation: fehlender GND-Verbindung zwischen Controller und Servo - klick hier - scrollen, das Schaltbild unten.
    Ciao sagt der JoeamBerg

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2013
    Beiträge
    23
    Hallo
    Anbei mein Bascom Code wie gewünscht , habe extra für mein Servo eine extra Spannungsversorgung vorgesehen zudem habe ich die GND Leitung
    überprüft , aber meine Servos Zittern ohne Ende habe auch versucht andere Ausgaenge zu benutzen , war auch ohne erfolg !!
    Bezüglich Fuses auslesen bin ich dran mus erstmal die passenende Software organisieren zum Quarz 16Mhz .
    Bin jedoch auf meinen Atmega 16 ausgewichen.

    Danke für Eure Hilfe
    Gruß Thomas

    $regfile "m16def.dat"
    $baud = 19200
    $crystal = 1000000
    $framesize = 64
    $swstack = 64
    $hwstack = 64
    Config Timer1 = Timer , Prescale = 8 'timer f¸r Servos
    Enable Timer1
    Timer1 = 62535
    Config Porta = Output
    Porta.0 = 0 'hier haengt servo1
    Porta.1 = 0 'hier haengt servo2
    Porta.2 = 0 'hier haengt servo3
    Porta.3 = 0 'hier haengt servo4

    On Timer1 Servoirq 'servo

    Enable Interrupts

    Dim Kanal As Byte
    Dim Servo(4) As Word 'min: 61535, mitte 62535, max 63535 = 2000 schritte

    Do
    Servo(1) = 61535 'Mitte
    Servo(2) = 62535 'Mitte
    Servo(3) = 63535 'Mitte
    Servo(4) = 62535 'Mitte
    Loop

    Servoirq:
    If Kanal = 0 Then
    If Porta.0 = 0 Then 'wenn port low
    Timer1 = Servo(1) 'dann timer auf entsprechende verzˆgerung
    Porta.0 = 1 'und port anschalten
    Else 'das hier passiert erst bei dem darauf folgenden interrupt
    Porta.0 = 0 'dann port wieder ausschalten
    Incr Kanal 'und den naechsten kanal bearbeiten
    End If
    End If
    If Kanal = 1 Then
    If Porta.1 = 0 Then
    Timer1 = Servo(2)
    Porta.1 = 1
    Else
    Porta.1 = 0
    Incr Kanal
    End If
    End If
    If Kanal = 2 Then
    If Porta.2 = 0 Then
    Timer1 = Servo(3)
    Porta.2 = 1
    Else
    Porta.2 = 0
    Incr Kanal
    End If
    End If
    If Kanal = 3 Then
    If Porta.3 = 0 Then
    Timer1 = Servo(4)
    Porta.3 = 1
    Else
    Porta.3 = 0
    Incr Kanal
    End If
    End If

    If Kanal = 4 Then
    Timer1 = 2000 'eine pause von ca. 12ms bis zum nchsten interrupt. Bei guten Servos oder Brushlessreglern kann man hier bis auf 65530 gehen ==> ansteuerfrequenz von ~ 200Hz
    Kanal = 0
    End If
    Return
    End

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Hallo Thomas!

    Erstmal ein kleiner allgemeiner Tipp: Wenn Du Deinen Code mit "CODE" in eckigen Klammern beginnst, und ihn mit "/CODE" in eckigen Klammern beendest, wird er in so einem Scroll-Fenster dargestellt:

    Code:
    ...
    ...
    Und das ist für alle viel besser zu lesen!

    Aber ich habe auch einen potenziellen Fehler in Deinem Programm entdeckt:

    Bei einer Taktfrequenz von 1 MHz und einem Prescaler von 8 taktet der Timer mit 125 kHz, eine Periode ist somit 8 µs lang. Bewegt sich der Timer-Vorladewert zwischen 63535 und 61535, braucht es also zwischen 2000 und 4000 Takten bis zum nächsten Überlauf. Multipliziert man das mit der Taktdauer von 8 µs kommt man auf eine Impulsbreite zwischen 16 und 32 ms - und das ist definitiv zu lang für Servos! Um den kompletten Stellweg auszunutzen, darf die Impulsbreite nur zwischen etwa (!) 0,8 und 2,2 ms variieren. Bei über 10 ms ist es logisch, dass die Rudermaschine an den Anschlag knallt!

    Für eine Impulsbreite zwischen 1 und 2 ms müsste der Timer also schon nach 125 bis 250 Takten überlaufen, d.h. man müsste ihn in der ISR auf Werte zwischen 65410 und 65285 vorladen, was allerdings "nur" 125 Abstufungen des Stellweges ermöglicht (die allerdings vollkommen ausreichen müssen!!).

    Alternatively lässt Du den Prescaler von 8 einfach weg - dann taktet der Timer mit genau 1 MHz, eine Periode dauert somit genau 1 µs, und damit rechnet es sich auch viel leichter: Für 1 ms müssen 1000 Takte bis zum Überlauf vergehen, d.h. Vorlade-Wert 64535, und für 2 ms 2000, d.h. Vorlade-Wert 63535.

    Wo genau die Grenzen Deiner Servos sind (vermutlich etwas unter 1 ms und etwas über 2 ms), das könntest Du dann ja noch per Feintuning ausloten.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2013
    Beiträge
    23
    Hallo Zusammen,
    habe mal die versuche mit den Servos zurückgestellt .
    Problem habe ich immer noch mit den Fusbits , habe bis dato keine möglichkeit die Fusebits umzustellen.
    Habe mir jetzt das im Forum beschrieben AVR ISP STK Programmer bestellt ( LPT1) Schnittstelle.
    jetzt kann ich die Fusebits einstellen jedoch ist mein Atmel 32 wahrscheinlich defekt siehe Fehlermeldung
    andere Microcontroller geht es !!
    Zudem habe ich die gleiche Meldung bei meinem Atmel 16

    Möchte aber jetzt nicht weiter an den Fusebits rumspielen bevor ich nicht weiss das es funktioniert !!!
    Sonst brauch demnächst ein 10 Pack Atmel 32
    Klicke auf die Grafik für eine größere Ansicht

Name:	Atmel 32_1.jpg
Hits:	7
Größe:	72,6 KB
ID:	25061
    Was ist bei mir falsch gelaufen und kann ich meine zwei Atmels noch retten !!

    Danke für Eure Hilfe

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    04.03.2013
    Beiträge
    23
    Hallo zusammen,
    habs hinbekommen , M-controller läuft jetzt mit externen Quarz , Servos lassen sich jetzt auch ansteuern ohne das sie in die Endlagen laufen !!
    Bis dahin 3 Tote Atmega´s ,aber ich glaube das gehört wohl dazu.

    Jetzt kann ich mal anfangen den Ablauf meines Programms beginnen ( KTW Steuerung )

    Gruß Thomas

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Bis dahin 3 Tote Atmega´s ,aber ich glaube das gehört wohl dazu.
    Na - sooo schnell sterben Mikrocontroller nicht!
    Wenn Du ihn auch mit einem externen Quarz nicht mehr zu laufen bekommst (d.h. Kommunikation über ISP nicht mehr möglich), wirst Du die Taktquelle wahrscheinlich auf einen externen Takt eingestellt haben. Das klingt ähnlich wie externer Quarz und kann daher schnell mal verwechselt werden, der Controller ist hier aber auf ein ausreichend schnelles Rechtecksignal von außen angewiesen (beim Mega16 an Pin 13 (XTAL1) anzuschließen).

    Ein kleiner Rechteckgenerator mit z.B. 1MHz sollte daher in keiner Bastelkiste fehlen - beim großen "C" gibt´s z.B. so etwas für etwas mehr als einen Euro:

    http://www.conrad.de/ce/de/product/1...omSuggest=true

    Damit solltest Du die Dinger wieder zum Leben erwecken (und den Takt wieder auf internen RC-Oszillator umstellen) können!

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Servo Problem --> Servo zuckt beim Einschalten vom AVR
    Von goof1980 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 05.11.2008, 22:20
  2. Antworten: 10
    Letzter Beitrag: 28.01.2007, 17:58
  3. AVRprog Problem
    Von Roboter n00b im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 23.12.2005, 21:49
  4. AVR910+AVRProg -- Neue Software, Protokoll
    Von teslanikola im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 07.12.2005, 19:27
  5. AVR910 mit AVRProg JA, AVRDude NEIN???
    Von JD24 im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 17.05.2005, 13:56

Berechtigungen

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