声音的存储和播放 用PCF8591和i2c总线 fpga进行AD 转换后存储 如何DA后播放声音呢 这个程序谁有

急PCF8591 AD转换的有关问题,DA正常,但是AD读的数据一直都是0x80 - 单片机当前位置:& &&&急PCF8591 AD转换的有关问题,DA正常,但是AD读的数急PCF8591 AD转换的有关问题,DA正常,但是AD读的数据一直都是0x80&&网友分享于:&&浏览:92次急!!PCF8591 AD转换的问题,DA正常,但是AD读的数据一直都是0x80不知道是怎么回事,请大家帮帮小妹。谢谢了!不会是芯片的问题吧,DA是正常的。主控芯片是AVR的单片机,我用IIC协议读取AD转换的结果。------解决方案--------------------单步调试
看读出来的AD结果是什么?看看是不是 IIC那的问题,如果出来的就是0X80 就要看采集那的程序了
------解决方案--------------------探讨我用示波器看了,前面的地址,控制字发的都是对的,就是到读TWDR的时候,四个通道出来的全是0x80
------解决方案--------------------探讨我用示波器看了,前面的地址,控制字发的都是对的,就是到读TWDR的时候,四个通道出来的全是0x80
------解决方案--------------------给我例子 你参考一下void DELAY5(){;}//******************************void PCF8591_START()
//PCF8591 起始信号{PCF8591_DATA=1;PCF8591_CLK=1;while(PCF8591_CLK==0)
{;}DELAY5();PCF8591_DATA=0;DELAY5();PCF8591_CLK=0;}//**********************************void PCF8591_STOP()
//pcf8591停止信号{PCF8591_DATA=0;PCF8591_CLK=1;while(SCL==0) {;} DELAY5();PCF8591_DATA=1; &DELAY5();PCF8591_CLK=0; &DELAY5();}//****************************void cack(){F0=0; &PCF8591_DATA=1; &PCF8591_CLK=1; &DELAY5(); if(PCF8591_DATA==0) { PCF8591_CLK=0; DELAY5(); } &else&
{F0=1;PCF8591_CLK=0;DELAY5();} &}/*void mack() //应答子程序{ PCF8591_DATA=0;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=1;& }void mnack()//非应答子程序{ PCF8591_DATA=1;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=0;}*/void wrbyt0()
//写入0这个1BIT的数据{PCF8591_DATA=0;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;}void wrbyt1()
//写入1这个1BIT的数据{PCF8591_DATA=1;PCF8591_CLK=1;DELAY5();PCF8591_CLK=0;PCF8591_DATA=0;}//***************************void DATA_WRITE(unsigned
//写入8BIT数据.{unsigned i=0; for(i=0;i&8;i++) {if((j&0x80)&0)
j&&=1; } }//************************************unsigned
DATA_READ(){unsigned
j=0 &unsigned
i=0; &for(i=0;i&8;i++) {PCF8591_DATA=1;PCF8591_CLK=1;
if(PCF8591_DATA==0)
{j&&=1;j=(j&0xfe);PCF8591_CLK=0;}
{j&&=1;j=(j|0x01);PCF8591_CLK=0;}
}return(j);}//************************************unsigned
READ_AD(void){unsigned j=0, k=0;//duad1://do
PCF8591_START() ;
DATA_WRITE(0x90);
//ad寻址字
}//while (F0==1);//{
PCF8591_START() ;
DATA_WRITE(0x91);
//写器件地址和读命令
j=DATA_READ();
//读出AD转换后的数据
PCF8591_STOP();&
return(0xa0);& //}}
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有PCF8591的硬件接口
查看: 3576|
摘要:   PCF8591是一个单电源低功耗的8位CMOS数据采集器件,具有4路模拟输入,1路模拟输出和一个串行I2C总线接口用来与MCU通信。3个地址引脚A0、A1、A2用于编程硬件地址,允许最多8个器件连接到I2C总线而不需要额外的片 ...
  PCF8591是一个单低功耗的8位CMOS数据采集器件,具有4路模拟输入,1路模拟输出和一个串行I2C总线接口用来与MCU通信。3个地址引脚A0、A1、A2用于编程硬件地址,允许最多8个器件连接到I2C总线而不需要额外的片选电路。器件的地址、控制以及数据都是通过I2C总线来传输,我们先看一下PCF8591的原理图,如图1所示。
