主题中讨论的其他器件: MSP430WARE
工具/软件:Code Composer Studio
您好!
我尝试使用 MSP430FR5994 Launchpad I2C 与 OV7670摄像头进行通信。 与摄像机交互的第一件事是通过 I2C 设置其寄存器。 我使用逻辑来分析从 SDA 引脚发出的信号、可以看到摄像机的地址能够成功发送出去、但摄像机没有回复、没有 ACK 发回。
因此、我想可能有两个原因:(1) I2C 代码运行不好;(2)摄像头不工作;我通过执行以下操作排除了这两个原因:
(1)我使用了另一个外设器件(DS3231、一个外部 RTC 模块)通过 I2C 与 MSP 进行通信。 它工作得非常好。 我可以在发送 SLAVE_ADDR 后获取 ACK、对于 DS3231、该地址为0x68。 0x21是摄像机的从地址。 这不包括第一个原因。 我的 I2C 代码运行良好;我的 I2C 代码实际上来自 MSP 官方示例代码 MSP430Ware -器件- MSP430FR5XX_6XX - MSP540FR5994 -外设示例-寄存器级别- msp430fr599x_eusci_i2c_standard_master.c
(2)然后、我还使用 Arduino 板通过 Arduino 的 I2C 与摄像机通信。 它也能很好地工作。 Arduino 可从相机获取所有寄存器的值。 因此、这排除了第二个原因。 摄像头状态也不错。
在排除了这两个原因后、我尝试了以下操作:
(1)上拉电阻器:我没有尝试过用于 MSP 的上拉电阻器、1KOhm、4.7KOhm、12.5KOhm 电阻器、它们都不起作用。 但是、对于 Arduino 板、无论它没有上拉电阻器或任何这些值、它们都能正常工作。 因此、上拉电阻也不是问题;
(2)电源:在所有情况下、我只使用3.3V 电压。 Arduino 和 MSP 板均具有3.3V 电源。 我尝试通过 MSP 的3.3V 电源为摄像头加电、然后使用 Arduino 与摄像头通信、但它工作正常;我还尝试通过 Arduino 为其加电并通过 MSP 与其通信、但它仍然无法正常工作; 因此电源也不是问题;
(3)摄像机版本。 OV7670有两个版本、具有或不具有 FIFO 存储器。 我有两个版本、并尝试了这两个版本。 两个电路板均可与 Arduino 配合使用、但两者均不能与 MSP 配合使用;
我在这一问题上遇到了三天的麻烦、并尝试了我能想到的一切。 有什么想法是导致我的问题的原因?
谢谢、
Yubo