美文网首页
20151126-2:I2C分析

20151126-2:I2C分析

作者: skylaugher | 来源:发表于2018-11-11 12:24 被阅读0次

    20151126-2:I2C分析

    一:I2C模组的基本结构和基本函数

    The restrictionson reading and clock stretching do not apply to xCORE-200 devices。

    在工程的makefile中只列出了下面两个I2C模组:module_i2c_shared,module_i2c_single_port。

    在module_i2c_single_port、module_i2c_simple、module_i2c_master中所有的接口函数都定义为同样名称的四个函数(同样的i2c中定义):

    i2c_master_init(),i2c_master_rx(),
    i2c_master_read_reg(),i2c_master_write_reg()
    

    其中module_i2c_shared为母类。根据makefile中导入的模组名调用该模组下的对应函数,module_i2c_shared对应也有四个函数,我们在应用程序中调用这四个shared函数:

    i2c_shared_master_init,i2c_shared_master_rx,
    i2c_shared_master_read_reg,i2c_shared_master_write_reg
    

    每一个函数的结构均如下例所示:

    inti2c_shared_master_read_reg(REFERENCE_PARAM(struct r_i2c, i2cPorts), int device,int reg_addr, unsigned char data[], int nbytes)
    {
       int retval;
       swlock_acquire(&i2c_swlock);     //软加锁
       retval = i2c_master_read_reg(device, reg_addr, data, nbytes, i2cPorts);     //执行操作
       swlock_release(&i2c_swlock);      //解锁
       return retval;
    }
    

    注意:(20151221添加)这里的I2C地址为实际的写地址右移一位,比如写地址为0x98,则函数中的I2C地址为0x98/2=0x4C.(原始地址中的最低位始终是读写区分位)

    二:I2C重要参数和函数说明

    1、i2c端口速率定义

    /** This constant defines the time in clockticks between successive bits. By default set to 1000 for 100 Kbit devices, butit can be overridden to 250 for 400 Kbit devices. */
    \#define I2C_BIT_TIME 1000
    

    2、i2c端口说明:

    struct r_i2c {
       port scl;      /**< Port onwhich clock wire is attached. Must be on bit 0 */
       port sda;      /**< Port onwhich data wire is attached. Must be on bit 0 */
    };
    

    3、i2c_shared_master_rx函数没有被调用。

    4、在audiohw.xc中定义了各种宏,用于对各种i2c设备进行读写操作。

    三:AudioHwInit()、AudioHwConfig()

    AudioHwInit()、AudioHwConfig()这两个函数中只有管脚设置和i2c寄存器设置。

    AudioHwInit()的调用关系:

    main()->usb_audio_io()作为一个Par->audio()->AudioHwInit() 在while(1)循环前。

    AudioHwConfig()的调用关系:根据采样率的变化重新设置。

    main()->usb_audio_io()作为一个Par->audio()->AudioHwConfig()在while(1)循环里。

    相关文章

      网友评论

          本文标题:20151126-2:I2C分析

          本文链接:https://www.haomeiwen.com/subject/zlyxfqtx.html