查看: 2454|回复: 4

[原创] MCX N947:Ethernet和Camera功能的同时实现

[复制链接]

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24943
最后登录
2025-7-25
发表于 2024-7-17 10:58:40 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2024-7-17 15:59 编辑

MCX N947EthernetCamera功能的同时实现
一、概述
NXP FRDM-MCXN947板是一款基于MCXN947设备的低成本设计与评估板。NXP为MCXN947设备提供了包括硬件评估板、软件开发集成开发环境(IDE)、示例应用程序和驱动程序在内的工具和软件支持。该板配备了Ethernet PHY,同时板子还支持摄像头模块和NXP的低成本LCD模块PAR-LCD-S035。
屏幕截图 2024-07-05 105519.png
在本文中,我们将探讨如何在MCXN947板上同时实现Ethernet连接传输和使用摄像头获取图像的功能。
硬件环境:
l  开发板:FRDM-MCXN947
l  显示屏:3.5" TFT LCD(P/N PAR-LCD-S035)
l  摄像头:OV7670
l  网线:RJ45
软件环境:
l  IDE:MCUXpresso IDE v11.9.0

二、引脚配置及复用
在设计电路时需要注意避免引脚冲突,即确保同一引脚在不同时间不会被配置为执行相互冲突的功能。配置引脚功能时则需要考虑其电气特性(如电压范围、电流驱动能力等)是否满足外设的要求。编写软件需要考虑不同版本的MCU固件或库文件对引脚复用的支持情况,以确保软件的兼容性和稳定性。
导入FDRM-MCXN947的SDK中的"lwip_examples"->"lwip_ping_bm"工程,打开"board"->"pin_mux.c"文件,可以看到在Ethernet连接中其引脚的配置情况,如下表所示:
  
Pin Name
  
Pinmux Assignment
P1_4
ALT9 -  ENET0_TX_CLK
P1_5
ALT9 -  ENET0_TXEN
P1_6
ALT9 -  ENET0_TXD0
P1_7
ALT9 -  ENET0_TXD1
P1_8
ALT9 -  ENET0_TXD2
P1_9
ALT9 -  ENET0_TXD3
P1_13
ALT9 -  ENET0_RXDV
P1_14
ALT9 -  ENET0_RXD0
P1_15
ALT9 -  ENET0_RXD1
P1_20
ALT9 -  ENET0_MDC
P1_21
ALT9 -  ENET0_MDIO
从NXP官网上下载一份MCXN947板的原理图,在其中分别找到Camera和FlexIO LCD所对应的模块,如下图所示:
屏幕截图 2024-07-05 114423.png
屏幕截图 2024-07-05 135832.png
FlexIO是由NXP开发出来的一种灵活的输入/输出(I/O)技术,用于在微控制器(MCU)和外部设备之间提供高速、可编程的通信能力。它允许开发者通过配置微控制器内部的FlexIO模块,来实现对多种通信协议的模拟和自定义协议的开发。
这里需要注意,这块LCD仅支持3V I/O电压,因此在配置该连接器上的所有引脚时,必须确保它们都被设置为3V3操作模式。
下图为SDK中的例程用摄像头采集图片并将其传输并显示在LCD显示屏上的工作原理:
屏幕截图 2024-07-05 143903.png
可以看到,LCD模块并没有引脚与Ethernet和Camera功能实现所需的引脚冲突,而配置Camera模块所需的引脚与Ethernet有重复,在NXP官网提供的datasheet可以查到引脚复用如下表所示:
  
Pin Name
  
