-
        

Ergebnis 1 bis 10 von 10

Thema: Problem mit der PWM Ausgansfrequenz [Gelöst]

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141

    Problem mit der PWM Ausgansfrequenz [Gelöst]

    Anzeige

    Hallo

    Ich arbeite gerade an der Motor-Treiber Einheit an meinem Roboter. Dabei bin ich auf ein Problem mit der PWM Ausgangsfrequenz gestossen: Die Gemessene Frequenz ist um ein Vielfaches kleiner, als die berechnete. Ich habe dazu einen Thread im Hardware-Forum eröffnet:

    http://www.roboternetz.de/phpBB2/vie...=337405#337405

    Dieser Tread hat ergeben, dass es sich wohl um ein Bascomspezifisches Problem handeln muss

    Ich hoffe ihr findet eine Lösung..

    mfg Borki90

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ich hab´ zwar erst 2 Projekte mit PWM realisiert (eines davon ebenfalls zur Servo-Ansteuerung), konnte aber nicht feststellen, dass es Bascom-spezifische Probleme gibt. Wenn, dann hätte ich sie mit Sicherheit entdeckt und "mitgenommen"

    Der Formel (Quarzfreuenz/Prescaler)/(Zählermaximum * 2) ist nichts hinzuzufügen - sie stimmt, und hat bei mir auch immer korrekte Ergebnisse geliefert. In Deinem Fall wären das (16.000.000 / 8 ) / (256 * 2) = 3906 Hz, und nicht 15kHz, das schon mal vorneweg.

    Auffällig ist, dass zwischen den erwarteten 3906 Hz und den von Dir gemessenen ca. 480 Hz ziemlich genau der Faktor 8 liegt. Könnte es sein, dass in den Fuse-Bits ganz versteckt ein interner Takt-Teiler /8 aktiviert ist?

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    Ohh Mann.... So wie es aussieht habe ich mich einfach verrechnet....

    Prescaler ist 64. Ich habe wohl den Falschen Code ins Forum kopiert.. Daraus entstehen dann 490Hz...

    Unter Auflösung habe ich nähmlich 8 (warum eigentlich ) genommen..

    EDIT: Ach ja, vielen dank für die Antwort (währe wohl nie selbst darauf gekommen... Frohe Festtage

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    Es geht immer noch nicht.. Ich habe folgendes kleines Testprogramm geschreiben, um das ganze zu testen:

    Code:
    $regfile = "m8def.dat"
    
    $crystal = 16000000
    
    $baud = 9600
    
    
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    
    Config Timer1 = Pwm , Pwm = 9 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
    
    
    Wait 1
    Print
    Print "V 2.5.5_Test"
    Print
    Wait 1
    
    
    Do
    
    Wait 1
    
    Pwm1a = 512
    Pwm1b = 512
    
    Wait 1
    
    Pwm1a = 0
    Pwm1b = 0
    
    Loop
    Laut meinem Wissen, sollte da die beiden LED's an den PWM Ausgängen nur blinken.. Jedoch leuchten sie auch, bei PWM1a = 512.. Ausserdem messe ich eine Frequenz von 7kHz
    (Ist jetzt auch sicher der Richtige Code.. ^^)

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Also - ich komme auf eine Frequenz von 15625 Hz (16.000.000)/(512*2). Was sich in diesem Bereich abspielt, wird dem bloßen Auge mit Sicherheit vorenthalten bleiben.

    Mit PWM=9 legst Du ja fest, dass nur die ersten 9 Bits des Zählers mit den ersten 9 Bits des Output-Compare-Registers verglichen werden sollen. Da die 512 binär aber 1000000000 ist, sind die ersten 9 Bits absolut identisch mit denen der Zahl 0. Für den Controller ergibt sich also absolut kein Unterschied!

    Versuch´s doch mal mit "0" und "511" (=111111111) - da müsste es einen sichtbaren Unterschied geben. Und bei "256" müsste die LED mit halber Helligkeit leuchten, da Du ein Ausgangssignal mit einem Impuls-Pausen-Verhältnis von 1:1 erhältst.

    Bin gespannt auf weitere Ergebnisse - merry Xmas!

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    Vielen Dank, werde das morgen ausprobieren..

    Wünsche dir auch merry Xmas!

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    Irgendwie scheint das mit 9Bit nicht zu klappen:

    -Die LED leuchtet auch bei 511..
    -Die Frequenz ist 7.8kHz (habe auch 15 kHz berechnet..)


    Jetzt bin ich auf 10bit gegangen. Damit erreiche ich auch 7.8khz (gemessen und berechnet ), was für den L298 erträglich sein sollte.. Jetzt funktioniert alles einwandfrei.

    Aber auch hier muss ich 1023 statt 1024 nehmen, wo ich nie darauf gekommen währe..

    Vielen dank für die Hilfe

    mfg Borki90

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Jetzt funktioniert alles einwandfrei.
    Das ist ja schön! By the way - "erträgliche" PWM-Frequenz klingt irgendwie so, als sei dieser Parameter eher kritisch. Auf diesem Gebiet hab´ ich leider eine ziemliche Wissenslücke, vielleicht kannst Du mir da weiterhelfen?
    Ich möchte einen ziemlich groben Motor (12V, 2kW) für eine Modellflug-Winde PWM regeln. Als PWM-Frequenz hatte ich aber (aus Modellbau-Foren angeschaut) etwa 500Hz ausgewählt. Hängt die optimale PWM-Frequenz denn von der Leistung des Motors ab, oder was kann man dabei als Anhaltspunkt heranziehen?

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    Ich war mal wieder zu voreilig.. läuft immer noch nicht , aber der Fehler, liegt nicht an der Softwar, denn mit 2LED's Läuft das ganze herforragend..

    Bezüglich der Frequenz bin ich leider auch nicht wirklich gebildet.. ich habe mich an diesem Thread orientiert:

    http://www.roboternetz.de/phpBB2/zei...t=l298+problem

    Ich werde mich aber jetzt, da es immer noch nicht richtig läufft, genauer über dieses Thema orientieren.. Ich kann dann meine (hoffentlich) gewonnenen Kentnisse an dich weitergeben.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.06.2006
    Ort
    Schweiz
    Alter
    27
    Beiträge
    141
    So, das Problem ist endlich gelöst...
    Es lag nicht an der Frequenz. Sondern, an der Schaltung. Ich habe mich am RN Wiki orientiert, dass man bei einer nicht benötigten Strommessung die Widerstände an den Sens Eingängen nicht einbauen muss. Inzwischen habe ich erfahren, dass diese Widerstände auch sonst benötigt werden. Mit ihnen lauft alles einwandfrei..

    Ich habe auch gleich einen Vermerk im RN Wiki geschrieben..

    Ein Video wird auf meiner Page Borki90.roboterbastler.de folgen

    mfg Borki90

    PS: Das Ganze läuft jetzt mit einer Frequenz von 4.7kHz

Berechtigungen

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