用SPI实现dsPlC与ISD语音芯片的通信

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8697

文章摘要: 通过对控制寄存器的配置,可以将SPI模块设置为8位或16位模式、主模式或从模式、帧同步等多种操作模式,还可以对时钟边沿、时钟分频倍数等进行配置。这里使用了以dsPIC为主,ISD为从的主从模式。Microchip提供的外围接口库可以方便地完成这些配置工作。 dsPIC Language Tools Libraries是MictoChip公司提供给开发者的一套工具库,其中主要含3个子库.DSP库,提供常用的DSP函数;外围接口库,提供对dsPIC系列所有外围接口的驱动函数,包括SPI接口;标准C及数学函数库,可在Microchip的官方网站下载(www.microchip. com

用SPI实现dsPlC与ISD语音芯片的通信,标签:电子小制作,http://www.88dzw.com

    通过对控制寄存器的配置,可以将SPI模块设置为8位或16位模式、主模式或从模式、帧同步等多种操作模式,还可以对时钟边沿、时钟分频倍数等进行配置。这里使用了以dsPIC为主,ISD为从的主从模式。Microchip提供的外围接口库可以方便地完成这些配置工作。

    dsPIC Language Tools Libraries是MictoChip公司提供给开发者的一套工具库,其中主要含3个子库.DSP库,提供常用的DSP函数;外围接口库,提供对dsPIC系列所有外围接口的驱动函数,包括SPI接口;标准C及数学函数库,可在Microchip的官方网站下载(www.microchip. com)。我们使用其中的外围接口库中的SPI库函数即可。SPI库中主要包括以下几个函数:
    ①configIntSPIx SPI中断配置函数。该函数可以对sPI接口的中断使能位以及中断优先级进行配置,返回值为空。
    ②CloseSPlx关闭SPI接口。
    ③DataRdySPlx SPl接口数据就绪。该函数用来判断SPI接收缓冲区中是否有数据等待读出。若返回值为1,表示缓冲区中数据已经就绪,等待读出;若返回值为0,则标示缓冲区为空。
    ④ReadSPIx读SPI接口缓冲区。
    ⑤WriteSPIx向SPI接口发送缓冲区写数据。
    ⑥OpenSPIx打开SPI接口。该函数包含2个参数:configl和config2。configl中包含对SPI接口操作模式的配置信息,将写入控制寄存器;config2中包含SPI的状态信息,将写入状态寄存器。该函数在打开SPI接口的同时完成对其的配置。
    ⑦puasSPIx函数将一个字符串数据写入到发送缓冲区中。
    ⑧getsSPIx函数将从接收缓冲区读人指定长度的字符串数据,并转存到指定的空间。

    除了这8个函数以外,该库还提供了相应的宏指令完成同样的功能,可以在程序中方便地使用。

5 lSD4002
    ISD4002工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。对ISD4002而言,在时钟上升沿锁存MOSI引脚数据.存下降沿将数据送至MISO引脚.协议具体内容如下:
    ①所有串行数据传输开始于SS下降沿;
    ②SS在传输期间必须保持为低电平,在两条指令之间保持为高电平;
    ③数据在时钟上升沿移入,在下降沿移出;
    ④SS变低,输入指令和地址之后,ISD才会开始录放动作;
    ⑤指令格式是10位地址码加6位控制码;
    ⑥ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断,该中断状态在下一个SPI周期开始时被清除;
    ⑦使用读指令会使中断状态为移出ISD的MISO引脚时,控制及地址数据也同步从MOSI移入;
    ⑧所有操作在运行位(RUN)置1时开始,置0时结束;
    ⑨所有指令都在SS上升沿开始执行。
    其时序如图2所示。

    对于ISD4002,器件延时TPUD(8kHz采样时,约为25 ms)后才能开始操作;因此,用户发完上电指令后,必须等待TPUD.才能发出一条操作指令。下面是典型的操作。

    从00处发音,应遵循如下时序:
    发POWERUP命令;
    等待TPUD(上电延时);
    发地址值为00的SFTPLAY命令;

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《用SPI实现dsPlC与ISD语音芯片的通信》相关文章