你好,我正在使用连接到我的微控制器板的 FRDMPT2000EVM。
两块电路板之间的连接是:
RESET、DRVEN、SCLK、MISO、MOSI、CS、VCCIO (3.3V)、VCC5,CLK。
我确定 SPI 通信正常(可以读写寄存器)。
我用评估板上的 CLK 跳线(已关闭)上的示波器计验证了 CLK 信号符合规格(频率 1MHz,占空比 50%,电压等级 3.3V),但是当我读取 MainBackupClockStatus 寄存器(地址 0x1A8)时,第 0 位(loss_of_clock)已确定,表明无法识别外部时钟,但我确信时钟是正确的而且连接正确,我还尝试在同一个寄存器中设置 switch_to_clock_pin 位但没有成功,请帮帮我,错误在哪里?
此致
你好,拉法、
我明白你的意思。
我认为就我而言,问题在于,在启动时,PT2000 无法识别外部时钟,因为提供时钟的微控制器板无法与 PT2000 同时供电,因此 PT2000 首先在没有外部时钟的情况下启动,然后微控制器开始为时钟供电,但此时我必须手动切换时钟。
我希望,在最后一块同时启动 PT2000 和微控制器的主板中,PT2000 能够在启动阶段识别时钟。
再次感谢,并致以最崇高的敬意
你好 alessandrocorti
日安
如果外部时钟出现故障:设备会自动切换到备用时钟
如果外部时钟返回:设备通常不会自动返回
您必须再次手动切换
希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。
祝你愉快,好运连连。
你好,拉法、
谢谢您的答复,我只想问最后一个问题,因为我还有一个疑问、
一般来说,我必须每次都手动切换到外部时钟引脚,还是 PT2000 在识别到外部时钟时会自动切换?
谢谢
此致问候
你好 alessandrocorti
日安
您确认我需要延迟吗?
是的,你实施得很完美。
这是正确的还是为了提高功能安全,我必须将延迟时间设置得更长?
我认为,超过 50 人是过分的。如果你想确定的话,可以再给它 20 us,50 us 应该没有问题。
一般来说,是否必须在两次连续访问寄存器之间插入延迟?
一般来说,没有必要这样做;这种延迟是为了让 PT2000 有时间稳定时钟。
希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。
祝你愉快,好运连连。
感谢 RafaR 的答复。
我以为 PT2000 芯片可以单独切换到外部时钟,而无需通过用户软件手动切换。
总之,正如我之前所说,我试图手动切换,但之后所有寄存器访问都返回类似 0xAAAC 的错误代码。
我不得不在写寄存器访问和读寄存器访问之间增加 50 us 的延迟时间,现在这个新函数似乎可以正常工作了:
int PT2000ClockCheck(PT2000_Device*PT2000Device)
{
PT2000Device->extClkIsOk= PT2000MissingClkBitCheck(PT2000Device);
同时( !PT2000Device->extClkIsOk)
{
PT2000Device->BkpClkStatReg.B.SwitchToClkPin= 1;
PT2000WriteRegister(PT2000Device、 主备份时钟状态,PT2000Device->BkpClkStatReg.U);
delayus(50)); // 等待 50 微秒
PT2000Device->extClkIsOk= PT2000MissingClkBitCheck(PT2000Device);
}
返回0;
}
函数 PT2000MissingClkBitCheck 的位置:
布尔 PT2000MissingClkBitCheck(PT2000_Device*设备)
{
布尔CLKCheckResult = TRUE;
// 检查 CLK 1MHz
PT2000TransferData(PT2000Device.SpiCmdWrite) SpiCmdWrite, 选择注册, common_page); // 设置公共页面
PT2000Device->BkpClkStatReg.U= PT2000TransferData(PT2000Device、 数据读取, 主备份时钟状态, 0x00); // 读取备份时钟状态寄存器
如果( PT2000Device->BkpClkStatReg.B.LossOfClk)
{
CLKCheckResult = FALSE; // 如果没有 1MHz CLK,则将结果设置为 0
}
返回CLKCheckResult;
}
如果没有 delayus(50) 就不起作用。
您确认我需要延迟吗?
这是正确的还是为了提高功能安全,我必须将延迟时间设置得更长?
一般来说,是否必须在两次连续访问寄存器之间插入延迟?
顺祝商祺!
你好 alessandrocorti
日安
PLL 在启用外部 CLK 后约 25 秒锁定
switch_to_clock_PIN:此位(在上升沿处于活动状态)用于提供一种重置时钟丢失条件的方法。如果该位是在时钟丢失条件下设置的,则一旦时钟管理器将 PLL 输入切换到外部基准电压源,它就会被重置。如果该位在没有时钟损失的情况下设置,则该位会立即重置而不会产生任何影响。
您能否确认在尝试执行 switch_too_clock_pin 时 PLL 确实发生了变化?
RESET后,延迟尝试。让时钟监测稳定下来。
我还建议你重读第 7.4.3 章时钟监测、闪光灯启用和数据表的 drVen
希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。
祝你愉快,好运连连。