16F1827 setup


Closed Thread
Results 1 to 26 of 26

Thread: 16F1827 setup

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    I am not all that familiar with this chip yet.
    Neither am I. That's the 1st bit of code I've compiled or tested on this one.
    How is it different than the 16F877A using PWM1 at 38.8Khz and sending serial data out on say RB4 data out?
    Quite a lot. With the 16F1827 you only need a single pin. Here's a schematic;
    RB3 ----/\/\/\-----|>|---GND.

    Or you could use an NPN transistor if you need more range. Look at the logic picture below.

    The top signal is the modulated data output from RB3 MODOUT. The lower signal is
    the USART TX output.

    Here's a copy of the previous code with better explanations, and both the USART TX out,
    and PWM output pins disabled.
    Code:
    ' MODOUT, RB3, outputs whatever you send with HSEROUT as a 40kHz
    ' modulated data stream. 
    
    ASM
      __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
      __config _CONFIG2, _PLLEN_OFF & _LVP_OFF & _VCAPEN_OFF & _LVP_OFF & _STVREN_OFF
    ENDASM
    
    DEFINE OSC 8
    DEFINE HSER_BAUD 2400  
    Duty VAR WORD
    TRISB = 0
    
    Init:
      CCPTMRS = %00000000  ' CCP1 is based off Timer 2 in PWM Mode
      PR2 = 49             ' Set PWM for ~40kHz
      CCP1CON = %00001100  ' Mode select = PWM
      T2CON = %00000100    ' %00000100 = TMR2 ON 1:1 prescale
    
      Duty = 100           ' Roughly 50% duty cycle
      CCP1CON.4 = duty.0   ' Setup 10-bit duty cycle as
      CCP1CON.5 = duty.1   ' a 10-bit word
      CCPR1L = DUTY >> 2
      APFCON0 = 1          ' Assigns CCP1 PWM output to RB0 (RB3 is used for MODOUT)
      OSCCON = %01110000   ' 8MHz internal
      ANSELA = 0           ' all digital. A/D disabled
      ANSELB = 0
    
      ' Data Signal Modulator setup
      ' Notes: 
      ' MDSRC.7 = 1, which eliminates the USART TX signal output on RB2/TX.
      ' The PWM output signal, on CCP1 pin, which is set to RB0 with APFCON0=1
      ' has been disabled by setting MDCARL.7
      ' So even with the hardware USART outputting data, and PWM on, thier output pins
      ' are disabled. PWM and the serial data output from the USART are "mixed" internally
      ' by the Data Signal Modulator.
    
      MDCON = %11100000    ' modulator, MODOUT pin, slew rate limiting enabled
      MDSRC = %10001010    ' USART TX is modulation source, TX output "pin" disabled
      MDCARH = %00000000   ' carrier OFF during idle periods
      MDCARL = %10000100   ' carrier ON only when sending data, CCP1 PWM "pin" output disabled
    
    Main:
      HSEROUT [$55]        ' sends USART data out modulated at 40kHz
      PAUSE 500
      GOTO Main
      END
    Even with PWM on, and the USART sending data, there is no PWM output on the CCP1 pin
    or data output on the USART TX pin. Both signals are mixed internally by the DSM,
    and output only on RB3 or MODOUT.

    I only had the USART TX pin output enabled to capture the logic analyzer traces below to
    show the MODOUT signal compared to the USART TX output signal.
    Attached Images Attached Images  
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  2. #2


    Did you find this post helpful? Yes | No

    Question

    Hello Bruce,

    I tried to compile your code, it had many errors. I have PBP 2.60, using PB assembler (not MASM). I went through the PI14EEXT.BAS and made the changes you advised. I have 1 error left "CCPTMRS". This does not exist in the PI14EEXT.BAS, only CCPTMRS0 and CCPTMRS1.

    Which of these did you intend?

    thanks!
    Nick

  3. #3
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Hi Nick,

    Add CCPTMRS to your PI14EEXT.BAS file. There were several register definitions missing.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  4. #4


    Did you find this post helpful? Yes | No

    Question

    Hello Bruce,

    I made the changes, still nothing. I am getting a bunch of errors saying that the 16F1827.inc could not be found. It is giving me a BUNCH of errors. Errors for symbol not previously defined portA, PortB, portC...etc.

    I found the 16F1827.inc within the PBP directory, opened it up and it says not to use PB assembler, but rather MPASM. So I selected MPASM as my assembler, still I am getting a ton of errors using MPASM. I have never seen this many errors ever...wow.

    Nick

  5. #5
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Does your version of MPASM support the PIC16F1827?

    If it does you should have a P16F1827.inc file in your MPASM directory. If not, you need to
    update to the latest version. Without the include file it will return a ton of errors.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  6. #6
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Question

    Hi, Bruce

    Sorry for Nick,

    But once mods done in the EEXT and 1827.inc files ... everything fine ( may I say : as usual .... )

    BTW: no CCPTMRSx alert ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

  7. #7


    Did you find this post helpful? Yes | No

    Question

    Bruce,

    I have IDE 7.52. No didn't see the 16F1827.INC in the MPASM directory....sigh. If I upgrade now will it screw up all my other working code for other chip bodies?

    ggrrrrr.

    Best Regards,
    Nick

  8. #8
    Join Date
    May 2004
    Location
    NW France
    Posts
    3,653


    Did you find this post helpful? Yes | No

    Unhappy I do not believe it !!!

    Quote Originally Posted by Macgman2000 View Post
    I have IDE 7.52. No didn't see the 16F1827.INC in the MPASM directory....sigh. If I upgrade now will it screw up all my other working code for other chip bodies?

    ggrrrrr.
    You're joking Nick ???

    MPLAB is @ 8.43 Version !!! ... Ok if PBP 2.60 already is on your computer.

    v 8.15 if not ...

    No soucy when Upgrading MPLAB ...

    Not forbidden ( read recommended ) to save your projects files BEFORE upgrading ...

    Alain
    ************************************************** ***********************
    Why insist on using 32 Bits when you're not even able to deal with the first 8 ones ??? ehhhhhh ...
    ************************************************** ***********************
    IF there is the word "Problem" in your question ...
    certainly the answer is " RTFM " or " RTFDataSheet " !!!
    *****************************************

Similar Threads

  1. 16F913 setup
    By Andre_Pretorius in forum General
    Replies: 31
    Last Post: - 17th April 2010, 23:45
  2. TMR1 external LP xtal setup check
    By comwarrior in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 13th October 2009, 18:11
  3. ADCIN setup for PIC16F688
    By PixController in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 29th February 2008, 18:38
  4. ADCIN setup help need
    By dangill in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 26th February 2008, 15:22
  5. Use Button For setup
    By tump in forum mel PIC BASIC Pro
    Replies: 14
    Last Post: - 21st November 2007, 19:43

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts