FX10(CYUSB4014)USB3.2(10Gbps)开发笔记分享(1):硬件设计与开发环境搭建

作者:Hello,Panda

大家早上好,中午好,下午好,晚上好,熊猫君又来了。这次计划做一个连载,大概6期左右,主要介绍英飞凌最新的FX5/10/20的器件应用。目前,熊猫君手上调试的是一个Sensor(IMX586)+Crosslink-NX FPGA(LIFCL-40)+ FX10(CYUSB4014)的一套板子,调试FPGA采集Bayer图像经USB3.2(10Gbps)传输到计算机。

一、器件介绍

因为拿到的是FX10系列的器件,那么介绍就以CYUSB4014为例。(有消息人士传FX5/10/20都是基于同一个Die,熊猫君这里没有得到官方信息,不予置评)。

(1)支持USB3.2Gen2,兼容10/5GBps和480Mbps PHY;支持USB Type-C,最高32个USB Endpoint;

(2)SoC内置1个150MHz的Cortex-M4F核和1个100MHz的M0+核;

(3)内部存储资源如下:

a)512KB的应用程序Flash空间,用于存储用户应用程序;

b)128KB SRAM,可以配置为4个32KB区域,在在Deep Sleep模式下,这些区域能够配置为Retain Data模式;

c)128KB ROM,内置ROM Boot启动代码,包含设备初始化、写Flash、安全、eFuse编程和其他系统级的函数功能。ROM代码由CM0+ CPU执行;

d)1MB数据缓存SRAM,用做LVSD/LVCMOS到USB的数据缓冲区;

e)1024位的OTP eFuse,其中648bit用于存储系统的Die ID、设备ID、初始化的Trim设置、设备生命周期和安全设置等。其它区域用于存储秘钥、hash值、unique ID等等。在编程eFuse时,VDDD必须是2.5V。

(4)GPIF III接口

支持LVDS/SubLVDS和LVCMOS两种类型的接口输入:

    a)两组LVDS接口,每组由8对数据、1对时钟、1对控制和7根单端LVCMOS控制信号构成,两组可合并为16对数据的链路使用。最高LVDS速率为1.25Gbps/Lane(FX10是接收端时);

b)两个port,每个port由16根数据线,1个时钟和10根控制线构成,2个port可合并为32bit的数据总线,FX10是接收端时,可支持最高160MHz的DDR/SDR数据,是发送端时,最高100MHz。

(5)外设

支持最高48个GPIO:可用作QSPI,7个可配置的I2C、UART或SPI接口,2通道音频接口(I2S或PDM转PCM),一个全速USB2.0 FS用于VCOM通信,8个PWM输出和1个CAN FD接口。

(6)时钟资源

内置了8MHz振荡器,32KHz振荡器,可接入24MHz的外部晶振;内置PLL和FLL,多个时钟分频器。

(7)加密与安全

支持“Secure Boot”,仅允许可执行(execute-only)的代码安全模式,秘钥和TRNG功能。

(8)封装:BGA-169 Ball,10×10mm,0.75mm球间距。

下图是FX10的体系架构框图。

图1 FX10架构框图

二、硬件设计

硬件设计主要考虑供电、启动和接口,PCB Layout时重点考虑信号完整性。本例中将FX10的输入接口设计为LVDS以减少IO使用量。

(1)供电设计

如下图2所示是FX10的供电系统:

图2 FX10供电系统

设计电源系统的两大要点:其一是必须满足功能性能要求,其二是将系统功耗降到最低。将系统功耗降低有两层考虑,一层是使用效率高的电源芯片,第二层就是使FX10工作在最佳最省电的状态。从数据手册上可以看到,在内核电压VDDD工作在1.8V使,能效比最高,因此,各路电轨可设计如下:

a)VDDD:内核供电,设计为1.8V。但需要注意的是,在编程efuse时,需要配置为2.5V;

b) VCCD:FX10内部转换器,将VDDD变为1.1V电压,外接退耦电容即可;

c)VDDIO_X:给外设IO供电,全部设计为1.8V;

d)USB3V18:给USB3.2物理层供电,1.8V;

e)V33:给USB2 HS PHY供电,3.3V;

f)VDDIO_P0/1:LVDS/LVCMOS接口模块,因为选择的是LVDS接口,该处必须使用3.3V供电;

g)VDDIO_Px_CTRL:单端控制信号供电,选择1.8V。

由上可知:需要3.3V、2.5V和1.8V三组供电,如无需使用efuse功能或3.3V为可在线编程电源,则只需3.3V和1.8V两组供电即可。

