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.

[参考译文] CCS/MSP430FR5994:在没有 FIFO 的情况下交互 OV7670的示例代码

Guru**** 2515105 points
Other Parts Discussed in Thread: MSP430G2452, MSP430FR5994

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/899707/ccs-msp430fr5994-example-code-for-interacting-ov7670-without-fifo

器件型号:MSP430FR5994
主题中讨论的其他器件:MSP430G2452

工具/软件:Code Composer Studio

您好!

我正在使用 MSP430FR5994 Launch Pad、并希望使用不带 FIFO 的摄像头 OV7670来捕获图像。 我只找到了一篇文章、介绍了如何在 MSP430G2452中与 OV7676-FIFO 进行交互。

https://www.rpg.fi/desaster/blog/ov7670-fifo-msp430-launchpad.html

它使用具有 FIFO 的 OV7670。 此外、它还提到作者在功能强大的 LPC1769微控制器中尝试了不带 FIFO 的 OV7670 (以120MHz 运行)。  

我还注意到一篇论文提到他们通过使用 MSP430的 DMA 将 MSP430与 OV7670结合使用。 WISPCAM 利用具有65KB 非易失性低功耗高速存储器(FRAM)的板载微控制器、以48Mbps 的速率通过 DMA 采集图像、同时实现低功耗。" 但本文没有提到 OV7670是否具有 FIFO。  

https://www.researchgate.net/publication/283464051_Self-Localizing_Battery-Free_Cameras

我想知道 MSP430是否能够在没有 FIFO 的情况下与 OV7670进行交互(用于拍摄图像)。

谢谢、

Yubo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Yubo、

    MSP430FR5994运行频率较低、不用于捕获和处理摄像头数据。  我建议您考虑一款专为图像处理应用而设计的器件、例如 TI 的 Sitara 处理器:

    http://www.ti.com/tool/TIDEP0018?keyMatch=SITARA%20CAMERA&tisearch=Search-EN-everything

    BR、
    Leo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Leo、

    有一些教程介绍了如何使用 Arduino 从不带 FIFO 的 OV7670读取图像。 我想知道 Arduino 可以完成这项工作、MSP430也应该能够完成这项工作、对吧? MSP430是否比 Arduino 更强大?  

    https://www.amazon.com/Beginning-Arduino-ov7670-Camera-Development/dp/1512357987

    https://www.instructables.com/id/OV7670-Arduino-Camera-Sensor-Module-Framecapture-T/

    谢谢、

    Yubo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Yubo、

    我曾与一位同事交谈过、他实现了类似的功能、但使用 MSP 的摄像头模块(TCM8230MD)略有不同。 他每秒只能获得15帧、分辨率为320x240、能够可靠地进行黑白作业。 您的分辨率和帧速率要求是什么?

    BR、
    Leo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Leo、

    我的要求很低。 我只需要每隔几秒就使用它来对图像进行采样、因此它将是每隔几秒1帧(可能是2秒、5秒等)。 我不会将其用于视频流。  

    您是否有同事使用 MSP430实现了 OV7670 (无 FIFO)? 如果你能找到一个、那就很好了、这样我就可以使用他/她的项目代码、或者至少我可以使用它来构建我自己的项目代码。

    目前、我只找到了一个使用 Arduino 实现 OV7670 (不带 FIFO)的教程。 您对将基于 Arduino 的项目转移到 MSP One 有何看法? 您是否认为这是可能的?

    谢谢、

    Yubo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Yubo、

    我已向您发送了一个朋友请求、以便我可以让您与其他人联系。

    BR、

    Leo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Leo、

    谢谢。 我接受了请求。

    BR、

    Yubo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yubo;

    很抱歉耽误你的回答。

    我没有 OV7670的数据表、以前从未使用过。 但我将根据我以前的经验尝试回答。

    一般性发言:

    如果 OV7670内部有一个帧缓冲器、那么您应该能够按照自己的速度从它读取数据帧。 但请确保在读取期间冻结摄像头。

    如果它没有帧缓冲器。 然后、您必须逐行读取、假设它具有行缓冲器或像素 FIFO。 这意味着 MSP430的读取速度必须快于像素时钟加上水平消隐周期。 如果水平挡片是可调节的、通常可以通过 I2C 或 SPI 接口进行调节、使其更长。 然后、您将有足够的时间在新行出现之前读取整个行。  

    祝您好运!

    李文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wen、

    明白了。 感谢您的解释。 我要试一下。

    最棒的

    Yubo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Wen、

    我现在将 OV7670与 FIFO 版本配合使用。 正如您提到的、"如果 OV7670内部有一个帧缓冲器、 然后、您应该能够按照自己的进度从其中读取数据帧"、我假设在拍摄图像并将其保存到黄油中之后、我需要为缓冲器提供一个时钟并读出图像。  

    我计划使用 DMA 从摄像头缓冲器中读取数据。 我的理解是、为了确保 DMA 在我们为摄像机缓冲器提供的每个时钟周期从摄像机的数据端口(D0/D1/.../D7)正确读取数据、我们需要使用相同的时钟触发 DMA。  

    我知道我们可以使用一些专用引脚将 MCLK/SMCLK 输出到外设。 因此、我们可以使用它将 MCLK 或 SMCLK 拉至摄像头缓冲器。 但是、我查看了 MSP430FR5994数据表中的 DMA 触发器选项、表6-11 DMA 触发器分配未显示可以使用 MCLK 或 SMCLK 作为 DMA 触发器的选项。  

    我的问题是:(1)如果我想使用 DMA、如何为摄像头缓冲器提供时钟并同时使用该时钟来触发 DMA? 或者还有另一种方法可以使用 DMA 正确读取映像? (2)如果没有 DMA 解决方案、我还必须从摄像头缓冲器中读取图像的其他哪些选项?

    谢谢、

    Yubo