图1&PCF8591原理图
  其中引脚1、2、3、4是4路模拟输入,引脚5、6、7是I2C总线的硬件地址,8脚是数字GND,9脚和10脚是I2C总线的SDA和SCL。12脚是时钟选择引脚,如果接高电平表示用外部时钟输入,接低电平则用内部时钟,我们这套电路用的是内部时钟,因此12脚直接接GND,同时11脚悬空。13脚是模拟GND,在实际开发中,如果有比较复杂的模拟电路,那么模拟GND部分在布局布线上要特别处理,而且和数字GND的连接也有多种方式,这里大家先了解即可。在我们板子上没有复杂的模拟部分电路,所以我们把模拟的GND和数字GND接到一起即可。14脚是基准源,15脚是DAC的模拟输出,16脚是供电电源VCC。
   PCF8591的ADC是逐次逼近型的,转换速率算是中速,但是他的速度瓶颈在I2C通信上。由于I2C通信速度较慢,所以最终的PCF8591的转换速度,直接取决于I2C的通信速率。由于I2C速度的限制,所以PCF8591的算是个低速的AD和DA集成,主要应用在一些转换速度要求不高,希望成本较低的场合,比如电池供电设备,测量电池的供电电压,电压低于某一个值,报警提示更换电池等类似场合。
  Vref基准电压的提供,方法一是采用简易的原则,直接接到VCC上去。但是由于VCC会受到整个线路的用电功耗情况影响,一来不是准确的5V,实测大多在4.8V左右,二来随着整个系统负载情况的变化会产生波动,所以只能用在简易的、对精度要求不高的场合。方法二是使用专门的基准电压器件,比如TL431,它可以提供一个精度很高的2.5V的电压基准,这是我们通常采用的方法。如图2所示。
图2&PCF8591
  图中J17是双排插针,大家可以根据自己的需求选择跳线帽短接还是使用杜邦线接其他外接电路,都是可以的。在这个地方,我们直接把J17的3脚和4脚用跳线帽短路起来,那么现在Vref的基准源就是2.5V了。分别把5和6、7和8、9和10、11和12用跳线帽短接起来的话,那么我们的AIN0实测的就是滑动变阻器的分压值,AIN1和AIN2测的是GND的值,AIN3测的是+5V的值。这里需要注意的是,AIN3虽然测的是+5V的值,但是对于AD来说,只要输入信号超过Vref基准源,它得到的始终都是最大值,即255,也就是说它实际上无法测量超过其Vref的电压信号。需要注意的是,所有输入信号的电压值都不能超过VCC,即+5V,否则可能会损坏ADC芯片。