(2)启动模式

BOOT模式通过GPIO PMODE_13.0选择,该IO低电平时从内部Flash启动,高电平时从USB启动。

(3)Layout设计

FX10器件Layout设计请参见官方文档AN238422《EZ-USB FX5/FX10 hardware design Guidelines and schematic checklist》。

三、开发环境

(1)开发环境和编译器

FX10 SoC端开发环境使用Modus ToolBox交叉环境+Visual Studio Code IDE(或IAR、ARM MDK等)编译器实现。官方提供的SDK基于FreeRTOS(当前基于内核版本version 10.4.6),SDK提供外设驱动库、LVDS IP驱动、USB协议栈和DMA管理等等。

官方提供了若干个例程,包括UAC、UVC、USB3 Vision等音视频流协议,使用LVCMOS接口的Slave FIFO协议等。用户可以基于例程修改开发自己的应用。需要特别注意的是Slave FIFO例程仅支持LVCMOS接口输入。

根据所选的编译器IDE,可以支持GUN、ARMCC或IAR。建议用户选择自己熟悉的IDE和编译工具链。官方给的例程是基于Modus ToolBox 3.1.0及以上版本+Visual Studio Code IDE+OpenOCD KitProg3调试。

下图3是Modus ToolBox支持EZ-USB FX10开发框架。

图3 ModusToolbox For EZ-USB FX10

(2)在线调试

在线调试支持SWD接口和JTAG接口。FX10支持OpenOCD和GDB调试协议,对应的调试器分别是KitProg3和Segger J-Link。所有的官方开发套件都搭载KitProg3调试器,这个调试器原厂的1千多,第三方贰佰来块。对国内用户而言,似乎更加熟悉J-LINK。

(3)计算机端

与上一代的CyUSB3014类似,提供了一个EZ-USB Control Center实现一些基本的功能,如编程、查看设备信息。UVC、U3V等协议可以直接使用第三方工具播放,Slave FIFO也是老办法,自己写客户端软件接收数据和解析、保存、播放。

好了,今天算是起了个头。对FX10的器件特点、硬件设计和开发调试环境的搭建做了一个简要介绍。下一期是修改、编译和调试SDK软件的内容。各位晚安。Good Night。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端项目部署

一、本地服务器部署: 解决页面刷新404问题: 1、使用 hash 模式 2、当路径不匹配的时候,直接访问 index.html 3、使用插件:connect-history-api-fallback https://www.npmjs.com/package/connect-history-api-fallback npm ins…

观测云数据在Grafana展示的最佳实践

背景 在当今的数据驱动世界中,组织越来越依赖于实时数据来做出决策。数据可视化是理解和分析这些数据的关键工具,它帮助用户将复杂的数据集转换成直观的图表和仪表板,从而更容易识别趋势、模式和异常。Grafana,作为一个功能强大的…

架构师面试(三十六):广播消息

题目 在像 IM、短视频、游戏等实时在线类的业务系统中,一般会有【广播消息】业务,这类业务具有瞬时高流量的特点。 在对【广播消息】业务实现时通常需要同时写 “系统消息库” 和更新用户的 “联系人库” 的操作,用户的联系人表中会有未读数…

大模型微调 - transformer架构

什么是Transformer Transformer 架构是由 Vaswani 等人在 2017 年提出的一种深度学习模型架构,首次发表于论文《Attention is All You Need》中 Transformer 的结构 Transformer 编码器(Encoder) 解码器(Decoder) …

基于华为云 ModelArts 的在线服务应用开发(Requests 模块)

基于华为云 ModelArts 的在线服务应用开发(Requests 模块) 一、本节目标 了解并掌握 Requests 模块的特点与用法学会通过 PythonRequests 访问华为云 ModelArts 在线推理服务熟悉 JSON 模块在 Python 中的数据序列化与反序列化掌握 Python 文件 I/O 的基…

python pymysql如何保证数据库更新成功

python pymysql如何保证数据库更新成功 在使用Python的PyMySQL库与MySQL数据库交互时,确保数据库更新操作成功执行,可以通过以下几种方式: 使用execute()和commit() 当执行一个更新(UPDATE)、插入(INSERT)或删除(DELETE)操作时,你需要调用execute()方法来执行SQL语句…

【数据可视化-30】Netflix电影和电视节目数据集可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

【深度强化学习 DRL 快速实践】逆向强化学习算法 (IRL)

