TI中文支持网
TI专业的中文技术问题搜集分享网站

关于MSP430F5529andFDC2214测量电容

int main(void)
{
volatile unsigned int a;
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
while(FDC2214_Init());
P1DIR |= (BIT6+BIT4+BIT3+BIT2+BIT5);
LCD_Init();
LCD_clear();

SCL_OUT;
while(1)
{
a=Count();
LCD_set_XY(0,0);
LCD_display(font6x8[16+(a/10000)]);
LCD_display(font6x8[16+(a%10000/1000)]);
LCD_display(font6x8[16+(a%1000/100)]);
LCD_display(font6x8[16+(a%100/10)]);
LCD_display(font6x8[16+(a%10/1)]);
_delay_cycles(200);
}
}

unsigned char FDC2214_Init(void)
{
unsigned int res;
res = Read_FDC2214(MANUFACTURER_ID);
if(res == 0x5449)
{
Write_FDC2214(RCOUNT_CH0,0x34,0xFB);
//转换间隔时间 T = (RCOUNT_CHx*16)/frefx
Write_FDC2214(RCOUNT_CH1,0x34,0xFB);
Write_FDC2214(RCOUNT_CH2,0x34,0xFB);

Write_FDC2214(SETTLECOUNT_CH0,0x00,0x1B);
//(tS0)=(CH0_SETTLECOUNTˣ16)÷fREF0 稳定时间
Write_FDC2214(SETTLECOUNT_CH1,0x00,0x1B);
Write_FDC2214(SETTLECOUNT_CH2,0x00,0x1B);

Write_FDC2214(CLOCK_DIVIDERS_C_CH0,0x20,0x02);
//选择传感器频率在5MHz到10MHz之间的单端传感器配置 除以2
Write_FDC2214(CLOCK_DIVIDERS_C_CH1,0x20,0x02);
//fREFx = fCLK / CH0_FREF_DIVIDER 0-9bit
Write_FDC2214(CLOCK_DIVIDERS_C_CH2,0x20,0x02);

Write_FDC2214(DRIVE_CURRENT_CH0,0x78,0x00);//0.146mA
Write_FDC2214(DRIVE_CURRENT_CH1,0x78,0x00);
Write_FDC2214(DRIVE_CURRENT_CH2,0x78,0x00);

Write_FDC2214(ERROR_CONFIG,0x00,0x00);//禁止开门狗报错

Write_FDC2214(MUX_CONFIG,0xC2,0x0D);//配置多路复用通道
//输入deglitch滤波器带宽 选择超过振荡罐振荡频率的最低设置 10MHZ
Write_FDC2214(CONFIG,0x14,0x01);
//在通道0上执行连续的转换
//b13 0为活跃模式 1为睡眠模式
//b11 0 全电流激活模式- FDC将驱动最大值传感器电流更短的传感器激活时间。
// 1 低功率激活模式- FDC使用该值。在DRIVE_CURRENT_CHx中对传感器编程激活以最小化功耗。
//b9 b0:使用内部振荡器作为参考频率 b1参考频率由CLKIN引脚提供
//B6 高电流传感器驱动b0: FDC将以正常的传感器电流驱动所有通道(1.5 ma max)。
// b1: FDC将以当前>1.5mA驱动通道0。如果AUTOSCAN_EN = b1(多通道)不支持这种模式模式)
return 0;
}
else
return 1;
}

程序死在while(FDC2214_Init());出不去

想知道FDC2214使用有什么注意事项,为什么读取MANUFACTURER_ID寄存器里面的数不是0x5449

使用的是现成的FDC2214的模块。

Mickey Zhang:

是否为FDC2214EVM: www.ti.com/…/fdc2214evm?我们EVM上使用的是MSP430F5528,关于程序的问题建议您在“微处理器MCU”版块咨询。

赞(0)
未经允许不得转载:TI中文支持网 » 关于MSP430F5529andFDC2214测量电容
分享到: 更多 (0)