|
关于 ATMEGA8 + NRF905 无线语音传输的问题
闲话不多说直入正题。
要求功能:无线语音传输
本人方案:ATMEGA8 + NRF905 实现语音的单向传输。
制作过程:本人按照网上的电路及程序做了一个“M8L做小功率数字功放” 地址是:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1736774&bbs_page_no=1&search_mode=4&search_text=Soul.art&bbs_id=9999
在此基础上我用片M8 (一片做AD(8位)数据采集及数据的发送,另一片数据接收并产生PWM信号将语音还原)做了一个语音传输的东东,用串口发送数据(54Kbps),声音还能听的清楚。后面我就用NRF905做数据传输,但效果很不理想(不仔细听,听不清)。 (M8接16MHz ADC 128 分频)
硬件很简单就不说了,介绍一下软件,看看问题出在哪里
NRF905配置为:430MHz,+10dBm,1 bit 地址位,32 bit 有效数据,CRC校验
程序流程如下:
(原文件名:1231231.jpg)
部分程序:
while(1)
{
if((PINB&1)==1) // 接收到信号时NRF905 对这个口值位
{
RxPacket(); // Transmit Rx buffer data
}
if(tt>=TIME) // TIME = 120 对 rxBuf 的遍历
{ tt=0;
if(i==BB-1){i=0;k++;}
if(k==(buf_num-1)) {FULL=1;k=0;goto K;}
OCR1A=RxBuf[k]; OCR1B=255-RxBuf[k];// delayus(100);
i++;
}
tt++;
}
已经尝试解决的方法:
1) 改变NRF905的有效数据宽度。
比如改成 16 字节,由于无用的信息增多,放而影响速度。
2) 使用 ADPCM 编码。由于编码只是将数据量减少,并没有实现速度的增快,
疑问:是不是NRF905速度已经到了?
希望大家能指点一二!
附上 NRF905_DATASHEET
点击此处下载 ourdev_546438.pdf(文件大小:1.00M) (原文件名:nrf905中文.pdf)
为感谢大家对本帖的关注特附上已经移植到ARM7的 ADPCM 程序。
点击此处下载 ourdev_546437.rar(文件大小:140K) (原文件名:101259388test004.rar) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|