miquan9 发表于 2008-3-9 16:23:23

请教大家在“mega128利用PWM(相位可调模式)产生语音”中遇到的两个问题

第一个问题:在计数器2溢出中断中从片外FLASH取数,如果用语句:OCR2=FLASH_READ(ADDRESS)来读的话输出的PWM频率为13kHz左右,远低于设计需要的16kHz,这时通过内部RC校正可以使PWM输出达到16kHz,但是如果上述赋值语句中进行强制类型转换:OCR2=(unsighed char)(FLASH_READ(ADDRESS))的话不用进行片内RC校正,输出PWM频率就可以达到16kHz,请教大家这是为什么,FLASH_READ返回值本身就是unsigned char型;
第二个问题:设计思想是将PWM输出信号经过由LM324构成的低通滤波电路滤波后直接驱动一个8欧姆,0.5W的小扬声器,但是直接接扬声器没有声音,接有源功放的话输出声音正常,请教大家,这是为什么?电路图见附件。
1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_227035.JPG

brian_wsn 发表于 2008-8-22 15:25:34

我也遇到类似的问题,第一个问题我也不晓得怎么解决,第二个问题就是直接驱动不了8欧姆的扬声器,电压不够,加一功放肯定就可以了,是模拟电路的知识。如果找到了软件上的解决办法请联系我:QQ187009831 我解决了也会联系你的,请留下你的QQ。顺便说一下,我也在做这个东西。

brian_wsn 发表于 2009-2-19 15:08:02

我也做过,也是遇见和楼主一样的问题,好像是驱动电流不够大,无法驱动扬声器,不过可以驱动耳机。

myhonour 发表于 2012-11-11 08:37:03

受教了~~
页: [1]
查看完整版本: 请教大家在“mega128利用PWM(相位可调模式)产生语音”中遇到的两个问题