主题中讨论的其他器件:HALCOGEN
您好!
当我的模块处于从接收器模式时、我尝试与 i2c 通信。
我正在从计算机向 HDK 发送命令、但我的 I2CCNT 寄存器不变。
我可以在 Rx 缓冲区等中看到我发送的接收值、但 CNT 寄存器的 denst 会增加或减少。
我缺少什么器件?
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.
您好!
当我的模块处于从接收器模式时、我尝试与 i2c 通信。
我正在从计算机向 HDK 发送命令、但我的 I2CCNT 寄存器不变。
我可以在 Rx 缓冲区等中看到我发送的接收值、但 CNT 寄存器的 denst 会增加或减少。
我缺少什么器件?
您好、Gunce、
I2CCNT 寄存器是一个递减计数寄存器、用于配置要发送的字节数、 在发送每个字节后、递减计数器将减1、然后在发送所需的字节数后、计数器变为0、然后停止条件自动发送。
如果您观察到以下示例代码
在这里、我们要使用要传输的字节数来设置该 I2CCNT 寄存器、即在触发启动条件之前、在本例中为10个字节、 一旦触发起始条件后、数据将逐字节传输、并且该 CNT 寄存器将每次递减1、直到它变为零、一旦变为零、停止条件将被触发。
--
谢谢、此致、
Jagadish。
您好 Jagadish、
我从 HALCOGEN 中设置数据计数值、而且由于示例注释中显示为可选、因此我没有对代码使用 i2cSetCount 命令。
我要为项目将 I2CCNT 寄存器设置为3。 这是接收任何数据之前的缓冲器和寄存器。 它被正确设置为3。
这是在接收3个字节的数据之后。 我可以看到我发送的值在我的 rxBuffer 中被接收。 I2CCNT 寄存器现在不应该为0吗? 它仍然相同、并且不会降低。
该寄存器不应该自动计数? 或者、我应该专门做些什么来正确运行它吗?
您好、Gunce、
刚才我已经测试过、对了、寄存器不是在递减、而是像我提到的那样工作。
我刚刚使用3个字节的数据测试了3个条件
第一个条件是正的、即、我正在发送3个字节、所以我用值3初始化了 CNT 寄存器、这里是输出
在这里、停止条件在3个字节后生成、这是显而易见的行为。
2、即使我尝试发送3个字节(即 i2cSend 函数被指定为3个字节)、现在我已将 CNT 寄存器的值初始化为1
在这里、您可以看到在发送1个字节后立即传输了停止条件。
3、 即使 我尝试发送3个字节(即 i2cSend 函数提供3个字节)、现在我也用值5初始化了 CNT 寄存器
在这里、您可以看到停止条件根本不会生成、因为 CNT 值已初始化为 5、但我们仅提供3个字节作为输入。
我注意到 CNT 寄存器的行为、不确定为什么没有正确更新、我将就此与内部团队进行讨论。
--
谢谢、此致、
Jagadish。