嵌入式开发交流网论坛

标题: CD1030编程指南 [打印本页]

作者: 把握当下521    时间: 2019-2-16 19:03
标题: CD1030编程指南
文件版本说明

表 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
[attach]25771[/attach]
              图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参考电路:
[attach]25772[/attach]
注意事项:1. D1二极管不能省,用于保护器件免受负压冲击损坏;
    2. SG只能接低有效的开关量,SP可接低有效或高有效开关量;


2软件设计
软件设计主要包括,器件的初始化,开关量的读取(AD通道的读取),工作模式的切换,故障处理这几个方面。
2.1SPI通信
2.1.1 SPI时序分析:
Spi的通信速率可达到8Mhz,时钟的上升沿采样数据,下降沿移位数据。具体如下图
[attach]25773[/attach]
具体实现函数如下,详细代码参考附录中百度网盘下载地址。
/******************************************************************************
*                 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




欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2