文件版本说明
表 1 版本说明
版本
| 发布时间
| 修订章节
| 作者
| V0.1
| 2017-05-12
| 原始版本
| tomj
|
|
|
|
|
|
|
|
| 参考资料
1.CD1030数据手册
手册目的
记录应用CD1030过程中遇到的问题。
声明
版本保留,勿用于商业活动。文档仅供参考,如用使用到项目出现的问题自行承担。
水平有效,错误在所难免,欢迎指正!
名词定义和缩略语说明
表 2 名词定义及缩略语说明
1芯片简介
NXP公司的CD1030芯片,可用于扩展MCU的IO口,SPI通信方式,可检测33路IO,适用于MCU管脚不够,需要的IO多的情况;也可作为模拟信号的多路选择开关用于扩展系统的AD采样通道,同时芯片内部带有电源电压和温度监控。
可配置的工作模式(Normal,Low-power mode),Wetting Current可配置,33路开关分为12路可编程高有效/低有效的SP型开关和22路低有效SG型开关,其主要用于汽车领域和工业控制领域。
1.1硬件设计
1.1.1 封装:
LQFP48
图1.1.1
1.1.2引脚定义:
引脚
| 名称
| 属性
| 功能
| 描述
| 1-3,
47,
48
| SP2-SP4
SP0
SP1
| 输入口
| IO扩展
| 可编程高有效或低有效
| 4-15
| SG0-SG11
| 输入口
| IO扩展
| 只能低有效检测口
| 18
| NC1
| -
| 空脚
| 不连接
| 19
| GND1
| 地
|
|
| 20
| WAKE_B
| 双向口
| 唤醒
| 作为输入口:用于MCU唤醒器件
作为输出口:开漏输出,用于指示器件工作模式,从休眠状态下唤醒。
| 21
| NC2
| -
| 空脚
| 不连接
| 22-30
| SG12-SG20
| 输入口
| IO扩展
| 只能低有效检测口
| 31-37
| SP5-SP11
| 输入口
| IO扩展
| 可编程高有效或低有效
| 38
| INT_B
| 双向口
| 中断
| 作为输入口:用于MCU唤醒器件
作为输出口:开漏输出,用于指示检测的IO发生跳变
| 39
| AMUX
| 输出口
| 模拟输出
| 多路开关的模拟选择输出
| 40
| VDDQ
| 输入口
| 电源口
| 5V/3.3V输入,SPI的供电输入
| 41
| MISO
| 输出口
| SPI通信
|
| 44
| MOSI
| 输入口
| SPI通信
|
| 45
| SCLK
| 输入口
| SPI通信
|
| 46
| CS_B
| 输入口
| SPI通信
| 当片选无效时,MISO ,MOSI为高阻
| 16
17
| VBATP1
VBATP2
| 电源口
| 开关检测的输入电源
| 该脚需要加二极管防反向电压保护,MAX=40V
| 42
43
| GND2
GND3
| 地
| 地
|
| EP
| EP
|
|
| 芯片底部的散热焊盘
|
1.1.3参考电路:
注意事项:1. D1二极管不能省,用于保护器件免受负压冲击损坏;
2. SG只能接低有效的开关量,SP可接低有效或高有效开关量;
2软件设计
软件设计主要包括,器件的初始化,开关量的读取(AD通道的读取),工作模式的切换,故障处理这几个方面。
2.1SPI通信
2.1.1 SPI时序分析:
Spi的通信速率可达到8Mhz,时钟的上升沿采样数据,下降沿移位数据。具体如下图
具体实现函数如下,详细代码参考附录中百度网盘下载地址。
/******************************************************************************
* spi 读写函数
*
* 说明: spi 时序操作函数,第一个时钟的上升沿输出数据。下降沿移位数据。
*
* 参数: cmd 通过 MOSI 写入的数据
*
* 返回: MISO 读出的数据
******************************************************************************/
INT32U Cd1030SpiRdWr (INT32U cmd)
{
INT8U i;
INT32U tmp;
// CPU_ENTER_CRITICAL()
CD1030_SCLK_L()
tmp = 0;
//Delay(1);
CD1030_SPI_EN()
for (i = 0;i < 32;i++)
{
if (cmd & 0x80000000)
{
CD1030_MOSI_H()
}
else
{
CD1030_MOSI_L()
}
//Delay(5);
cmd |