imx6 usb增强信号强度

article/2025/9/17 11:30:35

USB信号

参考:官方文档

USB信号完整性取决于许多因素,如电路设计、PCB布局、堆叠和阻抗。每个产品可能彼此不同,因此客户需要微调参数,以获得最佳的信号质量。

测试板已经路由出两个USB端口:一个OTG1,一个主机。每个端口都有几个寄存器来调整信号电压水平和转换速率。请参见文档“配置USB on i.m mx 6 Series (AN4589)”中对寄存器的详细描述。

USBPHYx_TXn

USB PHY发射机控制寄存器处理传输控制。位字段TXCAL45DP和TXCAL45DM, D_CAL调节输出电压幅值。

ps:该软件不支持OTG的全部功能,该端口通常用作设备或嵌入式主机,由USB_ID选择。

Command samples:
/unit_tests/memtool 0x20c9010 1 // OTG Port Read register data
/unit_tests/memtool 0x20cA010 1 // Host Port Read register data
/unit_tests/memtool 0x20c9010=0x1c060607 //write OTG_PHY_TX1
/unit_tests/memtool 0x20cA010=0x1c060607 //write HOST_PHY_TX

TXCAL45DP、TXCAL45DM:

位域TXCAL45DP和TXCAL45DM可以改变高速终端的电阻。增加终端电阻器的值将增加DM/DP信号电平。
解码选择45欧姆电阻到USB_DP输出引脚。
最大阻力= 0000。

D_CAL

有了这个字段,高速驱动器的当前参考可以修整。
降低电阻将增加驱动器电流,因此传输信号的幅度将增加。
电阻微调代码:
0000 = 0.16%
0111 = NORMAL
1111 = +25%

在这里插入图片描述
ps:请记住在调整寄存器之前将DUT连接到相应的主机/设备,否则操作可能无效或可能导致系统崩溃。

修改应用

imx6qdl.dtsi+&usbphy1 {
+    tx-d-cal = <5>;
+    tx-txcal45dn = <4>;
+    tx-txcal45dp = <4>;
+};
phy-mxs-usb.c+#define HW_USBPHY_TX_TXCAL45DN_MASK     0xf00
+#define HW_USBPHY_TX_TXCAL45DP_MASK     0xf0000#define BM_USBPHY_CTRL_SFTRST                  BIT(31)#define BM_USBPHY_CTRL_CLKGATE                 BIT(30)
@@ -191,6 +193,8 @@ struct mxs_phy {struct regulator *phy_3p0;bool hardware_control_phy2_clk;u32 tx_d_cal;
+       u32 tx_txcal45dn;
+       u32 tx_txcal45dp;};static inline bool is_imx6q_phy(struct mxs_phy *mxs_phy)
@@ -264,6 +268,20 @@ static int mxs_phy_hw_init(struct mxs_phy *mxs_phy)writel(val | mxs_phy->tx_d_cal, base + HW_USBPHY_TX);}+       /* Change TXCAL45DN if necessary */
+       if (mxs_phy->tx_txcal45dn) {
+               val = readl(base + HW_USBPHY_TX);
+               val &= ~HW_USBPHY_TX_TXCAL45DN_MASK;
+               writel(val | (mxs_phy->tx_txcal45dn << 8), base + HW_USBPHY_TX);
+    }
+
+       /* Change TXCAL45DP if necessary */
+       if (mxs_phy->tx_txcal45dp) {
+               val = readl(base + HW_USBPHY_TX);
+               val &= ~HW_USBPHY_TX_TXCAL45DP_MASK;
+               writel(val | (mxs_phy->tx_txcal45dp << 16), base + HW_USBPHY_TX);
+    }
+return 0;}@@ -637,6 +655,26 @@ static int mxs_phy_probe(struct platform_device *pdev)}}+       if (of_find_property(np, "tx-txcal45dn", NULL)) {
+               ret = of_property_read_u32(np, "tx-txcal45dn",
+                       &mxs_phy->tx_txcal45dn);
+               if (ret) {
+                       dev_err(&pdev->dev,
+                               "failed to get txcal45dn value\n");
+                       return ret;
+               }
+       }
+
+       if (of_find_property(np, "tx-txcal45dp", NULL)) {
+               ret = of_property_read_u32(np, "tx-txcal45dp",
+                       &mxs_phy->tx_txcal45dp);
+               if (ret) {
+                       dev_err(&pdev->dev,
+                               "failed to get txcal45dp value\n");
+                       return ret;
+               }
+       }
+platform_set_drvdata(pdev, mxs_phy);

PMU_REG_3P0

这个寄存器定义了内部LDO_USB模块的控制位和状态位,该模块由两个USB VBUS引脚中的任意一个供电。该调节器只提供低速和全速收发器USB PHYs。因此,它只影响全速和低速变速器的电压水平,而不影响高速变速器。
在这里插入图片描述
在这里插入图片描述

USBC_n_PORTSC1

端口控制通常用于状态端口复位、挂起和当前连接状态。端口控制也用于启动测试模式或强制信令,并允许软件将PHY置于低功率悬挂模式并禁用PHY时钟。

