(求助) 关于 ATMEGA8 + NRF905 无线语音传输
关于 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校验
程序流程如下:
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_546428.jpg
(原文件名: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;OCR1B=255-RxBuf;// 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) 沉得很快 ./emotion/em152.gif 定一下~ 再顶一次吧~~ 帮楼主顶一下,另外用的着CRC校验吗?不太清楚 从Datasheet看无论你校不校验都会带有CRC数据包的。
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_546726.jpg
(原文件名:QQ截图未命名.jpg) mark NRF905自带CRC效验,配置一下就进OK 关注 正在关注这方面 mark。
页:
[1]