Beispiel #1
0
//	功能说明: 等待内部操作完成。 自校准时间较长,需要等待。
static void TM7705_WaitDRDY() {
	unsigned short i;

	for (i = 0; i < 8000; i++) {
		if (DRDY_IS_LOW()) {
			break;
		}
	}

	if (i >= 8000) {
		//printf("TM7705_WaitDRDY() 芯片应答超时 ...\r\n"); /* 调试语句. 用语排错 */
		//printf("重新同步SPI接口时序\r\n");	/* 调试语句. 用语排错 */
		//printf("restart SPI bus\r\n");
		TM7705_SyncSPI();  /* 同步SPI接口时序 */
		//DelayMs(5);
	}
}
Beispiel #2
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_WaitDRDY
*	功能说明: 等待内部操作完成。 自校准时间较长,需要等待。
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
static void ICACHE_FLASH_ATTR
TM7705_WaitDRDY(void)
{
	u32 i;

	for (i = 0; i < 8000; i++){
		if (DRDY_IS_LOW()){
			break;
		}
		//bsp_DelayMS(1);
		os_delay_us(200);
	}

	if (i >= 8000){
		os_printf("TM7705_WaitDRDY() timeout ...\r\n");
		TM7705_SyncSPI();		/* 同步SPI接口时序 */
		bsp_DelayMS(1);
	}
}
Beispiel #3
0
//初始化
void TM7705_Init() {
	TM7705_ResetHard();		/* 硬件复位 */
	DelayMs(5);

	TM7705_SyncSPI();		/* 同步SPI接口时序 */
	DelayMs(5);

	/* 配置时钟寄存器 */
	/* 先写通信寄存器,下一步是写时钟寄存器 */
	TM7705_WriteByte(REG_CLOCK | WRITE | CH_1);			
	/* 使能外部晶振,刷新速率50Hz */
	TM7705_WriteByte(CLKDIS_0 | CLK_4_9152M | FS_50HZ);	
	//TM7705_WriteByte(CLKDIS_0 | CLK_4_9152M | FS_500HZ);	/* 刷新速率500Hz */

	/* 每次上电进行一次自校准 */
	TM7705_CalibSelf(1);	/* 内部自校准 CH1 */
	//TM7705_CalibSelf(2);	/* 内部自校准 CH2 */
	DelayMs(5);
}
Beispiel #4
0
/*
*********************************************************************************************************
*	函 数 名: bsp_InitTM7705
*	功能说明: 配置STM32的GPIO和SPI接口,用于连接 TM7705
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void ICACHE_FLASH_ATTR
bsp_InitTM7705(void)
{
	bsp_DelayMS(10);

	TM7705_ResetHard();		/* 硬件复位 */

	/*
		在接口序列丢失的情况下,如果在DIN 高电平的写操作持续了足够长的时间(至少 32个串行时钟周期),
		TM7705 将会回到默认状态。
	*/
	bsp_DelayMS(5);

	TM7705_SyncSPI();		/* 同步SPI接口时序 */

	bsp_DelayMS(5);

	/* 配置时钟寄存器 */
	TM7705_WriteByte(REG_CLOCK | WRITE | CH_1);			/* 先写通信寄存器,下一步是写时钟寄存器 */

	TM7705_WriteByte(CLKDIS_0 | CLK_4_9152M | FS_50HZ);	/* 刷新速率50Hz */
	//TM7705_WriteByte(CLKDIS_0 | CLK_4_9152M | FS_500HZ);	/* 刷新速率500Hz */

}