Pinmux Assignment
P0_4
ALT0 - P0_4
P0_5
ALT0 - P0_5
P1_4
ALT7 - SmartDMA_PIO0
P1_5
ALT7 - SmartDMA_PIO1
P1_6
ALT7 - SmartDMA_PIO2
P1_7
ALT7 - SmartDMA_PIO3
P1_10
ALT7 - SmartDMA_PIO6
P1_11
ALT7 - SmartDMA_PIO7
P1_18
Default-PIO-Low
P1_19
Default-PIO-High
P2_2
ALT1 - CLKOUT
P3_2
ALT2 - FC7_P0
P3_3
ALT2 - FC7_P1
P3_4
ALT7 - SmartDMA_PIO4
P3_5
ALT7 - SmartDMA_PIO5
可以看到,其中P1_4、P1_5、P1_6、P1_7四个引脚是与Ethernet功能所需要配置的引脚相互冲突的。而Ethernet配置的引脚已经引出与网线接口固定好,所以我们需要将这些引脚进行更改,寻找它们在Camera模块中相对应的功能再对它们进行复用。
在datasheet中可以查到,P3_0、P3_1、P3_2、P3_3分别与之对应,因此我们需要打开软件准备所提到的Demo中的工程中的"pin_mux.c"文件里的引脚配置更改为新的设置。
然而,P3_2、P3_3已经被用作I²C的传输了,因此需要将这两个引脚原先的配置进行变更,查找datasheet,发现可以分别将其更改为P3_8、P3_7,这里需要注意,源代码中引脚复用功能的号码也有所变更,需要将其更改为"kPORT_MuxAlt3"。
其他引脚不做改变,更改后的引脚如下表所示:
  
Previous  Pin
  
Current  Pin
Pinmux  Assignment
P1_4
P3_0
ALT7 -  SmartDMA_PIO0
P1_5
P3_1
ALT7 -  SmartDMA_PIO1
P1_6
P3_2
ALT7 -  SmartDMA_PIO2
P1_7
P3_3
ALT7 -  SmartDMA_PIO3
P3_2
P3_8
ALT3 -  FC7_P0
P3_3
P3_7
ALT3 -  FC7_P1

三、功能实现
将所需的外设与开发板连接好,便可以进行代码的整合了。此处,P3_0、P3_1、P3_7、P3_8四个引脚并未直接引出来,查询开发板的原理图可以发现,板上有裸露的焊盘TP12、TP31、TP18、TP16与之一一对应,此时用线将摄像头上引脚与焊盘相连即可。
屏幕截图 2024-07-05 152914.png
  
Pin  Name
  
Solder  Joint
P3_0
TP12
P3_1
TP31
P3_7
TP18
P3_8
TP16
连接后实物图如下所示:
图片2.jpg
将SDK->"display_examples"->"smartdma_camera_flexio_mculcd"中的程序整合到SDK-> "lwip_examples"-> "lwip_ping_bm"中,注意将"board","drivers","component","source"文件夹中的.c和.h文件整合到一处,并在"项目"->"属性"->"C/C++ Build"->"Settings"->"Includes"中添加好对应文件夹作为头文件路径。
屏幕截图 2024-07-05 162935.png
工程整合完成后,便可以进行编译并下载到板子里了。输出结果如下图所示:
屏幕截图 2024-07-05 161847.png
图片1.jpg

四、总结
观察上述结果,可以看到Ethernet和Camera的功能可以同时在MCX N947的板子上同时实现。其中"lwip_ping_bm"演示应用程序在 lwIP TCP/IP 协议栈上展示了一个 Ping 演示,该演示使用了 ICMP 协议。应用程序会定期向 PC 发送 ICMP 回显请求,并处理 PC 的回复。而"smartdma_camera_flexio_mculcd"演示应用则是展示了如何使用smartDMA(智能直接内存访问)技术从OV7670摄像头接口逐帧获取图像数据,并通过FlexIO LCD接口将这些捕获的图像显示在ST7796S低成本液晶面板上。
通过对引脚的重新配置和复用,即可以实现在MCX N947上同时使用Ethernet和Camera功能。

回复

使用道具 举报

  • TA的每日心情
    奋斗
    昨天 10:12
  • 签到天数: 2376 天

    连续签到: 85 天

    [LV.Master]伴坛终老

    84

    主题

    1万

    帖子

    3

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    22037
    最后登录
    2025-7-25
    发表于 2024-7-17 11:39:30 | 显示全部楼层
    这个不错,可以做网络监控了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-4-15 14:49
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    19

    主题

    132

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1237
    最后登录
    2025-7-11
    发表于 2024-7-17 22:08:12 来自手机 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 09:45
  • 签到天数: 340 天

    连续签到: 5 天

    [LV.8]以坛为家I

    12

    主题

    1107

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2540
    最后登录
    2025-7-25
    发表于 2024-7-20 23:54:33 | 显示全部楼层
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    110

    主题

    3406

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9010
    最后登录
    2025-7-23
    发表于 2024-7-22 08:44:47 | 显示全部楼层
    先收藏了
    加油哦
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-26 07:57 , Processed in 0.094306 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表