Inverse Reinforcement Learning (IRL) 详解 什么是 Inverse Reinforcement Learning? 在传统的强化学习 (Reinforcement Learning, RL) 中,奖励函数是已知的,智能体的任务是学习一个策略来最大化奖励 而在逆向强化学习 (Inverse Reinforc…

入侵检测系统(IDS)与入侵防御系统(IPS):功能对比与部署实践

入侵检测系统(IDS)与入侵防御系统(IPS):功能对比与部署实践 在网络安全防御体系中,入侵检测系统(Intrusion Detection System, IDS)与入侵防御系统(Intrusion Preventio…

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

P12167 [蓝桥杯 2025 省 C/Python A] 倒水 题目描述 小蓝有 n n n 个装了水的瓶子,从左到右摆放,第 i i i 个瓶子里装有 a i a_i ai​ 单位的水。为了美观,小蓝将水循环染成了 k k k 种颜色,也就是说,第 i i i …

短视频矩阵系统可视化剪辑功能开发,支持OEM

在短视频营销与内容创作竞争日益激烈的当下,矩阵系统中的可视化剪辑功能成为提升内容产出效率与质量的关键模块。它以直观的操作界面和强大的编辑能力,帮助创作者快速将创意转化为优质视频。本文将结合实际开发经验,从需求分析、技术选型到核…

制作一款打飞机游戏22:表格导出

编辑器功能扩展 今天,我想让编辑器能够处理一个数组,这是编辑器将要编辑的东西,它只编辑数组。这些区域在后续的不同版本的编辑器中会有不同的含义,但现在我想创建一个模板,能够加载一个二维数组,并将二维…

AI数据分析的利器:解锁BI工具的无限潜力

在数字化浪潮席卷全球的今天,数据已成为企业最宝贵的资产之一。如何高效、准确地分析这些数据,挖掘其中的价值,成为企业决策的关键。AI数据分析,作为新时代的数据分析利器,正逐渐改变着企业的决策方式。而BI&#xff0…

【每天一个知识点】IPv4(互联网协议版本4)和IPv6(互联网协议版本6)

IPv4(互联网协议版本4)和IPv6(互联网协议版本6)是用于在互联网上标识和定位设备的两种主要协议。它们的主要区别在于地址空间、结构、以及一些附加功能。以下是两者的对比: 1. 地址长度 IPv4: 地址长度为32位&#xf…

numpy.random.normal与numpy.random.randn的区别与联系

先说结论: numpy.random.normal 对应的是 正态分布,numpy.random.randn 对应的是标准正态分布,所以 numpy.random.randn 是 numpy.random.normal 的一个特例。 1. numpy.random.normal 从正态(高斯)分布中抽取随机样…

基于 EFISH-SBC-RK3588 的无人机智能巡检终端方案‌

一、硬件架构设计‌ ‌核心算力平台(EFISH-SBC-RK3588)‌ ‌异构计算能力‌:搭载 8 核 ARM 架构(4Cortex-A762.4GHz 4Cortex-A551.8GHz),集成 6 TOPS NPU 与 Mali-G610 GPU,支持多传感器数据并…

软测面经(私)

测试流程 分析需求——>制定测试计划——>设计测试用例——>执行测试——>编写测试报告 黑盒测试 等价类划分、边界值分析法、猜错法、随机数法、因果图。 白盒测试 代码检查法、程序变异、静态结构分析法、静态质量度量法、符号测试法、逻辑覆盖法、域测试、…

那些年踩过的坑之Arrays.asList

一、前言 熟悉开发的兄弟都知道,在写新增和删除功能的时候,大多数时候会写成批量的,原因也很简单,批量既支持单个也支持多个对象的操作,事情也是发生在这个批量方法的调用上,下面我简单说一下这个事情。 二…

通过VIN车辆识别代码查询_精准版API,获取车辆精准参数

通过17位VIN码的精准匹配,帮助用户快速获取车辆的品牌、型号、出厂日期、排量、外观、车辆型号等详细参数。这一API广泛应用于二手车交易、车辆租赁、配件采购和车辆维修等领域,为用户提供一个高效、准确的解决方案。 代码示例 返回格式:js…

Virtuoso ADE采用Spectre仿真中出现MOS管最小长宽比满足要求依然报错的情况解决方法

在ADE仿真中错误问题如下: ERROR (CMI-2440): "xxx.scs" 46338: I2.M1: The length, width, or area of the instance does not fit the given lmax-lmin, wmax-wmin, or areamax-areamin range for any model in the I2.M3.nch_hvt group. The channel w…