This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDC7201-ZAX-EVM:使用 MSP430F5529 LP &TDC7201-ZAX-EVM -是否可以在500us 内将(SPI)写入两个 TDC 寄存器?

Guru**** 2551110 points
Other Parts Discussed in Thread: TDC7201, TDC7201-ZAX-EVM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/831308/tdc7201-zax-evm-using-msp430f5529-lp-tdc7201-zax-evm---is-it-possible-to-write-spi-to-both-tdc-registers-within-500-us

器件型号:TDC7201-ZAX-EVM
主题中讨论的其他器件:TDC7201

您好!

触发器流到达1KHz 时、触发器是一个持续约500us 的5VDC 脉冲。  我使用触发器的上升沿来引起中断、进而导致对两个 TDC 的寄存器0进行写入、除其他外、寄存器0将 TDC 配置为使用触发器的下降沿作为"开始"信号。 请注意、在中断期间不调用寄存器写入函数(如下所示)。

中断后大约需要500us 的时间来配置 TDC、但写入 TDC 寄存器的时间似乎需要750us、因此我正在寻找一种加快此步骤的方法。

在"TDC7200EVN-USB"示例的 main.c 中、"SMCLK"似乎配置为4MHz。  这是"相关"时钟吗? 是否可以将其配置为8MHz (不更改硬件)? (我不知道该时钟是否受 EVM 硬件限制为特定值。)

编辑:应用 程序现在正在使用4MHz XT2时钟与 TDC7201进行通信是否正确? (请参阅以下注释"//4/7:选择 SMCLK = 4MHz")。  是否可以修改此应用以使用 MSP430F5529LaunchPad 上存在的8MHz SMCLK? 注:设备将始终连接到 USB 主机。

void Init_Clock (void)
{

//启用 XT2 XIN/XOUT 引脚
P5SEL |= 0x0C; //在 P5.3和 P5.2
UCSCTL6上选择 XIN、XOUT &=~XT2OFF; //启用 XT2
UCSCTL6 |= XT2DRIVE_3;

P5SEL |= BIT4+BIT5; //选择 XT1

UCSCTL6 &=~(XT1OFF); //
UCSCTL6上的 XT1 |= XCAP_3; //内部负载电容
UCSCTL3 = 0; // FLL 参考时钟= XT1

//循环、直到 XT1、XT2和 DCO 稳定-在本例中循环、直到 XT1和 DCO 稳定


UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
TI_TDC720x_RLED_PxOUT ^= TI_TDC720x_RLED_PIN; //切换 LED
_DELAY_CYCLES (250000);
} while (SFRIFG1&OFIFG); //测试振荡器故障标志

UCSCTL6 &=~(XT1DRIVE_3); // XTAL 现在是稳定的、减少 UCSCTL4的驱动强度

|= SE拉美_0; // ACLK = LFTX1 (默认)

__bis_SR_register (SCG0); //禁用 FLL 控制环路
UCSCTL0 = 0x0000; //设置可能的最低 DCOx、MODx
UCSCTL1 = DCORSEL_7; //选择 DCO 范围50MHz 运行
UCSCTL2 = FLLD_0 + 731; //将 DCO 乘法器(762/498)设置为25MHz/16MHz
//(N + 1)* FLLRef = Fdco
//(762 + 1)* 32768 = 25MHz
//设置 FLL Div = fDCOCLK/2
__BIC_SR_register (SCG0); //启用 FLL 控制环路

// DCO 范围位已
更改时最坏情况下的稳定时间//为 n x 32 x 32 x f_MCLK /f_FLL_reference。
有关优化、请参阅5xx // UG 中的 UCS 一章。
// 32 x 32 x 25MHz / 32、768Hz ~ 780k MCLK 周期、以便 DCO 稳定
__delay_cycles (782000);

//循环、直到 XT1、XT2和 DCO 稳定-在本例中、只有 DCO 必须稳定
执行
{
UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
TI_TDC720x_RLED_PxOUT ^= TI_TDC720x_RLED_PIN; //切换 LED
_DELAY_CYCLES (250000);
} while (SFRIFG1&OFIFG); //测试振荡器故障标志

// 4/7:选择 SMCLK = 4MHz
UCSCTL4 = SELA_XT1CLK + SELESS_XT2CLK + SELM_DCOCLKDIV; // SMCLK=4MHz MCLK=24MHz

//循环直到 XT1、XT2和 DCO 稳定-在这种情况下,只有 DCO 必须稳定


UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + DCOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG; //清除故障标志
TI_TDC720x_RLED_PxOUT ^= TI_TDC720x_RLED_PIN; //切换 LED
_DELAY_CYCLES (250000);
} while (SFRIFG1&OFIFG); //测试振荡器故障标志

TI_TDC720x_RLED_PxOUT &=~TI_TDC720x_RLED_PIN; //关闭红色

}
//

下面是 TDC7201-ZAX-EVM 示例随附的寄存器写入代码。 您是否看到有机会缩短此代码所需的时间?  当我将鼠标悬停在"whiles"上时、CCS 将提供"

"建议使用与进入 LPMx 和 ISR 组合的中断"、因此我将在接下来介绍。

"。

void TI_TDC720x_SPIByteWriteReg (uint8_t addr、uint8_t value、uint8_t dev)
{
uint8_t instr;

if (dev = TDC720x_TDC1)
{
TI_TDC720x_CSB1_PxOUT &=~TI_TDC720x_CSB1_PIN; ///CS 启用
TI_TDC720x_CSB2_PxOUT |= TI_TDC720x_CSB2_PIN;
}否则
{
TI_TDC720x_CSB2_PxOUT &=~TI_TDC720x_CSB2_PIN;
TI_TDC720x_CSB1_PxOUT |= TI_TDC720x_CSB1_PIN;
}
//写入模式和自动包括关闭
安装= TDC720x_write_bit | addr;
Inst = TDC720x_AUTOINC_OFF_BIT & INSTS;

while (!(UCB0IFG&UCTXIFG)); //等待 TXBUF 就绪
UCB0TXBUF = inst; //发送地址的 MSB


while (!(UCB0IFG&UCTXIFG)); //等待 TXBUF 就绪
UCB0TXBUF =值; //发送数据值


while (UCB0STAT 和 UCBUSY); //等待 TX 完成

TI_TDC720x_CSB1_PxOUT |= TI_TDC720x_CSB1_PIN; ///CS 禁用
TI_TDC720x_CSB2_PxOUT |= TI_TDC720x_CSB2_PIN;

}

感谢您的任何帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    B Lench、

    让我与您在本周五之前询问并向您更新的另一个主题一起处理这个主题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、Bharat。

    出于完整性考虑、我要随附 Main.c、因为它存在于 now.e2e.ti.com/.../5001.main.c 中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Bharat、

    抱歉-我错了在 TDC7201上进行注册-写入所需的时间。 实际上、两个寄存器(TDC1和2)的写入时间都小于40uS。

    请不要在这上面花任何(更多)时间!

    再次感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    B Lench、

    感谢您的澄清。 现在、让我关闭此主题。