
前言去年末ST推出的STM32N657DK开发板中,它的摄像头比较特殊。 CSI是相机串行接口的简称和之前常用的类似Ov2640等SCCB接口的摄像头相比,CSI 接口支持高速数据传输,数据传输速度比 SCCB 快得多。例如,CSI 总线提供高达 1Gbps 的数据传输速度,而 SCCB 的数据传输速度相对较慢。具有更低的功耗,采用串行传输方式,减少了信号线的数量,从而降低了功耗。具有更低的功耗,因为它们采用串行传输方式,减少了信号线的数量,从而降低了功耗。 而STM32N6是ST的MCU中第一款支持CSI的单片机,在此之前CSI接口为STM32MP系列独有。 CubeMX在N6使用中的BUG这里我要吐槽一下CubeMX在N6中的各种Bug。首先是RIF的BUG,作为防止用户异常访问的防火墙机制,在N6推出时,CubeMX中并没有直接的RIF选项,需要在搜索框中搜索RIF才可以打开RIF配置,否则在使用摄像头和LCD显示屏的时候就会触发内容保护。 不过今天发现CubeMX可以更新了,而官方的STM32N6的库也更新到了1.1版本。 新版本的CubeMX完善了这个Bug,可以直接配置RIF选项。 其次是CSI和DCMIPP的BUG,而这个BUG是妨碍摄像头使用的最大BUG。 CSI在配置完后,启动CubeMX生成代码的时候会发现CSI的内容没有填充,而DCMIPP的配置则会缺少很多很多的内容。 为了解决这个问题,只能从ST的官方库的例程找到CSI和DCMIPP配置。 直接CV官方的CSI和DCMIPP的配置参数,写入配置。 然后可能是由于CSI的问题,导致时钟树中的IC18是被禁用的。 这里为什么要强调一下IC18呢,因为IC18提供CSI的时钟源。 CSI的时钟源只能由IC18提供,这里并不能配置CSI的IC18,这里也有可能是因为CSI的BUG导致。 而且DCMIPP的主时钟应该和CSI的主时钟相同,因此解决的问题还得包括解决CSI的时钟问题。 官方的例程中对DCMIPP的配置是将其配置为300MHZ,经典配置是333MHZ,这点和手册中描述的一致。 对CSI的时钟配置是由PLL1引入,将其60分频。而上面配置DCMIPP的时候PLL1为1200MHZ,因此CSI的主频是1200/60 = 20MHZ。 当然别忘记了开启CSI的时钟总线使能,这样子就能够解决CubeMX关于CSI和DCMIPP的BUG了。 上述BUG花了很长的时间去启动摄像头,不过从CubeMX的这次更新可以看出官方已经在逐渐的完善N6的功能了,期待这些问题的解决。 驱动移植解决掉上述问题之后,找到ST的BSP支持包
启动DCMIPP即可,当然这里还要配置TDC以便于LCD显示屏启动还有解除LTDC和DCMIPP的内存保护。 |
STM32N6坛友评测出炉,来围观(第二波预约继续)
Keil下的STM32N6之RAM运行工程配置说明
【STM32N6570-DK评测】8.初试AI
【DIY-STM32N6】4.LCD驱动与TouchGFX
相机ISP大揭秘:STM32N6的全新相机系统优势与调优工具(文末有礼)
新版STM32Cube for Visual Studio Code开发体验
【DIY-STM32N6】3.超级一键下载
【DIY-STM32N6】2.底板设计与点亮LED
经验分享常被误解的开、关总中断
【STM32C0测评】Nucleo-C092开发板功耗测试
解决问题也是一个学习过程
大佬,可以发一下源代码看看吗?我配置一直出错,摄像头显示在LCD上一直是花屏,我的邮箱是[email]s17762070039@outlook.com[/email],跪求大佬赐教。
[md]已发送至[email]s17762070039@outlook.com[/email]
大佬哥哥,能不能也发我一份,正在被卡壳折磨中,邮箱地址是[email]987212362@qq.com[/email],还请不吝赐教啊,感谢感谢啊
不好意思啊,大佬哥哥,不知道是我邮箱没搞对还是咋的,没收到啊,邮箱是 987212362@qq.com 来着,麻烦大佬哥哥在帮我确认下,或者再发一份可以嘛,万分感谢❤️ ❤️
不好意思啊,大佬哥哥,不知道是我邮箱没搞对还是咋的,没收到啊,邮箱是 [email]987212362@qq.com[/email] 来着,麻烦大佬哥哥在帮我确认下,或者再发一份可以嘛,万分感谢❤️ ❤️