90后是懒人经济的主力消费群体,他们懒得洗衣、懒得做饭、懒得扫地……外卖、速食、扫地机等以90后为基石的懒人经济受到强烈追捧。而洗地机作为“懒人经济”的典型产物,拥有极为稀缺的高增速与数倍的成长空间。
目前市面上各品牌的洗地机清洁功能都差不多,品牌商想要抢占市场,势必要突出自己品牌产品的优势,而在洗地机加入音效提示音,以及真人语音导航提示音,能让洗地机更人性化! 在洗地机上加入NV040C语音芯片不仅可以语音播放品牌欢迎语增加品牌价值,还可以语音提醒工作模式、故障报警等,可以及时知道哪里发生故障,为售后维修服务省心省力!
NV040C洗地机语音芯片方案(词条内容可定制): 1、欢迎使用XXX家用洗地机; 2、洗地模式; 3、拖地模式; 4、强吸模式; 5、清水箱欠压,哔哔哔! 6、碳刷故障,哔哔哔,请停止工作! NV040C语音芯片特点: l 灵活的多种按键操作模式以及电平输出方式供选择(边沿按键触发、电平触发、随机按键播放、顺序按键播放); l 简单方便的一线MCU串口以及两线MCU控制方式,用户主控MCU可控制任意段语音的触发播放及停止; l 内置一组PWM输出器可直推0.5W喇叭,支持13bit的DAC输出,可外接模拟功放; l 支持8级音量调节,支持循环播放等多种功能; l 灵活的放音操作,通过组合可节省语音空间,最多可播放220个语音组合; l 音质优美,性能稳定,物美价廉,静态电流小于2uA; l 内置LVR自复位电路,保证芯片正常工作; l 支持4和弦MIDI播放,音质非常优美; l 外围电路简单,仅需一耦合电容; l 工作电压范围:SOP8的2V~4.5V;SSOP20的是2V~5.5V。 l IO口丰富,内置MCU,可以定制各种特殊功能; NV040C语音芯片封装图及引脚对应表:
NV040C语音芯片原理参考图:
NV040C语音芯片串口控制: 1、MCU一线串口控制 MCU一线串口控制是指主控MCU通过DATA数据线来控制任意一段语音的触发播放及停止。时序采用下列时序。 端口的分配
数据与语音的对应关系 可支持223段声音以及命令的发送。语音地址发送和命令发送格式是一样的,发送之间相互独立。 | | | | | | | | | | | 控制8级音量,E0音量最小,E7音量最大,默认最大 | | | | |
一线串口时序图 sda为数据发送端口,发送语音地址。先发送低位。发码前发头码拉低4ms~6ms,下图范例发送的是89H。时序范围为400us:1200us到1ms:3ms之间。建议参考时序800us:2400us;频繁发送时,数据与数据之间大于100ms间隔。BUSY是语音播放忙信号,用户可以根据情况是否使用。上电需要等待100ms后才可以给语音芯片发码。
* 多条指令连续发送的时候,检测到忙信号变高后,先延时50~100ms在发送下一条指令,以避免因为处理未完成导致丢失某段语音。 程序范例(MCU:PIC16F57 晶振:4MHz) sda=0; wait(300); /*>2ms*/ for(i=0;i<8;i++) { sda=1; if(addr&1) { wait(15); /*>2400us*/ sda=0; wait(5); /*>800us*/ } else { wait(5); /*>800us*/ sda=0; wait(15); /*>2400us*/ } addr>>=1; /*地址值右移一位*/ } sda=1;
2、MCU二线串口控制 MCU二线串口控制是指主控MCU通过DATA数据线来控制任意一段语音的触发播放及停止。时序采用下列时序。 端口的分配
数据与语音的对应关系 可支持223段声音以及命令的发送。语音地址发送和命令发送格式是一样的,发送之间相互独立。 | | | | | | | | | | | 控制8级音量,E0音量最小,E7音量最大,默认最大 | | | | |
二线串口时序图 二线串口一共占用2个IO端口,一个是CLK时钟信号,一个是SDA数据信号。头码为4ms到6ms之间。单个bit时钟周期为80us~1320us之间,建议单个bit时钟周期为680us比较稳定。特殊要求需要更快时序的请联系厂家定制。在上升沿收码,收码为收低位。一个完整的数据为1byte。CLK和SDA非收码状态下为高电平。
* 多条指令连续发送的时候,检测到忙信号变高后,先延时50~100ms在发送下一条指令,以避免因为处理未完成导致丢失某段语音。 参考程序范例(MCU:PIC16F57 晶振:4MHz) clk=0; /*时钟口拉低*/ delay(200); /*延时>4ms*/ for(i=0;i<8;i++) { if(addr&0x01) sda=1; /*addr为待发数据*/ else sda=0; clk=0; delay(50); /*延时大于500us*/ clk=1; delay(50); addr>>=1; /*地址值右移一位*/ } sda=1;
|