|
| 采购元器件好去处--维库电子市场网推荐 |
| 技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
用过MT8888的XDJM请指教 |
| 来源:21ic 作者:lets3 栏目:通信技术 |
| 用过MT8888的XDJM请指教 电话通信实验中,本人采用单片机控制MT8888做收发控制, 现在接收没有问题,但是发送始终不成功,现已焦头烂额, 恳请各位大侠好心人帮忙! 谢谢! |
| 1楼: | >>参与讨论 |
| 作者: chunyang 于 2006-9-7 18:44:00 发布:
先用音频放大器听听是否有输出 这样可以确定是你没有操作正确IC还是接口电路的问题,缩小范围是第一步。 |
|
| 2楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-7 19:01:00 发布:
rfrrffr 好的,我做一下实验,谢谢! 目前我从示波器上看,输出脚没有信号,但是发送有中断,发送寄存器TDR也有置位,是不是可以说是数据已经发送完毕? |
|
| 3楼: | >>参与讨论 |
| 作者: xiubing65 于 2006-9-7 19:05:00 发布:
呵呵 别急,我解决拨号问题一共用了可能有10天左右,什么问题都被我遇上了。首先将8880的8脚负载断开,接一个10K电阻到地,用示波器(别告诉我你有哦)看8脚波形是否为DTMF波形,一定要是DTMF波形,如果是单音正弦波或没波形可能是没有初始化或初始化程序有问题。 如果这儿正常可能是你的DTMF偶合电路有问题,将电路复原,在外线并一个电话,提机后用你的系统拨号,在电话中应该能听到拨号音,如果这个声音没有你平时用电话机拨号声音大,可能是幅度太小,可以用我推荐的那个电路,如果没一点反应,说明你的DTMF电路根本没有工作。 |
|
| 4楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-7 19:20:00 发布:
5555 接了电阻了确实没有波形,我有进行初始化,依你的经验初始化应该注意什么呢? |
|
| 5楼: | >>参与讨论 |
| 作者: xiubing65 于 2006-9-7 19:45:00 发布:
初始化没什么特别要求,关键是要对 时序,关键要正确,比如写控制积存器和写发送积存器要求的逻辑就不同,根据我的经验没有初始化成功的概率比较大,没有初始化成功我遇见3种情况,一种是一会完全正常,一会不正常,就是没输出,2是从来都没输出,3是怎么搞都是输出正弦波单音,这要根据心片而定,但是8880通常不易损坏,我吹下来很烫,用水冷却后装上还能用, |
|
| 6楼: | >>参与讨论 |
| 作者: xiubing65 于 2006-9-7 19:47:00 发布:
还有 还有就是你的控制字,CA=0F,CB=0;我试过网上介绍的CA=D=B=C,好象只有CA=F才完全正常,其他都有少许问题。 |
|
| 7楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 9:26:00 发布:
还是不行 还是不行啊,用音频放大器听过了没有声音 是不是应该首先怀疑操作的问题阿? |
|
| 8楼: | >>参与讨论 |
| 作者: chunyang 于 2006-9-8 10:16:00 发布:
那就显然是你对芯片操作有误了 仔细看看器件说明文档。 |
|
| 9楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 11:32:00 发布:
困惑 如果是操作问题那为什么中断和标志位都有置位? 我觉得接受和拨号的控制上有相似之处阿, 为什么接收可以,拨号不行啊? 愁愁愁 |
|
| 10楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:07:00 发布:
我是发送没问题,接收有问题 你发你的接收程序给我看看吗 |
|
| 11楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:12:00 发布:
IC有坏了的可能,试换二片试试 我用MT8880CE,发送是可以打公司的分机了,有二片应是坏了的,换上去打不了605,用电话听只有一声DTMF,发不了三声,只有一片可以打到电话.你试换二片新的上去 |
|
| 12楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:16:00 发布:
我也搞到没法了! xiubing65,,能不能给你的接收程序给我看看?我也搞到没法了! |
|
| 13楼: | >>参与讨论 |
| 作者: xiubing65 于 2006-9-8 12:31:00 发布:
你肯定是用监测状态位了 换成延时方式,不用等待状态位方式 还有,你到底是发送问题还有接收问题啊 怎么我一会见是接收一会是发送呢 |
|
| 14楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:33:00 发布:
请大家搞好的帮帮忙嘛 我的EMAIL:lets3@163.com |
|
| 15楼: | >>参与讨论 |
| 作者: xiubing65 于 2006-9-8 12:36:00 发布:
别轻易换芯片 根据我的经验,MT8880CE是不易损坏的,我换了三片,以为有问题,后来搞好后重新装上还能用,即使被吹风吹的很热,首先要确认软件和硬件没有问题,不在万不得以,别换芯片 |
|
| 16楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:37:00 发布:
我是接收问题!! 现在这个贴子下三个贴子就是我的求助贴子,里面有程序了,帮我看看接收时是那里出错了.发送没问题了,可以打到公司的电话了 |
|
| 17楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 12:37:00 发布:
看看 我用的是51系列的单片机 #define WCM XBYTE[0xBFff]//命令 #define WDATA XBYTE[0x3Fff]//数据 void Initial88(void) { uchar i; i=WCM; WCM=0X00; WCM=0X00; WCM=0X08; WCM=0X00; i=WCM; }//初始化 main(void) { Initial88(); .... .... WCM=0xfd;//接受 WCM=0X00; k=WCM; if(k&0x04) { k=WDATA ; } .... .... } 我接收就是这样控制的,不知道对你有没有帮助 你通过电话都可以听到声音吗?你的输出有没有接放大器阿? |
|
| 18楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:40:00 发布:
谢了,让我看看有什么地方不同,一会改改试试 我也是用51MCU,不过我是用ASM写的, |
|
| 19楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 12:50:00 发布:
发送OK的了 TOUT出来,通过二个9014再到M97060互感,DTMF输入是互感过C104再过100K电阻到MT8880的IN-脚,负反电阻为470K,用示波器测IN-,几乎看不到波形(0.1V档了),不知是不是这里没有信号输入.但测C104与100K接点时,波形很清晰,我想试一试把100K换成更小的电阻试试 |
|
| 20楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-8 13:19:00 发布:
不能用监测状态位的吗? 我用监测状态位,换了五片,只有一片是可以打电话,其它四片只有一个DTMF,一片完全没反应,所以打不了电话了.我的IC是插在IC坐上的,所以换IC是一件好易的事, |
|
| 21楼: | >>参与讨论 |
| 作者: mm7989680 于 2006-9-8 16:31:00 发布:
仅供参考 ////////////////////////////////////////////////////////////////////// //说明: 控制MT8888拨打电话号码,MT8888工作于DTMF模式, // 电话号码存储在TeleNumer数组中。 //晶振: 11.0592MHZ //MCU: AT89S52 //接口: void InitializeMT8888(void); // void SetMT8888Mode(void); // void DialTelephoneNumber(void); //Version: 1.0 //LastDate: 2006/05/17 //Complier: Keil //MT8888 T0 89S52 : // !IRQ---!INT1 // RS0----P1.0 // !WR----P1.2 // !RD----P1.1 // D0-----P0.4 // D1-----P0.5 // D2-----P0.6 // D3-----P0.7 ////////////////////////////////////////////////////////////////////// #include<AT89X52.h> #include<intrins.h> void InitializeMT8888(void); void SetMT8888Mode(void); void DialTelephoneNumber(void); void ReadStatus(void); data unsigned CHAR MTStatus; unsigned CHAR code TeleNumber[11]={1,3,1,3,1,1,1,1,1,1,1}; void Delayms(unsigned int ms) { unsigned int i,j; for(i=0;i<ms;i++) for(j=0;j<113;j++); } void Delay50ms(unsigned CHAR ms) { unsigned int i; unsigned CHAR j; for(j=0;j<ms;j++) for(i=0;i<9135;i++); } void delay1s(void) { unsigned CHAR h,i,j,k; for(h=5;h>0;h--) for(i=4;i>0;i--) for(j=116;j>0;j--) for(k=214;k>0;k--); } //读MT8888状态寄存器 void ReadStatus(void) { P1=0xF5; P0=0xFF; MTStatus=P0; //_nop_(); //_nop_(); //_nop_(); } //上电后均需要初始化MT8888 void InitializeMT8888(void) { ReadStatus(); P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x00; //_nop_(); //_nop_(); P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x00; //_nop_(); //_nop_(); P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x80; //CAREFUL //_nop_(); //_nop_(); P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x00; //_nop_(); //_nop_(); ReadStatus(); } //设置MT8888工作模式 void SetMT8888Mode(void) { P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x9F; //CRA=1101 1001 //_nop_(); //_nop_(); P1=0xF3; //WRITE TO CONTROL REGESTER //_nop_(); //_nop_(); P0=0x0F; //CRB=0000 //_nop_(); //_nop_(); Delay50ms(2); } void DialTelephoneNumber(void) { unsigned CHAR i,j; for(i=0;i<11;i++) { j=TeleNumber[i]; if(j==0) { j=10; //如果号码为0时,按照MT8888的规则应送0x0a } P1=0xF2; //write to send-regester //_nop_(); //_nop_(); P0=(j<<4); //MSB into b3-b0 Delay50ms(3); P2_4=0; do { ReadStatus(); P2_6=!P2_6; }while((MTStatus&0x20)!=0x20); Delayms(20); P2_2=0; } } /* main */ void main(void) { P2=0xFF; P1=0xDF; while(1) { unsigned CHAR seconds; P1_5=1; //摘机 InitializeMT8888(); //P2_4=0; SetMT8888Mode(); //P2_2=0; DialTelephoneNumber(); P2_0=0; for(seconds=0;seconds<5;seconds++) { delay1s(); }; P1_5=0; delay1s(); delay1s(); }; } |
|
| 22楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 16:43:00 发布:
有改善 换了个芯片,现在可以从音频放大器中听到声音,但是还是没有拨出去 接下来应该注意哪些问题? |
|
| 23楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 16:46:00 发布:
有改善 换了个芯片,现在输出有波形,从音频放大器上也能够听到声音,很快 但还是没有拨出去,拨号时的速度有要求吗? |
|
| 24楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-8 17:31:00 发布:
连接 MT8888的输出脚有DTMF信号输出,怎么和电话连接呢? |
|
| 25楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-9 10:50:00 发布:
烦 工作在BURST模式下,DTMF只有50MS,当然快了,我是用1:1互感耦合到电话线上的.耦合前先用9014放大TOUT出来的信号.去电子市场买回来的MT8880全是别人用过的(10元一片的),所以就算是行的,也会有点问题,昨天叫采购员去买,全新的MT8880CE散卖要31大洋一片.接收我还是没有搞好!烦 |
|
| 26楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-9 11:02:00 发布:
君临城下你有没QQ,MSN之类的? 我的MSN:lets3@hotmail.com 有什么问题可以相互帮助一下,我也想你指点一下我的接收问题, |
|
| 27楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-9 11:13:00 发布:
君临城下,你的搞好没有? 我昨天测试过了,GS出来的DTMF波形很好,ST/GT脚也有高电平出来,但就是跳不过测试接收满状态.我设了CRA IRQ有效,测IRQ/CP脚总是低电平,我是用ASM写的,读状态位是没错的,我在发DTMF时也用了测试状态位,能拨打公司的分机了,所以读写状态位的时序没问题,只说明了测试状态位收满位是一直为0,但是ST/GT脚是有高电平了,有高电平就说明了锁存了译码的DTMF了,不是这样子的吗? |
|
| 28楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-9 16:06:00 发布:
我的程式本就是OK的 好了,31大洋的新片回来了,一测试,OK了,市场上太多的MT8880是工厂退货再拿出来卖的了,害死我们这些开发人员了. |
|
| 29楼: | >>参与讨论 |
| 作者: teddeng 于 2006-9-10 22:53:00 发布:
晕倒,30一片的DTMF CODEC???!! 怎么不用HT9200+9170代替呢?加起来也不到6块钱啊?8880,典型的教科书芯片! |
|
| 30楼: | >>参与讨论 |
| 作者: hq_y 于 2006-9-10 23:08:00 发布:
这么贵啊 |
|
| 31楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-11 8:05:00 发布:
连接 |
|
| 32楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-11 9:39:00 发布:
我有用HT9200+9170, 我有用HT9200+9170,现在只是试功能,HT9200+9170 深圳这边5大洋就搞定了. |
|
| 33楼: | >>参与讨论 |
| 作者: cdbjdz 于 2006-9-11 10:42:00 发布:
使用HT9200+HT9170更加稳定可靠! |
|
| 34楼: | >>参与讨论 |
| 作者: 君临城下 于 2006-9-11 17:39:00 发布:
拨号问题 我用耦合变压器降电话地与电源地隔离,在变压器的输入端有双音频信号,但变压器之后没有信号为什么? 且不能拨号。 |
|
| 35楼: | >>参与讨论 |
| 作者: lets3 于 2006-9-16 11:08:00 发布:
搞好没有? 你用的是不是1:1变压器?要是有输入,但没输出,可能是你的互感坏了. |
|
|
|
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |