4.9-4.11

搞了半天spi驱动,写w25q64读取出数据都是ff,原来是芯片坏了。。。

先做其他的吧

串口驱动设备树

手册一般第一章基本就是需要查找的地址有

1.1Address Mapping

1.2System Boot

1.3System Interrupt Connection

1.4System DMA Hardware Request Connection

在1.1早到基地址UART4 FEB70000 64KB

在1.3找到中断号367 irq_uart4 High level

还需要dmas因为每个 UART 硬件上绑定的 DMA 通道是固定的、不重复的,这个在手册的Chapter 12 DMA Controller (DMAC)可以找到,在DAMAC1下有

UART4_TX是9

UART4_RX是10

uart4: serial@feb70000 {

compatible = "rzroomi,uart4";

reg = <0x0 0xfeb70000 0x0 0x100>;

interrupts = <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>;

clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;

clock-names = "baudclk", "apb_pclk";

reg-shift = <2>;

reg-io-width = <4>;

dmas = <&dmac1 9>, <&dmac1 10>;

dma-names = "tx", "rx";

pinctrl-0 = <&uart4m0_xfer>;

status = "disabled";

};

直接加入设备树你就会发现报错,因为瑞芯微已经在其他文件定义过了。所以只要加入

&uart4 {

status = "okay";

pinctrl-names = "default";

pinctrl-0 = <&uart4m0_xfer>;

};

系统开机已经自动创建节点和pwm一样瑞芯微已经写好了,直接写入/dev/ttyS4即可实现串口通信

接下来学学usb,原厂就已经写好了驱动,没啥实验,但是可以学学原理

板子介绍usb是这样的:2 个 USB 2.0 Host、1 个 USB3.0 Host 和 1 个 USB 3.0 OTG

USB 分为 HOST(主机)和从机(或 DEVICE) 而USB OTG 功能的 USB 接口既可以做HOST(做主机ID=0),也可以做 DEVICE(做从机ID=1)

USB 相关的控制器名字分别为:USB OTG 控制器、USB Host 控制器和 USB HS PHY 控制器,提供一个简称方便书写:OTG、USBH 和PHY

PHY:中文可称之为端口物理层

USBH:USBH 控制器这是一个主机控制器,此控制器由 EHCI 控制器和 OHCI 控制器组成

OTG:OTG 控制器有两个模式:正常模式(normal mode)和低功耗模式(low power mode)。 OTG控制器都可以运行在高速模式(HS 480Mbps)、全速模式(LS 12Mbps)和低速模式(1.5Mbps)。正常模式下每个 OTG 控制器都可以工作在主机(HOST)或从机(DEVICE)模式下,每个 USB 控制器都有其对应的接口

USB 驱动也包括三个部分:USB 控制器驱动、USB PHY 驱动和 USB接口驱动(CC logic 驱动)

所以设备树里可以找到有

14 usb_host0_ohci: usb@fc840000 {

15 compatible = "generic-ohci";

16 reg = <0x0 0xfc840000 0x0 0x40000>;

17 interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;

18 clocks = <&cru HCLK_HOST0>, <&cru HCLK_HOST_ARB0>, <&u2phy2>,

<&aclk_usb>;

19 clock-names = "usbhost", "arbiter", "utmi", "alk_usb";

20 phys = <&u2phy2_host>;

21 phy-names = "usb2-phy";

22 power-domains = <&power RK3588_PD_USB>;

23 status = "disabled";

24 };

20 phys = <&u2phy2_host>;

21 phy-names = "usb2-phy";

是指定这个 USB 控制器使用 u2phy2 这个 USB PHY。PHY = 物理层收发器真正负责 USB 信号,使用usb2.0

power-domains = <&power RK3588_PD_USB>;属于 RK3588 的 USB 电源域内核会自动开关电源

因为在完成实习公司的任务,编译烧入代码,没写多少,所以本期就到这了

相关推荐
HQB202610 小时前
EG1198|屹晶微电子 120V 内置 MOS 异步降压 DC‑DC(高性价比)
嵌入式硬件·硬件工程
果壳science12 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造
南山电子nscn12 小时前
中科芯CETC汽车电池管理系统BMS进口芯片国产型号替代指南
单片机·汽车·bms
桀人13 小时前
认识AT24C02
stm32·单片机·嵌入式硬件
国科安芯14 小时前
星间激光通信终端CANFD控制网络的时延确定性与辐射可靠性
网络·嵌入式硬件·信息与通信·canfd·低轨卫星·商业航天·抗辐射
一直C14 小时前
嵌入式 Linux 驱动开发学习笔记:内核定时器、platform 总线与 I²C 驱动
linux·驱动开发·嵌入式硬件·学习·imx6ull
传感器与混合集成电路14 小时前
150MHz主频、8路DAC与6路PWM:JLH221360伺服控制SIP解析
嵌入式硬件
comyccccc14 小时前
STM32PID控制板设计全解析学习笔记
单片机·嵌入式硬件
碧海银沙音频科技研究院15 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
恒锐丰科技林技术员16 小时前
EG1160 高压半桥驱动芯片:高压功率变换的实用驱动方案
经验分享·嵌入式硬件·硬件工程