上一篇:下一篇:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:pcf8591 单片机DA转换_百度知道21ic官方微信-->
后使用快捷导航没有帐号?
查看: 2122|回复: 11
利用STM32的AD/DA来实现音频的采集和声音的播放
&&已结帖(20)
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
本帖最后由 zxy341211 于
21:22 编辑
MIC采集到一段话,然后经过放大电路给STM32的AD采集,TSM32经过DA把信号给小喇叭,小喇叭重复这段话。中间这个放大电路该怎么设计?应该要给一个偏置电压吧?DA出来的信号经过什么处理电路给小喇叭啊?
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:20.76
主题帖子积分
跟偏置电压没什么关系,DA输出要经音频功放放大后才能推动扬声器。
有技术问题请在论坛里发帖,站内信、QQ、邮件等仅供业务或私人用途使用,不对技术问题单独解答。
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
跟偏置电压没什么关系,DA输出要经音频功放放大后才能推动扬声器。
关键这个DA输出经音频功放放大电路推动扬声器,没做过啊,能求大神给个嘛?
主题帖子积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.20
主题帖子积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
DA输出,加RC低通,可能要适当分压衰减一下,然后送音频功放,小功率的比如LM386之类的。
输入,麦克风加偏置,运放放大送ADC。
移动通信设计,GPS防盗定位终端设计。各种电子产品设计,温度仪表设计专家。
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
DA输出,加RC低通,可能要适当分压衰减一下,然后送音频功放,小功率的比如LM386之类的。
输入,麦克风加偏 ...
这个电路呢?不知道MIC能不能工作,这个偏置该怎么加?
本帖子中包含更多资源
才可以下载或查看,没有帐号?
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:20.76
主题帖子积分
关键这个DA输出经音频功放放大电路推动扬声器,没做过啊,能求大神给个嘛? ...
根据你需要的功率自己找,比如TDA2822等,估计足够。
有技术问题请在论坛里发帖,站内信、QQ、邮件等仅供业务或私人用途使用,不对技术问题单独解答。
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:20.76
主题帖子积分
这个电路呢?不知道MIC能不能工作,这个偏置该怎么加?
你这个电路根本无法工作,赶紧去补晶体管基本原理和应用方面的课。
有技术问题请在论坛里发帖,站内信、QQ、邮件等仅供业务或私人用途使用,不对技术问题单独解答。
主题帖子积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.20
主题帖子积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
资深工程师, 积分 18060, 距离下一级还需 1940 积分
这个电路呢?不知道MIC能不能工作,这个偏置该怎么加?
你这个麦克风是可以工作的,R2没有作用可以去掉。
你的三极管没有基极偏置,无法工作,即使加了基极偏置,效果也不好,要加负反馈才行,否则放大倍数和管子有关。要在R4上面串联一个反馈电阻,限制放大倍数。
很基础的问题,建议还是自己先看书。
我也不多批评新手,以前有一个自以为很厉害的,到处骂我,我也怕了。
移动通信设计,GPS防盗定位终端设计。各种电子产品设计,温度仪表设计专家。
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
主题帖子积分
专家等级:结帖率:50%
主题帖子积分
初级技术员, 积分 66, 距离下一级还需 34 积分
初级技术员, 积分 66, 距离下一级还需 34 积分
你这个麦克风是可以工作的,R2没有作用可以去掉。
你的三极管没有基极偏置,无法工作,即使加了基极偏置 ...
主题帖子积分
初级技术员, 积分 63, 距离下一级还需 37 积分
初级技术员, 积分 63, 距离下一级还需 37 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 63, 距离下一级还需 37 积分
初级技术员, 积分 63, 距离下一级还需 37 积分
DA输出,加RC低通,可能要适当分压衰减一下,然后送音频功放,小功率的比如LM386之类的。
输入,麦克风加偏 ...
我就是这么做的啊,可惜始终有噪声,怎么回事啊?
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
楼主,,能否分享一下电路图……这是我的邮箱,,谢谢!
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 9, 距离下一级还需 41 积分
实习生, 积分 9, 距离下一级还需 41 积分
信号采集这个要好好看下。
永恒之光奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
核心会员奖章
等级类勋章
热门推荐 /6PCF8591可不可以用来转换音频信号,就是AD-DA-AD.想用来当无线话筒的数模转换.
PCF8591可不可以用来转换音频信号,就是AD-DA-AD.想用来当无线话筒的数模转换.可以用,但效果肯定不好,语音信号最少要13位精度,否则,噪音和失真很大.在用8位传输可以,但需要经过PCM压缩和解压缩.可网上查PCM编解码芯片
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 i2c总线 fpga 的文章

 

随机推荐