Command samples:
/unit_tests/memtool 0x2184184 1 //OTG Port Read register data
/unit_tests/memtool 0x2184184=0x18441205 //OTG Port Test packet
/unit_tests/memtool 0x2184184=0x18411205 //OTG Port J_STATE
/unit_tests/memtool 0x2184184=0x18421205 //OTG Port K_STATE
/unit_tests/memtool 0x2184184=0x18431205 //OTG Port SE0 (host) / NAK (device)
/unit_tests/memtool 0x2184184=0x18401305 //OTG Port Reset
/unit_tests/memtool 0x2184184=0x18401285 //OTG Port Suspend
/unit_tests/memtool 0x2184184=0x18401245 //OTG Port Resume
/unit_tests/memtool 0x2184384 1 //Host Port Read register data
/unit_tests/memtool 0x2184384=0x18441205 //Host Port Test packet
/unit_tests/memtool 0x2184384=0x18411205 //Host Port J_STATE
/unit_tests/memtool 0x2184384=0x18421205 //Host Port K_STATE
/unit_tests/memtool 0x2184384=0x18431205 //Host Port SE0 (host) / NAK (device)
/unit_tests/memtool 0x2184384=0x18401305 //Host Port Reset
/unit_tests/memtool 0x2184384=0x18401285 //Host Port Suspend
/unit_tests/memtool 0x2184384=0x18401245 //Host Port Resume

在这里插入图片描述
在这里插入图片描述

其他有用的命令和脚本

Command samples:
echo mem > /sys/power/state // Let the system enter suspend (standby) mode
echo enabled > /sys/class/tty/ttymxc0/power/wakeup // Set Console as the
system wakeup source
for i in $(find /sys -name wakeup | grep usb);do echo enabled > $i;echo "echo
enabled > $i";done; // USB remote wakeup (as system wakeup source) is not
enabled by default, user can enable this feature by using this script, after
plugging in the USB device.

http://chatgpt.dhexx.cn/article/McmLCFnC.shtml

相关文章

iMX6ULL上手体验

CSDN仅用于增加百度收录权重&#xff0c;排版未优化&#xff0c;日常不维护。请访问&#xff1a;www.hceng.cn 查看、评论。 本博文对应地址: https://hceng.cn/2018/03/28/iMX6ULL上手体验/#more 第一次接触NXP/Freescale的SOC&#xff0c;记录拿到板子后快速上手的技巧和思维…

imx6ul 驱动详解

链表的知识&#xff1a; struct list_head { struct list_head *next, *prev; };API函数 函数 功能LIST_HEAD声明并初始化双向链表。INIT_LIST_HEAD初始化双向链表。list_add在链表头head节点后面插入一个新的节点new。list_add_tail在链表末尾tail节点后面插入一个新的节点n…

IMX6 / IMX8 系列芯片简单对比

imx6有&#xff1a; imx8 分为&#xff1a; IMX8/IMX8M/IMX8X三个系列 IMX8有&#xff1a;iMX 8qm 和 IMX8-QP IMX8M有&#xff1a;IMX8mn 、 IMX8mm 、 IMX8mq 、IMX8mp 3.IMX8X 有&#xff1a;iMX8dxp / iMX8qxp 和 iMX8dx

IMX6启动流程

目录 1. 流程图 2. u-boot.imx的构造 1. 流程图 正常情况下&#xff0c;一台IMX6设备的启动路径就是图中自上而下最左边那条路&#xff1a; 启动/复位后先检查CPU的ID(每颗芯片独一无二) ------> 检查复位状态(有没有按下复位键) ------> 检查boot模式(mmc? USB? SPI…

ARM恩智浦IMX6系列-产品开发无忧-四种主控核心

ITOP-IMX6 开发平台是基于 NXP 的 IMX6 系类的芯片开发的一款产品&#xff0c;CPU 采用 Cortex-A9 内核&#xff0c;主频达1Ghz。 ITOP-IMX6 开发板平台均由核心板和底板构成&#xff0c;核心板的主要芯片有 CPU,内存&#xff0c;EMMC&#xff0c;电源管理&#xff0c;EEPROM 等…

关于NXP公司的IMX6系列芯片参考资料体系介绍

IMX6系列芯片由FreeScale公司基于ARM核设计开发&#xff0c;该公司于2015年被NXP公司收购。之前由FreeScale提供支持的资源被整合进NXP支持体系&#xff0c;资料内部FreeScale和NXP的标记都有&#xff0c;文档内部原有资源链接失效&#xff0c;给人混乱感。加之IMX6系列芯片本身…

伺服电机矢量控制原理与仿真(1)控制系统的建立

自动控制原理综合实践 直流伺服电机及其控制为什么是六步换向法类比有刷直流电机类比三相异步电机这些差异意味着什么 从六步换向到FOCFOC的大体流程FOC的目的电流环的执行器&#xff1a;SVPWM 从物理走向数学直流伺服电机的数学模型&#xff08;正弦式&#xff09;从数学模型到…

台达PLC模拟量或台达伺服电机控制模块程序案例

