Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Interfacing MT8880 with PIC

Status
Not open for further replies.

dftguru

Newbie level 1
Joined
Apr 13, 2012
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,304
I am posting this although I am able to send and receive DTMF using an MT8880 interfaced with a PIC16F1937. Althought I can communicate with the MT8880, I would like to have a better understanding of the structure of the I/O Control portion of this device.

After hours of experimentation, I was finally able to send and decode DTMF but the the waveforms of the RS0/RWb/PH2/CS signals do not correspond to the one shown in MPU Read/Write Cycle (Figures 18 and 19 in the MT8880 datasheet).

My initial understanding was that the CS pin could be tied low in my case and I thought that the MT8880 write cycle only depended on the D0-D3 plus RWb/RS0 and PH2 pins. It turns out that I can do a successful write to the MT8880 by keeping the PH2 (Pin 12) high and simply pulse the CS pin to 0 then back high. When I bring back CS high, the write sequence is completed successfully. I found this here:

https://www.google.ca/url?sa=t&rct=...sg=AFQjCNFyKqNiUkLdIw1W9eohSmfGrm78Rg&cad=rja

However, this pulsing of the CS pin does not work for a read sequence. If I only pulse CS low, the read never occurs because if it did, the status register would clear and the IRQ pin would be pulled back to VDD but it does not. Also, the PIC is not reading a valid value so I know the read did not happen. Here is how I must do a read (which clears the status register and releases the IRQ):

PH2 low
RS0 high
RWb high
CS low
Pulse PH2 (Pin 12) high then back low
CS high

It seems like the MT8880 needs to see an edge on PH2 in order to latch the output registers but this does not seem to be a requirement when writing.

Bottom line is:

CS cannot be permanently tied low; It must be controlled during the write cycle.
PH2 cannot be tied high; It must be pulsed to strobe the outputs during a read cycle.

There are alot of folks on the forums that are having a hard time with the MT8880. I hope that this post can help them out. On my side, I am looking for more information in order to better understand the internal structure of the I/O control circuitry. My objective is to be able to tie the CS pin to GND (and save a data pin on my PIC) and only use the other control signals (RWb/RS0/PH2) to communicate with the MT8880. If anyone has any information on the I/O control circuitry or the protocol, I would appreciate if you can share this information.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top