我正在做一个使用I2C的项目。一切都可以正常工作 - 但我只能驱动时钟到100KHz。
我使用MCC配置项目,并使用默认的时钟源 - MFINTOSC。这正确地计算并使用了100KHz的时钟。一切正常 - 应用代码正确地进行传输和接收,所有的信号电平/定时都很好。
然而,我想使用更快的时钟(例如400KHz)。问题是,我无法选择数据手册中提到的微控制器的备用时钟源。如果我尝试使用FOSC、FOSC/4、HFINTOSC、MFINTOSC或EXTOSC以外的任何时钟源,我会收到错误信息 - "xxxx时钟源不被支持"。
如果我尝试手动更改寄存器设置以选择不同的时钟源(例如 TMR0),项目可以编译,但 I2C 线不会执行任何操作。
有人能告诉我如何配置/使用其中一个备用时钟源(列在MCC和数据手册中)来生成400KHz的I2C时钟吗?
我正在使用PIC18F47Q43,但如果我尝试配置任何带有较新I2C模块的PIC18(即I2C不是MSSP的一部分),也会遇到同样的问题。似乎数据手册中列出的许多时钟源无法使用。 |