大家好、我有一个项目需要8个正交编码器。 我已经使用 CLB 创建了5个(加上3个内置编码器)。 我在379 launchpad 上使用了2个瓷砖、使其工作正常。 现在、我已经获得了生产386板、无法使其正常工作。 位置寄存器只是以非常高的速度进行计数。
我按如下方式进行配置:
SYSCTL_enablePeripheral (SYSCTL_Periph_CLK_CLB1);
initTILE1 (CLB1_base);
Xbar_setInputPin (CLBINPUTXBAR_BASE、XBAR_Input1、30);
CLB_CONFIGLocalInputMux (CLB1_base、CLB_IN0、CLB_LOCAL_IN_MUX_Input1);
CLB_CONFIGGPInputMux (CLB1_base、CLB_IN0、CLB_GP_IN_MUX_EXTERNAL);
Xbar_setInputPin (CLBINPUTXBAR_BASE、XBAR_INPUT2、31);
CLB_CONFIGLocalInputMux (CLB1_base、CLB_IN1、CLB_LOCAL_IN_MUX_INPUT2);
CLB_CONFIGGPInputMux (CLB1_base、CLB_IN1、CLB_GP_IN_MUX_EXTERNAL);
clb_enableCLB (CLB1_base);
然后使用以下命令读取计数器:
POS =(Int32_t) CLB_getRegister (CLB1_base、CLB_REG_CTR_C0);
这一切都是以前的工作方式、因此我很确定 syscfg 中的逻辑块配置是可以的。 使用 launchpad 时、我使用了 AUGSIG 输入。 但需要使用这里的 CLB_INPUT_XBAR、以便我可以有10个输入。 379和386项目之间必须有其他不同的内容、但我找不到它。 我还尝试使用 AuxSig 输入、它也执行同样的操作。
我的新板具有20MHz 时钟、因此我认为 CLB 时钟可能太快、并尝试过、也没有帮助
SYSCTL_setCLBClk (SYSCTL_CLBCLKOUT_DIV_1、SYSCTL_CLBTCLKOUT_DIV_2、
SYSCTL_CLB1、SYSCTL_CLBCLK_异 步);
有什么想法、我会错过什么?
谢谢