dtmfout problem


Closed Thread
Results 1 to 23 of 23

Thread: dtmfout problem

Hybrid View

  1. #1
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Any real circuit and code of that? Are you using 20MHz crystal?

    The noise is always there?
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

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


    Did you find this post helpful? Yes | No

    Lightbulb

    Hi,

    From the data I have here,...

    I see a damping 680 Ohm res. on the Pic side of the line trafo. ( // with the winding !!! )

    On the line side :

    in series with the primary :

    750 Ohms 2W // 1µF // TPJ ( to limit current to ~ 35 mA )

    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 " !!!
    *****************************************

  3. #3
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    Hi,
    I am using 20Mz
    I think the problem is more hardware than software..



    code:/
    '*************************
    '* Alarm system dialer *
    '*************************


    '//////////////////////////////
    '// Pic chip configuration //
    '//////////////////////////////

    INCLUDE "modedefs.bas" 'Includes supoprt for PicBasic language
    @ DEVICE pic16F88,CCPMX_ON

    ' Setup Crystal oscillator Frequency to be used by PIC chip in MHz
    DEFINE OSC 20 'use external 20mhz crystal

    ANSEL = 1
    CMCON = 7 ' Turn OFF the comparators so pins can be used as digital I/O-pins

    '///////////////////////////////////////
    '// Screen initialization //
    '///////////////////////////////////////


    DEFINE LCD_DREG PORTB ' Set LCD Data port
    DEFINE LCD_DBIT 4 ' Set starting Data bit (0 or 4) if 4-bit bus
    DEFINE LCD_RSREG PORTA ' Set LCD Register Select port
    DEFINE LCD_RSBIT 2 ' Set LCD Register Select bit
    DEFINE LCD_EREG PORTA ' Set LCD Enable port
    DEFINE LCD_EBIT 3 ' Set LCD Enable bit
    DEFINE LCD_BITS 4 ' Set LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 2 ' Set number of lines on LCD

    DEFINE LCD_COMMANDUS 2500
    DEFINE LCD_DATAUS 250
    DEFINE CHAR_PACING 2000
    pause 2000


    '/////////////////////////
    '// PIN configuration //
    '/////////////////////////

    TRISA = %00011000 ' Set PORTA to all input
    TRISB = %11111111 ' Set PORTB to all output
    PortA = 0


    '///////////////////////////////////////////////
    '// Variable Declaration and initialization //
    '///////////////////////////////////////////////


    counter var byte
    i var byte
    counter=0


    '//////////////////////////
    '// Program starts here //
    '//////////////////////////

    Main:
    lcdout $FE,1, "Counter:",dec counter
    Pause 500

    if PortA.4=1 then
    counter=counter +1 'Counter at 1 dials phone number
    goto Dial
    endif

    if PortA.4=0 then
    counter=0
    goto Main
    endif

    '//////////////////////////
    '// End of program here //
    '//////////////////////////

    Dial:
    'Determine which number to dial and dials it

    lcdout $FE,1, "Dial:",dec counter
    Pause 500

    if counter =1 then 'begin counter loop
    if PortB.0 = 1 then GOSUB Dial1760 'cel
    if PortB.1 = 1 then GOSUB Dial4392 'Ken
    if PortB.2 = 1 then GOSUB Dial9130 'Donald
    if PortB.3 = 1 then GOSUB Dial758 'Lyne
    Else
    counter =1
    goto Main
    endif 'end counter loop

    Pause 1000 'pause for 1 seconds
    if (counter > 1) or (counter =0) then counter =1

    'Keep counter to 1 after dialing, otherwise the program will keep dialing the number
    ' Will only redial if counter goes back to 0, that is alarm siren off

    goto Main



    '*************** subroutine here ********************
    Dial1760: 'cel
    lcdout $FE,1, "dialing1760 ",dec counter
    Pause 500
    PortA.1 = 1
    pause 3000
    DTMFOUT PortA.0, [5,1,4,4,4,4,4,4,4,2]
    pause 4000 'Pause 4 seconds
    DTMFOUT PortA.0, 20000,0, [5]
    pause 2000 'Pause 2 seconds
    PortA.1 = 0
    return

    end

    /end code

  4. #4
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    I think I might got the probe switch to 10x instead of 1x.. that would explain the 40v. I will check it once I get home...
    if so I guess I would have would have something like 3.7v output peaks on the pin.

  5. #5
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    Ok , the scoipe was set at 100x. now I read 4v at the output, but still a lot of noise after the filter, and only dials 50% of the times

    k

  6. #6
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by lerameur View Post
    but still a lot of noise after the filter, and only dials 50% of the times
    k
    Well, the PBP manual does say that any 'sound' output from the PIC, being 1-bit analog, is going to be 'noisy', a lot of harmonic content. And I would think that even if it's filtered well, it would still have a load of 'noise' in it. A low-pass 'brick wall' filter, with a steep 'slope/cutoff', with the -3db point set just above your highest frequency might handle that.
    I guess I'm not really sure. I haven't relied on the PIC to do much sound (other than moving MP3 data back and forth for a player).

  7. #7
    Join Date
    Sep 2006
    Posts
    747


    Did you find this post helpful? Yes | No

    Default

    I was initially thinking of going with a specialized DTMF chip. They are hard to get around here

Similar Threads

  1. Button problem driving me crazy!! Please help!
    By bearpawz in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 20th November 2007, 15:46
  2. USART Problem , but don't know where, in pc? or in PIC?
    By precision in forum mel PIC BASIC Pro
    Replies: 0
    Last Post: - 15th July 2007, 09:12
  3. Microcode Studio 18f2455 problem?????
    By volkan in forum mel PIC BASIC Pro
    Replies: 11
    Last Post: - 21st May 2007, 22:04
  4. 1 slave 1 master 1 MAX232 1 problem ?
    By SuB-ZeRo in forum mel PIC BASIC Pro
    Replies: 19
    Last Post: - 31st July 2005, 23:59
  5. PORTA.PinNo = 1 ' problem
    By frank small in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 6th May 2004, 15:30

Members who have read this thread : 0

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