台达PLC模拟量或台达伺服电机控制模块程序案例&#xff0c;二选一 ID:6958618562901252Anh13309639501 以下内容不属于本博内容&#xff0c;仅仅是相关参考&#xff1a; 台达PLC采用可以编制程序的存储器&#xff0c;用来在其部存储执行逻辑运算、顺序运算、计时、计数和算术运…

使用Arduino开发板控制伺服电机

大多数情况下&#xff0c;直流电机控制的控制方法都是非常简单的&#xff08;只需要连接电源和地&#xff09;。伺服电机有一些不同&#xff0c;它使用3根线连接&#xff08;电源、地和信号&#xff09;将电机移动到某个旋转位置。该位置由信号线上发送的信号决定。一旦电机到达…

步进伺服电机控制程序: 1.实现步进电机的正转、反转控制 2.相对和绝对位置运动

步进伺服电机控制程序: 1.实现步进电机的正转、反转控制 2.相对和绝对位置运动 3.电机复位找原点功能 4.显示电机的当前位置 硬件:1西门子S7-200PLC 2.昆仑通泰MCGS触摸屏 3.步进电机驱动器(不限制厂家) 西门子200步进电机控制 4810625077520119gao699592

三菱fx3u型PLC和昆仑通泰MCGS触摸屏控制松下伺服电机控制程序

三菱fx3u型PLC和昆仑通泰MCGS触摸屏控制松下伺服电机控制程序 一、包含内容&#xff1a; mcgs7.7触摸屏程序 2.三菱FX3U型PLC梯形图程序一个&#xff0c;带IO表 3.PLC和伺服电机接线图一个 4.伺服电机使用手册 二、主要功能&#xff1a; 1.伺服电机运动速度设定 2.伺服电机运动…

伺服电机

1.简介 伺服系统&#xff08;servomechanism&#xff09;是使物体的位置、方位、状态等输出被控量能够跟随输入目标&#xff08;或给定值&#xff09;的任意变化的自动控制系统。伺服主要靠脉冲来定位&#xff0c;基本上可以这样理解&#xff0c;伺服电机接收到1个脉冲&#xf…

机器人关节伺服电机PID串级控制

机器人的运动控制系统 通常由电机控制器、电机驱动、电机本体(多为伺服电机)组成。电机控制器具备智能运算功能&#xff0c;并可传送指令以驱动电机。驱动可提供增压电流&#xff0c;根据控制器指令以驱动电机。电机可以直接移动机器人&#xff0c;也可通过传动系统或链条系统…

机器人关节伺服电机三环控制方式

伺服电机&#xff08;servo motor &#xff09;是指在伺服系统中控制机械元件运转的发动机&#xff0c;是一种补助马达间接变速装置。 伺服电机可以控制速度&#xff0c;位置精度非常准确&#xff0c;可以将电压信号转化为转矩和转速以驱动控制对象。伺服电机转子转速受输入信…

CANOpen DS402伺服电机控制项目总结

公司的电机控制要统一到CANOpen上面来&#xff0c;协议栈用的CanFestival&#xff0c;配合RTThread进行控制。 要控制伺服电机&#xff0c;最先搞明白的就是控制字6040和状态字6041。一共使用过三个厂家的伺服电机&#xff0c;控制字都是一样的&#xff0c;但是状态字各家有自…

STM32微控制器综合实训11 伺服电机控制器设计实验

实验11 伺服电机控制器设计实验 了解伺服电机的应用领域&#xff0c;掌握伺服电机的速度控制模式、伺服电机的位置控制模式。 文章目录 程序设计伺服电机的速度控制模式代码讲解main.ctimer.c 伺服电机的位置控制模式代码讲解main.ctimer.c 编译仿真伺服电机的速度控制模式伺服…

伺服电机PID控制及增益调节

1、伺服电机3环 电流环&#xff1a;最内环&#xff0c;此环在伺服启动器内进行&#xff0c;装在线圈上的霍尔元件通过检测磁场强度转化为电流&#xff0c;把电流负反馈给输入端。电流环是控制的根本&#xff0c;任何控制都是通多电流来作为媒介控制的。可用于转矩控制&#xf…

STM32脉冲伺服电机控制器参考技术方案

STM32脉冲伺服电机控制器参考技术方案 id661871202965&

三菱伺服电机控制实例

三菱伺服电机控制实例&#xff0c;&#xff08;PLC程序&#xff0c;触摸屏&#xff0c;伺服参数&#xff0c;整套&#xff0c;Q系列&#xff0c;也可FX系列&#xff0c;自己设计&#xff0c;不理解可以解释各功能&#xff09;&#xff09;&#xff08;参数设置)MR-J4&#xff0…

伺服电机三环控制

伺服电机三环控制 简介电流环、速度环、位置环PIDPID 控制代码 简介 伺服电机一般为三个环控制&#xff0c;分别是电流环、速度环、位置环&#xff0c;如下图所示 频率不一样是由他们所在的控制环的位置决定的&#xff0c;位置越靠内&#xff0c;采样频率自然需要越高。根据香…