- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 15

Thema: PWM Frage

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Ja, da meine Schaltung sozusagen schon fertig ist und ich die Software PWM als kleines Extra noch hinzufügen wollte, da ich noch ein paar Schalter frei habe und somit meine Frequenz veränderbar machen wollte.
    Mit deinem INHn meinst du den enable pin, oder ?
    Die PWM wollte ich schon über Polling laufen lassen, da mir der µC meinen Roboter ja nicht auf einmal im rückwärtsfahren stehen bleiben soll, weil er in den Interrupt springt.
    Leider sind meine Bilder zu groß, sonst hätte ich sie hochgeladen um mal zu veranschaulichen wie mein Stand der Dinge ist.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.11.2004
    Ort
    Hvalstad, Norwegen
    Beiträge
    140
    Im Datenblatt wird auf das Programmable Counter Array (PCA) verwiesen, das kann die PWM in Hardware erzeugen. Du must nur das Tastverhältnis der PWM ändern und die Zähler starten / stoppen. Danach läuft das ganze im Hintergrund und frisst keine Resourcen.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Regnator Beitrag anzeigen
    . . . meine Schaltung sozusagen schon fertig ist . . . Software PWM als kleines Extra noch hinzufügen . . . ein paar Schalter frei habe und somit meine Frequenz veränderbar machen wollte.
    Da will sich mir der Sinnzusammenhang einfach nicht erschließen! PWM ist kein kleines Extra sondern eine wichtige Funktionalität zur Begrenzung der Anlaufströmer der Motoren und zur Regelung des Geradeauslaufs. Frequenz und PWM (wohl eher Duty Cycle der PWM) sind zwei verschiedene Dinge. Wenn du noch in der Entwicklung bist, dann kümmere dich um dein Verständnis der OnChip-PWM-Erzeugung und lege die Schaltung dafür aus. Dafür sind die Peripheriemodule ja da. Kein Polling für Dinge, die eigentlich selbständig im Hintergrund laufen können. Anders gesagt: Es ist nicht die Aufgabe des Chefs (Hauptprogramm), stündlich (jede Millisekunde) zu kontrollieren, ob noch Klopapier auf der Rolle ist. Derartiges wird delegiert. Wenn du das jetzt nicht verbesserst, wirst du dich später bestimmt ärgern, weil du dir damit die Karten gelegt hast.
    Zitat Zitat von Regnator Beitrag anzeigen
    Mit deinem INHn meinst du den enable pin, oder ?
    Ja. Das n steht für die Ziffern 1 bzw. 2 der beiden quasi gleichartig wirkenden Inhibit-Eingänge des L298.
    Zitat Zitat von Regnator Beitrag anzeigen
    Die PWM wollte ich schon über Polling laufen lassen, da mir der µC meinen Roboter ja nicht auf einmal im rückwärtsfahren stehen bleiben soll, weil er in den Interrupt springt.
    Nein, nein, nein; sorry, aber das ist Unfug. Jedes Bit, jeder Pin behält seinen Zustand bei, solange, bis er vom Programm, von der Hardware oder der nächsten Stromunterbrechung verändert wird. Und das ist alles genauestens geordnet und im Datenblatt beschrieben. Ein Interrupt stört da entweder überhaupt nicht, oder man hat ihn falsch programmiert; aber das lässt sich ja korrigieren. Ganz im Gegenteil: Man _kann_ einen Interrupt als SW-Treiber für die Hardware konzipieren, sodass das Hauptprogramm letztlich unabhängig von der Hardware und Chip-individuellen Registerstruktur nur noch über Statusflags, Messwertvariablen und Steuervariablen im SRAM mit der Hardware Verbindung hat. Der Interrupt wirkt dann als "dienstbarer Geist" oder Haushalter unbemerkt im Hintergrund und managt die ganze Chose.
    Geändert von RoboHolIC (24.04.2013 um 16:00 Uhr) Grund: Ergänzung L298

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Klicke auf die Grafik für eine größere Ansicht

Name:	20130326_123411.jpg
Hits:	8
Größe:	42,3 KB
ID:	25234

    Aktuelles Aussehen:Klicke auf die Grafik für eine größere Ansicht

