CM8880PI DTMF transceiver confugration problems.

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
HI

I used the hardware configuration shown in
http://www.parallax.com/dl/docs/cols/nv/vol1/col/7.pdf
connected to a PIC16F877A,but  had problems of instability.    
I configure bad the CM8880PI?

The source code here:

#DEFINE        RW              PORTE,0         ; RE0 Read/Write
#DEFINE        RS              PORTE,1         ; RE1 Register Select
#DEFINE        CS              PORTE,2         ; RE2 Chip Select

Re: CM8880PI DTMF transceiver confugration problems.
HI

I used the hardware configuration shown in
http://www.parallax.com/dl/docs/cols/nv/vol1/col/7.pdf
connected to a PIC16F877A,but  had problems of instability.    
I configure bad the CM8880PI?

The source code here:

#DEFINE        RW              PORTE,0         ; RE0 Read/Write
#DEFINE        RS              PORTE,1         ; RE1 Register Select
#DEFINE        CS              PORTE,2         ; RE2 Chip Select

Re: CM8880PI DTMF transceiver confugration problems.
HI

I used the hardware configuration shown in
http://www.parallax.com/dl/docs/cols/nv/vol1/col/7.pdf
connected to a PIC16F877A,but  had problems of instability.    
I configure bad the CM8880PI?

The source code here:

#DEFINE        RW              PORTE,0         ; RE0 Read/Write
#DEFINE        RS              PORTE,1         ; RE1 Register Select
#DEFINE        CS              PORTE,2         ; RE2 Chip Select


       movlw  b'00000111'
       movwf   PORTE                   ; RW,RS,CS = 1
      
       call    DELAY250                ; 250 mS Delay

;******************************************************************************
; Configure the internals registers
;******************************************************************************
      
       bcf     RW                      ; Write mode
       bsf     RS                      ; Internal register
      
       bcf     CS                      ; CS = 0              

       movlw   b'00001001'             ; to A register
       movwf   PORTD          

      
       movlw   b'00000000'             ; to B register
       movwf   PORTD
      
       bsf     CS                      ; CS = 1

;******************************************************************************
; To sending DTMF code
;******************************************************************************
      
       bcf     RW                      ; Write mode
       bcf     RS                      ; Output register

       movlw   (The code to send)
       movwf   PORTD
       bcf     CS
       nop
       bsf     CS

                
Note:
The PORTD is used to data bus from CM8880.
The phi2 input is connected to Vcc by 3.3Kohm resistor.
 

Somebody knows the correct form of configuring and operate the CM8880?


Thank you in advance

Re: CM8880PI DTMF transceiver confugration problems.
Not sure, but try doing this:

       bcf     RW                      ; Write mode
       bsf     RS                      ; Internal register
      
       movlw   b'00001001'             ; to A register
       movwf   PORTD          

       bcf     CS                      ; CS = 0      

--- some sort of delay here -----

       bsf     CS                      ; CS = 1      

       movlw   b'00000000'             ; to B register
       movwf   PORTD

       bcf     CS                      ; CS = 0      

--- some sort of delay here -----

       bsf     CS                      ; CS = 1      

From what I can see, the chip looks at the data lines once you pull CS low.
It's possible that the chip is latching the data lines once CS is pulled low
and your output to PORTD is not seen. I'd have to look at the datasheet to see
the timing.

It's also possible that the chip might look at the data lines when CS
transitions from low to high. In this case, it would see the data from your
second output to PORTD and not your first. You need to toggle CS for both
transactions.
    

Site Timeline