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单片机的优先级
stm32·单片机·mongodb
u152109648493 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015003 天前
RS485 总线详解
单片机·嵌入式硬件
半条-咸鱼3 天前
【STM32】I2C协议原理、HAL读写与OLED显示操作
嵌入式硬件·c·信息与通信
wohoo_wangzi3 天前
苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘4 天前
编程基础 --高内聚,低耦合
c语言·单片机
科芯创展4 天前
1A,1MHz,30VIN,XZ4115,降压恒流LED驱动芯片
单片机·嵌入式硬件
集芯微电科技有限公司4 天前
四通道2A输出集成功率电感降压模块专为紧凑型方案设计
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
踏着七彩祥云的小丑4 天前
嵌入式测试学习第 37 天:异常场景测试:断电、拔插、干扰、非法指令
单片机·嵌入式硬件·学习
望眼欲穿的程序猿4 天前
读取芯片内部温度传感器
嵌入式硬件·rust