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

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

相关推荐
单片机杂货铺24 分钟前
【单片机毕业设计选题】基于stm32单片机儿童公路车速度检测报警
stm32·单片机·嵌入式硬件·51单片机·硬件工程·课程设计
振南的单片机世界2 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
嵌入式阿蔡2 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
NYFEA3 小时前
徕飞 FCA系列全面上新,一站式I/O扩展国产替代方案
单片机·嵌入式硬件
国科安芯4 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座
XiHongShi20164 小时前
STM32H7 FLASH和SRAM标准例程
stm32·单片机·嵌入式硬件
单片机杂货铺5 小时前
【单片机毕业设计选题】基于单片机的智能牛奶保鲜箱设计
人工智能·stm32·单片机·物联网·毕业设计·课程设计
莫浅子21 小时前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
恒锐丰科技韩生21 小时前
SS8844T|8.2‑40V 四通道独立半桥驱动 ETSSOP28 带散热焊盘 工业自动化机器人专用
嵌入式硬件·硬件工程
Hello_Damon_Nikola1 天前
INMP441从入门到精通
单片机·嵌入式硬件·物联网