Ys-MINI语音模块资料,测试程序
LD3320语音合成电路原理图如下:
1、本程序工程采用keil4编译通过,如打不开或出现错误,请按照keil 4编译器。
二、电路连接方法
芯片为3.3V供电与其连接的单片机必须为3.3V供电的单片机,从而保证IO口电平不超过3.3V,否则将导致语音芯片驱动不成功甚至导致语音芯片烧坏,同时亦不可以采用串联电阻的方式进行分压通信这是驱动不起来的,以下为该模块的2种驱动方式的端口连接;
1、并口方式所需连接的端口
LD_P0--LDP7(8位并行数据、地址端口)
LD_A0(1:LD_P0-LD_P7为地址端口,0:LD_P0-LD_P7为s数据端口)
LD_CS(芯片片选端口)
LD_WR(芯片写端口)
LD_RD(芯片读端口)
LD_IRQ(中断信号,模块收到声音后产生一个下降沿)
LD_Reset(芯片复位端口)
2、SPI方式所需连接的端口
LD_P0->SDI(SPI输入端口)
LD_P1->SDO(SPI输出端口)
LD_P2->SDCLK(SPI时钟端口)
LD_WR->SPIS(SPI片选端口)
LD_Reset(芯片复位端口)
LD_IRQ(中断信号,模块收到声音后产生一个下降沿)
LD_CS(芯片片选端口,低电平有效)
在初步的调试过程中,不建议省略以上通信方式的任何一个引脚,例如直接将LD_CS拉低等等,底层驱动程序都必须用到以上的管脚,故在未驱动应用起来前不要自行修改避免不必要的错误导致调试不成功。
(备注:如采用SPI通信方式时建议采用硬件SPI方式;不要建议采用软SPI方式驱动,该方式对时序要求非常严格,调试存在一定的难度。电路连接没有固定格式,注意理解原理)
在调试本芯片时不建议急于求成,就算单片机型号和程序都一致都需要严格遵守“LD3320芯片简明调试步骤.pdf”手册的调试步骤,逐步测试通关,从而我们才有可能找到问题所在并解决问题。调试过程需要耐心和细心,每个步骤都不可遗漏,认真查看调试步骤,在初步的开发中,我们不需去了解寄存器和其他数据手册,避免导致思维混乱,因为提供的程序已经是调试可用寄存器配置、流程都已经完善。我们只需要且可修改的是程序端口定义、读写函数、延时函数等与底层驱动默认设置无关的内容,只有在调试完成应用起来后方可继续深入了解和参数的修改。
51单片机源程序如下:
stm32代码:
- /***************************乐声电子科技有限公司****************************
- ** 工程名称:YS-V0.4语音识别开发板程序
- ** CPU: STM32f103RCT6
- ** 晶振:8MHZ
- ** 波特率:9600 bit/S
- ** 配套产品信息:YS-V0.4语音识别开发板
- ** 说明:本程序 具备语音识别、串口通信、开发板基本功能演示。
- /*************端口信息********************
- * 接线说明
- * RST PB6
- * CS PB8
- * WR/SPIS PB9
- * P2/SDCK PB3
- * P1/SDO PB4
- * P0/SDI PB5
- * IRQ PC1
- * CLK 与单片机的晶振共用
- ***************************乐声电子科技有限公司******************************/
- #include "includes.h"
- /* Private function prototypes -----------------------------------------------*/
- void RCC_Configuration(void);
- //void NVIC_Configuration(void);
- void USART_Configuration(void);
- void PrintCom(USART_TypeDef* USARTx, uint8_t *Data);
- extern void LD3320_main(void);
- /***********************************************************
- * 名 称: 主函数
- * 功 能: 程序入口
- * 入口参数: 无
- * 出口参数: 无
- * 说 明: 无
- * 调用方法: 无
- **********************************************************/
- int main(void)
- {
- /* System Clocks Configuration */
- RCC_Configuration(); //外设时钟配置
- USART_Configuration();//USART 配置
- LD3320_main(); //LD3320执行函数
- while (1)
- {
- }
-
- }
- /***********************************************************
- * 名 称: void USART_Configuration(void)
- * 功 能: 串口配置
- * 入口参数:
- * 出口参数:
- * 说 明:
- * 调用方法:
- **********************************************************/
- void USART_Configuration(void)
- {
- USART_InitTypeDef USART_InitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
- USART_InitStructure.USART_BaudRate = 9600;
- USART_InitStructure.USART_WordLength = USART_WordLength_8b;
- USART_InitStructure.USART_StopBits = USART_StopBits_1;
- USART_InitStructure.USART_Parity = USART_Parity_No;
- USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
- USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
- /* Configure USART1 */
- USART_Init(USART1, &USART_InitStructure); //类似与GPIO口,配置完后初始化一次
- USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); //使能接收 中断
- USART_ITConfig(USART1, USART_IT_TXE, ENABLE); //使能发送 中断
- USART_Cmd(USART1, ENABLE);
-
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //USART1 TX
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
- GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; //USART1 RX
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //复用开漏输入
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure); //A端口
- }
- /***********************************************************
- * 名 称:void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
- * 功 能:串口数据打印
- * 入口参数:
- * 出口参数:
- * 说 明:
- * 调用方法:
- **********************************************************/
- void PrintCom(USART_TypeDef* USARTx, uint8_t *Data)
- {
-
- while(*Data)
- {
- USART_SendData(USARTx, *Data++); /*发送单个数据 */
- while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);/* 检查指定的USART标志位即RESET=1时发送完成*/
- }
- }
- /***********************************************************
- * 名 称:void RCC_Configuration(void)
- * 功 能:配置外设时钟
- * 入口参数:
- * 出口参数:
- * 说 明:
- * 调用方法:
- **********************************************************/
- void RCC_Configuration(void)
- {
- SystemInit();
- /* Enable USART1, GPIOA, GPIOx and AFIO clocks */
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
YS-Mini语音识别模块配套资料(0609).zip
(12.96 MB, 下载次数: 123)
|