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 电源域内核会自动开关电源

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

相关推荐
LCG元11 小时前
STM32项目实战:基于STM32F103的智能农业监控系统
stm32·单片机·嵌入式硬件
ACP广源盛1392462567311 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
一起搞IT吧12 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
Truffle7电子13 小时前
STM32CubeIDE/Programmer/Touch GFX 应用
stm32·单片机·嵌入式硬件
constant_LDX14 小时前
步进电机开发(一、硬件设计)
单片机·嵌入式硬件
北山有鸟14 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu2025100114 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
Deitymoon14 小时前
STM32——串口通信(USART)
单片机·嵌入式硬件
iCxhust14 小时前
微机原理实践教程(C语言篇)---A002流水灯
c语言·开发语言·单片机·嵌入式硬件·51单片机·课程设计·微机原理
Deitymoon16 小时前
STM32——外部中断按键控制led
stm32·单片机·嵌入式硬件