Name:	20130425_080607.jpg
Hits:	11
Größe:	46,9 KB
ID:	25235

    Die grünen Platinen sind vorgegeben und dürfen nicht verändert werden. Desweiteren muss der AT89C5131 verwendet werden.

    Meine Frage zu dem ganzen Thema ist eigentlich wie ich eine Pwm einbaue die noch freie Schalter auf der Platine abfragt und den Motor dann entsprechende langsamer fahren lässt.

    Mein Programm sieht vereinfacht so aus :

    1. Frag die Sensoren ab
    2. Wenn vorne frei ist, dann fahr nach vorne.
    2a. Wenn nicht frei ist dann überprüfe ob hinten frei ist
    3.Wenn frei ist dann fahr zurück und drehe.
    3a. Wenn nicht frei ist, dann drehe so lange bis frei wird.

    Ich habe hier auch schon das PDF für eine PWM für diesen µC gefunden, allerdings würde ich gerne wissen wie ich eben bei den Unterprogrammen den Wert der PWM sozusagen auf den Motorenpins ausgebe / auf dem Inhibit.

    http://www.atmel.com/Images/doc4345.pdf
    Geändert von Regnator (25.04.2013 um 07:07 Uhr) Grund: Aktuelles Aussehen

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Regnator Beitrag anzeigen
    Die grünen Platinen sind vorgegeben und dürfen nicht verändert werden. . . .
    Meine Frage zu dem ganzen Thema ist eigentlich wie ich eine Pwm einbaue die noch freie Schalter auf der Platine abfragt und den Motor dann entsprechende langsamer fahren lässt.
    1) Option Software-PWM wurde bereits diskutiert; ist für jeden beliebigen Pin des Controllers realisierbar.
    2) Option Hardware-PWM des Controllers: klappt ohne Änderung der Platine oder der Verdrahtung nur, wenn der Motor-steuernde Pin (zufällig) der PWM-Ausgangs-Pin des Controllers ist.
    3) Bestimmt dürfen die Flachbandkabel verändert werden, das ist ja reversibel, bzw. man knipst sich einen neuen Satz von Kabeln, die man dann modifiziert
    4) Punkt 3 schließt die Option mit ein, einen externen PWM-Erzeuger in die Flachbandkabel einzuschleifen: nicht benötigte Signale werden 1:1 weitergereicht; PWM aus I2C-Chip, UND-verknüpft mit dem bisherigen MOTOR_EIN, werden zum L298 verdrahtet

    Zitat Zitat von Regnator Beitrag anzeigen
    allerdings würde ich gerne wissen wie ich eben bei den Unterprogrammen den Wert der PWM sozusagen auf den Motorenpins ausgebe / auf dem Inhibit.
    Ach, kommst du doch an den /INH des L298 ran? Dann braucht es weder in SW noch in HW eine UND-Verknüpfung.

    Deine Informationen kommen leider ziemlich spärlich und nur tröpfchenweise hier an; was den /INH des L298 angeht, sind sie sogar konträr, denn im Beitrag #6 hast du explizit nach SW-PWM und der Möglichkeit einer SW-UND-Verknüpfung gefragt und nun fragst du wieder nach der HW-Lösung! Vielleicht zeigst du uns jetzt einfach mal die Schaltpläne; daran entscheidet sich die Machbarkeit im status quo (ausgenommen SW-PWM, denn die ist in jedem Fall irgendwie realisierbar). Und kläre, ob eine Lösung mit zwischengeschalteter Platine erlaubt/gewünscht ist. Erst wenn die Karten auf dem Tisch liegen, kann man dich sinnvoll beraten.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Klicke auf die Grafik für eine größere Ansicht

Name:	schaltplan.jpg
Hits:	11
Größe:	36,3 KB
ID:	25237Klicke auf die Grafik für eine größere Ansicht

Name:	platine.jpg
Hits:	6
Größe:	77,5 KB
ID:	25238

    Ich wäre definitiv an einer Softwäre PWM interessiert, eine Hardware PWM würde bedeuten, dass ich eine neue Platine fräsen/bestücken müsste
    Ja ich darf so viele Platinen zwischenschalten wie ich will, allerdings ist der I²C port durch meinen ADC belegt. (Kleinere grüne Platine)

    Punkt eins wäre für mich am besten.
    Und ja ich kann den Enable meines L298 über meinen µC schalten

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Hi Regnator,

    ein letzter Überzeugungsversuch von mir, dann hör' ich mit dem Predigen auf, versprochen!

    Der Verdrahtungsaufwand für einen I2C-Chip ist vergleichsweise minimal, das geht auch sehr gut von Hand verdrahtet.

    Mag sein, dass dein I2C-Port derzeit nur den ADC bedient; belegt im Sinne von "mehr geht nicht" ist er damit aber nicht.
    I2C ist ein Bus, es sind mehrere I2C-Slaves an einem Bus möglich. Zur Not kann die fixe PWM duty cycle ja beim Programmstart via I2C initialisiert werden, der restliche Code bleibt unverändert und man fährt weiterhin mit Standgas durch die Gegend. Man kann aber auch mit beiden I2C-Bausteinen im Wechsel kommunizieren, ohne dass die Verzögerungen bei der Analogerfassung die Reaktionsfähigkeit des Gefährts spürbar beeinflussen und deine von mir vermutete praktische Studienleistung kriegt mehr Niveau. Nix für ungut.

    Gruß
    RoboHolIC

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    27.07.2012
    Beiträge
    10
    Naja ich lass das dann mal mit der PWM, da Abgabe bereits am Donnerstags ist und ich bis dahin nicht alle Platinen wieder bestückt/ gelötet bekomme.
    Aber Danke für Euren Einsatz!
    Es war "nur" ein Projekt für meine Berufsschule und meine eigenen Vorgaben, die erfüllt werden mussten sind, dass es Gegenständen selbstständig ausweicht.
    Trotzdem nochmal Danke für Eure Bemühungen.
    Vielleicht werde ich es nochmal nach der Benotung verändern, die Möglichkeiten dafür sind gegeben.

Ähnliche Themen

  1. Frage zu pwm
    Von tanger im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 05.11.2008, 06:57
  2. PWM Frage
    Von Martin. im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 22.07.2008, 16:01
  3. Frage zu PWM
    Von doolitle15 im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 15.09.2007, 12:15
  4. Kurze Frage zur PWM
    Von x8r im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 15:40
  5. PWM DC/DC Wandler Frage
    Von guiliman im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 24.06.2006, 12:06

Berechtigungen

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

LiFePO4 Speicher Test