CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

硬件操作的说明:

1. 使用晶联电子的1602A LCD的I2C通信接口,其工作电压是3.3V  (所以CSR867x I2C信号有电平也要就要是3.3V,若是1.8V则会驱动失败

CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

2.CSR8670/8675的default的I2C端口是PIO6 和PIO7;

3. 要注意的 PIO6/I2C_SCL、PIO7/I2C_SDA 需要接上拉电阻,其阻值一般是4.7K~6.8K就可以了。

CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

 

 

 

软件操作的说明:

1. CSR ADK软件开发包 提供的了一个I2C控制的涵数;

uint16 I2cTransfer(uint16 address, const uint8 *tx, uint16 tx_len, uint8 *rx, uint16 rx_len);

这个涵数,共有4种用法;在这里简明说一下,具体的详细说明见i2c.h文件

CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

1.1)只发送数据

1.2)只接收数据

1.3)发送数据再接收数据

1.4)即不发送数据 也不接收数据

 

2.从CSR官方资料,可知CSR8670/CSR8675 只能做master角色, 不能做Slave角色

3.有关I2C的PSKEY有如下两个,都是通过PSTOOL工具来设置,用为配置Clk的频频,标准100kHz, 最大400kHz

         PSKEY_I2C_CONFIG

         PSKEY_I2C_SLOWDOWN

4. 在CSR提供的sink工程 中其实已提供了一个I2C驱动LCD的例子。

     CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

    LCD的驱动控制芯片是ST7032。 与我们的1206LCD相适

 

    在sink中的工程例子中,文件sink_display.c调用 底层库(Display)提供的API涵数;

        CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

          DisplayInit() //初使化作用,通知Lib去与设备沟通,

                                  // 并返回消息DISPLAY_PLUGIN_INIT_IND到 sink应用层

                                  // 从这个消息的附加数据,可知I2C是否沟通成功。          

 

         DisplaySetState () //显示 状态

        DisplaySetText()  //显示文件内容,指定行(0或1),是否滚动显示

        DisplaySetIcon()  //显示 Log

        CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

 

Display库所在位置:C:\ADK_CSR867x.WIN4.2\src\lib

 

     CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

所有处理的最终涵数都是,调用涵数lcd_write(uint8 rs, uint8 data);

而在此涵数中,又是调用就是上述所谈到的这个关键涵数 I2cTransfer(…)

 

     CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

实际操作:

4. 修改库中的LCD默认I2C地址,为1602LCD的地址(0x3C);

     在文件是display_plugin_cns10010.c文件中,如下所示

 

      CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

只修改这一句,原因LCD的初使化驱动全完兼容CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏 。然后再保存;

6  如下选择,对修改过的库进行Compile. 会出现command窗口,会花一点时间。若无error就自动关闭退出。

 

       CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

7 启动ADK4.0,打开headset 工程。

8 修改工程属性,允许LCD显示功能有效,即将宏Display选择使能。

        CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

9  按F7键 来Compile, 无error后,再按F5建,烧录到芯片并Runing;

10  按MFB开机键进行开机. 大功告成CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

 

     CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏

 

CSR867x学习交流群:743434463 
高通蓝牙技术交流群713094735
科飞开发板支持群:763757182 (这个号 要凭 单号才可以添加的)