-         

Ergebnis 1 bis 4 von 4

Thema: PIC18F2550 PWM Pegel nur 1V

  1. #1

    Frage PIC18F2550 PWM Pegel nur 1V

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo zusammen,

    ich möchte einen kleinen Roboter mit 2 Motoren mit einem PIC18F2550 zu steuern.
    Um die Geschwindigkeit der Räder zu ändern verwende ich 2 PWM Signale CCP1 und CCP2.

    Code:
    // 20 MHz Takt
    /** Configuration ********************************************************/
    #pragma config PLLDIV = 2, CPUDIV = OSC1_PLL2, USBDIV = 2, FOSC = HSPLL_HS 
    #pragma config PWRT   = ON
    #pragma config BOR    = OFF
    #pragma config VREGEN = ON 		//USB Voltage Regulator Enable:
    #pragma config WDT    = OFF 	//Watchdog Timer:
    #pragma config MCLRE  = ON 		//MCLR Enable:
    #pragma config PBADEN = OFF 	//PORTB<4:0> pins are configured as digital I/O on Reset
    #pragma config LVP    = OFF 	//Low Voltage ICSP:
    #pragma config CCP2MX = ON 
    
    
    /** V E C T O R  R E M A P P I N G *******************************************/
    // Für den Bootlodader
    extern void _startup (void);        // See c018i.c in your C18 compiler dir
    #pragma code _RESET_INTERRUPT_VECTOR = 0x000800
    void _reset (void)
    {
        _asm goto _startup _endasm
    }
    #pragma code
    
    #pragma code _HIGH_INTERRUPT_VECTOR = 0x000808
    void _high_ISR (void)
    {
        ;
    }
    
    #pragma code _LOW_INTERRUPT_VECTOR = 0x000818
    void _low_ISR (void)
    {
        ;
    }
    #pragma code
    
    void Port_Init(void)
    {    
        TRISA = 0x00;                //PORTA als Ausgang
        TRISB = 0x00;                //PORTB als Ausgang
        TRISC = 0x00;                //PORTC als Ausgang
     
        // Interrupt konfiguration
        RCONbits.IPEN = 0;
        INTCON = 0xC8;            // Enable all Interrupts
        T1CON = 0b00101011;
    //    PIE1bits.TMR1IE = 1;    // Enable Timer1 Interrupt
    //    IPR1bits.TMR1IP = 1;    //
    //    PIR1bits.TMR1IF = 0;    // Timer1 Interruptflag löschen
        // PWM konfiguration
            PR2=0x80;                    //1.:Register PR2 Wert zuweisen
            CCPR1L=0x80;                //2.:
            CCPR2L=0x80;
            CCP2CONbits.DC2B0=0;
            CCP2CONbits.DC2B1=0;
            CCP1CONbits.DC1B0=0;
            CCP1CONbits.DC1B1=0;
            TRISCbits.TRISC2=0;        //3.: CCP1 als Ausgang
            TRISCbits.TRISC1=0;        //        CCP2 als Ausgang
            T2CONbits.T2CKPS1=0;        //4.: TMR2 Prescale setzen (1:2)
            T2CONbits.T2CKPS0=0;        //        Wert egal
            T2CONbits.TMR2ON=1;        //Timer2 ON
            CCP1CONbits.CCP1M2=1;    //5.: CCP1 für PWM konfiguriert
            CCP1CONbits.CCP1M3=1;    
            CCP2CONbits.CCP2M2=1;    //        CCP2 für PWM konfiguriert
            CCP2CONbits.CCP2M3=1;
     
        PORTAbits.RA2 = 1;            //power LED einschalten
    }
    Die PWM kann ich mit dem Oszi messen, jedoch hat die PWM2 nur einen Pegel von 1V und PWM1 wie erwartet 5V.
    Was muss ich machen, damit PWM2 auch 5V hat. (Beide Pins sind unbelastet und nur mit dem Oszi verbunden)

    Danke für eure Antworten.

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    536
    Ich vermute mal ganz blödes: Schlag mich nicht, wenn ich falsch liege:
    Dein Configuratioword
    #pragma config CCP2MX = ON
    ist falsch
    Es setzt nicht den RC1 sondern den RB3 Port für die PWM
    Was dein Ossi Dir anzeigt, ist ein Übersprechen vom nebenliegendem Pin RC2, also der ersten PWM
    Dein zweite PWM kommt aber vermutlich am Pin RB3 raus.
    Häng mal den Ossi an RB3 und guck mal nach, ob Du da eine PWM messen kannst.
    Bin mal gespannt.....

    Lieg ich doch falsch ???
    Laut Anleitung hast Du es richtig gemacht. Ich hab mir grade die Header Datei angesehen.
    ; CCP2 MUX bit:
    ; CCP2MX = OFF CCP2 input/output is multiplexed with RB3
    ; CCP2MX = ON CCP2 input/output is multiplexed with RC1
    Was anderes fällt mir aber nicht dazu ein.
    Geändert von Siro (09.09.2012 um 20:10 Uhr)

  3. #3
    Danke für die Antwort!
    Das CCP2MX bit muss laut Datenblatt ON sein. Ich hab nachdem es nicht funktioniert hat dann aber auch OFF versucht, aber immer nur an RC1 gemessen.
    Jetzt messe ich egal ob ON oder OFF die PWM2 immer an RB3.
    Mit dem übersprechen auf den anderen Pin hast du absolut Recht, was ich durch verschiedene duty cycle nachgewiesen hab.

    Was muss ich noch anders machen, um die PWM2 an RC1 zu bekommen?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2007
    Ort
    Berlin
    Beiträge
    536
    Dann lag ich ja doch nicht so falsch.
    Das ist schon merkwürdig, was da passiert.
    Das klingt so, als wenn dein Configurationword nicht richtig programmiert wird.
    Ich vermute mal Du arbeitest mit MPLAB 8.xxx
    Dort kannst Du einstellen ob das Configurationsword vom Programmcode oder separat (Manuell) eingestellt wird.
    Menüleiste "Configure"
    Da gibt ein Kästchen "Configuration Bits set in code." Dieser Haken muss gesetzt sein.
    Ansonsten könnte es auch am Programmer bzw. den Einstellungen liegen.
    Du kannst, je nach Modell einstellen, ob das Configuration Word mitprogrammiert werden soll oder nicht.
    Was benutzt Du denn zum Programmieren ?
    MPLAB Version / Programmer ?
    Vielleicht solltest Du mal ein "Bulk Erase" machen . Also den kompletten Chip löschen.

Ähnliche Themen

  1. I2C auf PIC18F2550
    Von IchKG im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 28.08.2009, 10:02
  2. PIC18F2550
    Von blitzgeist im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 07.06.2007, 07:57
  3. PWM und Schrittmotorem im PIC18F2550
    Von galdo im Forum PIC Controller
    Antworten: 8
    Letzter Beitrag: 19.03.2007, 14:52
  4. Interruptverwaltung bei PIC18F2550
    Von KRM im Forum PIC Controller
    Antworten: 0
    Letzter Beitrag: 14.03.2007, 10:13
  5. USB-Probleme mit PIC18F2550
    Von PasstScho im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 27.02.2006, 13:44

Stichworte

Berechtigungen

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