Other Parts Discussed in Thread: TDC7200
主题中讨论的其他器件:TDC7200
大家好、
我 使用的 EVM TDC7200板具有 TM4C1294XL DEV。 电路板。 TDC7200芯片通过 SPI 进行通信,因此我使用 ROM_SSI 与它进行通信。 目前,我正在使用不同的 MCU 模拟“开始”和“停止”信号,在每次启动和停止之间发送2个脉冲,每个脉冲之间有240uS,并计划使用 TDC 的模式2。
在我向 TDC 发送测量命令后,我能够从 INT_STATUS 寄存器(02h)读取0x19,这意味着测量已完成,并且“根据数据表中的8.6.4”,我没有溢出时钟或粗略计数器
到目前为止、我的问题是我尝试读取时间和时钟计数寄存器。 它们是24位寄存器,我现在所做的就是发送地址为“16位”的读取命令,然后我再发送一个“16位”给我可以读取剩余的8位, 但我又回到了“0x2”,它在两个脉冲之间保持不变,“除了两个脉冲之间的时间超过2ms”,这使我认为我读取寄存器的方式有问题!
不确定问题是我读取寄存器的方式还是 TDC 设置中的某个问题。
void IO_SSI_setup (void){
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_SSI2);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
ROM_SysExpalEnable (SYSCTL_Periph_SSI3);
ROM_GPIOPinConfigure (GPIO_PD0_SSI1_SSIPDAT1);// MISOPD0
ROM_GPIO2 (GPIO_SSIP2
);ROM_SSIP2
(ROM_SSIP2)
G_ui32SysClock、SSI_FRF_MOTO_MODE_0、SSI_MODE_MASTER、5000000、16);
ROM_SSIEnable (SSIBASENum);
ROM_GPIOPinTypeGPIOOutput (GPIO_PORTN_BASE、GPIO_PIN_1 | GPIO_PIN_0);
ROM_GPIOPinTypeGPIOOutput (GPIO_PORta_base、GPIO_PIN_7); //使能引脚设置为输出
}
uint32_t TDC7200ReadReg24位(uint8_t addr){
uint32_t u32RxBuff1 = 0x0;
uint32_t u32RxBuff2 = 0x0;
uint32_t u32RxBuff3 = 0x0;
uint16_t u160xFF]
、[U32RxBuff2 = 0x0、UIDEN]、同时[8_t UARTID](非读/写/写/读/写/写)位[UIDEN8_[UCD]、[UIDEN8_UIDr](非读/写/写/位[UIDEN8]、[UCD/写/非 UCD] u32RxBuff3)){//清除 FIFO
}
while (ROM_SSIBusy (SSIBASENum)){
//
尝试#1输出:0 2 0
ROM_SSIDataPut (SSIBASENum、u16TxBuff);//发送前16位
ROM_SSIDataGet (SSIBASENum、&u32RxBuff1);//发送 SSIB2
位/SSIBIZuEN2
;/SSIBIZu2
(SSIBR2)/SSIBIZuEN2)/ SSIBIASuEN2 (SSIBR2)/SSIBIZuEN2 / SSIBIN/ SIDEN2
//发送前16位
ROM_SSIDataGet (SSIBASENum、&u32RxBuff1);//读取垃圾邮件!?
ROM_SSIDataPut (SSIBASENum、0x00);//发送第二个16位
ROM_SSIDataGet (SSIBASENum、&u32RxBuff2);//读取数据
ROM_SSIDataPut (SSIBASENum、0x00);//发送第二个16位 ROM_U32RxBuffer/
%32ux、%U32ux2、%U32ux 2、%U32uF (%UARTx2)
以下是设置后读取的寄存器:
CONFIG1_REG (0x00)
CONFIG2_REG (0x41)
INTRPT_STATUS_REG (0x1F)
INTRPT_MASK_REG (0x07)
粗糙_计数器_OVH_REG (0xFF)
粗糙_计数器_OVL_REG (0xFF)
Clock_counter_OVH_REG (0xFF)
Clock_counter_OVL_REG (0xFF)
Clock_counter_stop_MASKH_REG (0x00)
Clock_counter_stop_MASKL_REG (0x00)