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

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

相关推荐
路过羊圈的狼3 小时前
STM32使用SFUD (Serial Flash Universal Driver) 串行 Flash 通用驱动库驱动W25Q128
stm32·单片机·嵌入式硬件
LCG元3 小时前
多MCU通信:STM32F1通过I2C/SPI实现数据同步与控制
stm32·单片机·嵌入式硬件
史蒂芬_丁3 小时前
EPWM Global Load
单片机·嵌入式硬件
碎像3 小时前
单片机-数码管显示
单片机·嵌入式硬件
LCMICRO-1331084774613 小时前
长芯微LPS123完全P2P替代ADP123,高性能、低压差的线性稳压器
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·线性稳压器
守护安静星空14 小时前
esp32开发笔记-工程搭建
笔记·单片机·嵌入式硬件·物联网·visual studio code
ACP广源盛1392462567315 小时前
破局 Type‑C 切换器痛点@ACP#GSV6155+LH3828/GSV2221+LH3828 黄金方案
c语言·开发语言·网络·人工智能·嵌入式硬件·计算机外设·电脑
时空自由民.16 小时前
ST7701S 3.5寸显示屏
单片机
金戈鐡馬16 小时前
BetaFlight中的定时器引脚绑定详解
stm32·单片机·嵌入式硬件·无人机