自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (7)
  • 收藏
  • 关注

原创 XILINX ZYNQ 7000 UART 笔记

用意是当发生中断的时候跳转到未被指定的函数中会出现错误和无法跟踪的情况。当发生中断后GIC把对应的中断发给CPU,CPU进入中断服务,首先是进行硬件中断这个不由软件控制。3.获取外设的基本信息通过查找LookupConfig进行,找到外设的基础地址和基础配置。进入到中断服务函数里面后再去读寄存器判断具体的中断标志位,从而识别是什么地方发生了中断。GIC也是PS系统的外设。接下来需要把对应的中断服务函数进行注册,也就是把中断服务函数放到中断table 表中。完成串口外设的配置后,需要对串口的中断进行配置。

2023-08-02 22:16:54 772

原创 XILINX ZYNQ 7000 AXI总线 (三) AXI GPIO

ZYNQ的PS部分是有一个GP接口,32 Bit 的AXI master接口,默认是打开的,如果双击绿框可以看到是打开的。固定的IO,这里说的是ZYNQ PS最小系统就有的IO。比如说MIO,DDR,PS复位,PS时钟等。如果尝试的吧AXI GPIO 从接口和ZYNQ的主接口连接的时候,ViVado会提示无法连接。M_AXI_GP0 就是AXI的主机接口,M_AXI_GP0_ACKL是主机接口的时钟。接下来就是把复位连接在一起,就接到PS-PL的复位信号上,时钟都接到PS-PL时钟上来。

2023-07-24 22:04:03 1266 1

原创 XILINX ZYNQ 7000 AXI总线 (二)

AW开头的为写地址通道,W开头的为写数据通道,B开头为写回应相应通道,R开头为读数据通道,AR为度地址通道。看手册看了几次不如看一下波形图,手册中的握手机制应该可以理解了。txn是启动传输信号,其余信号在 AXI总线 (一)中提到,结合ARM AXI文档先看下时序图。了解了AXI 的大部分内容后,开始做一个实战,就是完成AXI 结构的输入输出搭建。上图1 表示地址,握手后地址信息准备完毕。2.握手机制每个通道都会有,VALID和READY两个信号。回到手册中的图写数据分为三个步骤,1地址,2数据,3回应。

2023-07-22 20:14:15 499

原创 XILINX ZYNQ 7000 AXI总线 (一)

1.ACLK 是时钟信号,AWADDR 是写数据的地址信号,AWVALID 是主机地址通道的地址信号已经准备完毕,AWREADY指的是从机地址通道接收已经准备好了。AXI其中的I指的是接口,Advanced eXtensible Interface。AXI的设计也是围绕读写进行。它做了一个有趣的设定,具有5个通道,通道是按照逻辑进行划分的。AXI其中的I指的是接口,Advanced eXtensible Interface。如果你去看ARM的IHI0022D的AXI协议介绍,可能花个大半天都是懵懵懂懂的。

2023-07-21 23:05:42 258

原创 XILINX ZYNQ 7000 BOOT

需要理解的几个关键点,boot的作用是初始化必要的硬件然后从程序存储的地方加载程序运行。ZYNQ的使用场景复杂的多,内部没有用户的flash。MIO5.4.3 是引导器件的选择,显然有JTAG,NOR,NAND,SPI,SD卡。上电后硬件就会采集引脚状态然后BOOTRom去对于的器件找FSBL(一段代码)中的引导头,然后进行运行域的初始化,就是代码搬移到OCM。要注意的是:这个不是ARM的指令,是编译器的,这里放在一起只是为了方便。要注意的是:这个不是ARM的指令,是编译器的,这里放在一起只是为了方便。

2023-06-29 21:32:50 696

原创 Xilinx ZYNQ 7000 HDMI

HDMI在TMDI基础上进行在扩展,在原有TMDI基础上每个通道多传输4 bit位宽的信息,可以用来传输声音,字幕等等。TMDS有三个串行通道,分别为Channel 0,Channel 1,Channel 2 ,Pixel Clock。在Channel 0,Channel 1,Channel 2上分别传输Blue,Green,Red 分量的颜色信号。并行传输需要使用大量位宽,在传输线上1 BIT就需要一根线,并行传输必然会产生大量的传输线,线越多传输越困难。同时在消隐期传输是加入了跟过的冗余数据。

2023-03-08 16:26:21 545 1

原创 XILINX FPGA OV5640 摄像头驱动(一)

最后盘子里面的烧鸭是最后要的图像。感光矩阵的信号是模拟的所以也会同比例的放大噪声信号。AMP是一把双刃剑,放大的信号的同时会引入跟多的噪声,降低信噪比。信噪比是图像传感器永恒的主题,几乎所有的优化都是围绕信噪比。image area:说的是感光矩阵,CMOS图像传感器的最核心部分,接收光照产生电信号的部分。这样做的目的是省去了后端图像处理设备的开销,OV5640可以直接提供可供使用的图像。ISP:附加模块,高度定制化的图像处理器,使用各种寄存器控制图像参数处理ADC的RAW数据。colcmn、rom。

2023-01-23 22:44:19 2641

原创 xilinx ZYNQ 7000 XADC 片上模拟转数字模块

但是,如果XADC在设计中没有实例化,那么访问该信息的唯一方法是通过JTAG测试访问端口(TAP)。PS- xadc接口是PS的一部分,可以被PS APU访问,而不需要对PL进行编程。PS有两个接口可以访问XADC,一个是CPU通过APB ARM 的高速外设总线访问PS-XADC接口通过串行数据访问XADC。通过PL PIN接入的外部电压信号,PL PIN的指定需要PL 侧的配置(引脚分配就会产生Bitstream文件)。XADC内部框图,有两个ADC 转换器,通过多路复用器采集不同端口的电压。

2023-01-15 21:54:03 913

原创 Xilinx ZYNQ 7000 AXI GPIO 读写/中断

需要注意的是Channel 是AXI GPIO的Channel,在IP生成的时候可以选择 2个通道。打开官方例程后,会发现这个AXI GPIO设置和 PS MIO/EMIO一模一样。也就是说AXI GPIO和PS GPIO使用了两套地址,分别指向了不同的地址。没错,AXI GPIO和PS GPIO使用了两套ConfigTable。在BSP中有gpio和gpiops两个文件夹,分别使用两套函数。data写入的数据是整个AXI GPIO的位宽。请仔细看下面两个获取gpio实体的函数。AXI GPIO中断。

2023-01-01 23:03:23 1829

原创 xilinx ZYNQ 7000 AXI GPIO

这个事件这个需要数据通信,上图所示有个connect的模块横跨PS,PL,用于数据的传输,没错AXI就是这个connect。PS的FCLK_CLK0 ,给AXI Interconnect 和AXI GPIO提供了时钟。那么GPIO具体什么实现呢,xilinx 官方把GPIO如何实现已经做好了,封装成AXI GPIO IP。PS的M_AXI_GP0 和AXI Interconnect连接,PS也提供AXI时钟。打开AXI GPIO的中断,它的中断信号属于PL中断信号,相关设置在GIC中。

2023-01-01 22:48:00 1254 5

原创 xilinx zynq 7000 GPIO ISR、IRQ、vector table 实验

中断发生后,GIC根据配置把中断信号,给到对应的CPU,CPU接收到了中断后,由硬件进行中断跳转,跳转到VectorTable对应的中断服务函数。所有的IRQ中断都会进入到XScuGic_InterruptHandler函数,XScuGic_InterruptHandler函数根据GIC中记录的中断号来判断,是哪个中断源发生了中断,进行软件跳转到ISR #n。ISR表示各个中断源中断发生后,中断服务函数的实例。GIC的输入是各个中断源的中断线,通过中断号来记录是哪个中断源发生了中断,这里是记录。

2022-12-31 21:19:23 407

原创 兆易创新GD32 (四)FreeRTOS 移植 与 CMSIS OS2

使用CMSIS,可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器新开发人员的学习过程,并缩短新设备的上市时间。RTOS系统现在的种类可以说是五花八门,国内就有很多加,国外就不用说了,每家都有自己的API,所以ARM对RTOS的API做了一个统一的命名规则,在各家的RTOS上包了一层,统一了访问接口。正常情况下是不需要的在FreeRTOSConfig.h 中搜索HOOK,把对应的define关掉。在我们的工程目录下,添加这两个C文件,并且包含相应的头文件目录。

2022-11-26 22:55:55 2523

原创 兆易创新 GD32 系列(三) 标准库初探,点灯LED

那么毫无疑问 rcu_periph_clock_enable(RCU_GPIOC);用来初始化GPIO的时钟。在GD32 系列(二) 中认识到 gd32f4xx_libopt.h的作用,它包含了所有的标准库头文件。点灯是跑程序的第一步,犹如灯塔照亮了前进的路。无论干过多少年,你都是要点灯,MCU的新手村。rcu_periph_clock_enable 是所有外设初始化都需要使用到的部分。一个外设如果要正常工作,首先要启动它对应的输入时钟。点灯要用到的就是GPIO操作 参考标准工程即可。

2022-11-26 10:03:44 1377

原创 兆易创新GD32 (二)官方工程 Template 和 创建工程

其中SystemInit 函数是CMSIS规定的接口,在今后的开发中,CMSIS出现频率会越来越高,迟早是要学的。加入 system_gd32f4xx.c 因为这文件是systemInit函数所在的C文件。值得注意的是system_gd32f4xx.c 位于CMSIS目录下。在gd32f4xx_it.c中定义了中断服务函数,和本系列(一)中中断向量表对应。1.建立一个新的工程,器件选择自己对应的MCU型号。定义MCU使用的型号,配置时钟所用参数的设定。在main.c中 引用了5个头文件。

2022-11-26 09:37:42 2075

原创 兆易创新 GD32 系列(一) 启动过程分析

要注意的是:这个不是ARM的指令,是编译器的,这里放在一起只是为了方便。WEAK:弱定义,如果外部文件声明了一个标号,则优先使用外部文件定义的标号,如果外部文件没有定义也不出错。要注意的是:这个不是ARM的指令,是编译器的,这里放在一起只是为了方便。内存是可读可写的,所以只读指的是FLASH上的空间,原本指的是ROM。同理heap空间的申请也是一样的,__heap_base表示起始地址,__heap_limit表示结束地址。__initial_sp 表示Stack_Mem 空间的结束地址。

2022-11-25 23:15:12 1865

原创 xilinx zynq 7010/7020 中断/中断向量/GIC向量/GPIO中断

GIC根据请求源的属性(enables, disables, masks, and prioritizes)把请求派发给相应的中断执行者进行中断处理,一般指CPU。中断分发器将所有中断源集中起来,然后将优先级最高的中断源分配给各个cpu。中断分发器保存中断、处理器和激活信息的中心列表,并负责触发软件中断到cpu。下图是GIC中断控制器更加详细的中断源请求分配图,可以看到不同的中断类型的请求源如何进行分配的。共享的请求中断源,也就是说中断源发送中断后GIC可以发送给CPU0或者CPU1.

2022-10-23 22:11:53 1986

原创 Xilinx zynq 7010/7020 GPIO - EMIO,MIO

ZYNQ EMIO MIO GPIO的关系

2022-10-23 14:20:01 1989

原创 Xilinx zynq 7010/7020 GPIO - MIO

ZYNQ GPIO 编程

2022-10-22 21:53:46 3401

原创 NRF 52832 ble_app_blinky 官方示例 part1

ble_app_blinky 是Nordic 为BLE从设备设计的官方示例,主要内容为用户自己设计service。工程目录位于\DeviceDownload\nRF5SDK153059ac345\nRF5_SDK_15.3.0_59ac345\examples\ble_peripheral\ble_app_blinky工程目录如下写在添加Service前的内容以下内容摘抄博客园iini大佬的博客。有兴趣的搜索原文查看。蓝牙软件的结构图,基本上任何蓝牙软件都是使用这个架构。Applicatio

2022-10-04 22:02:46 1091

原创 FPGA 按键消除抖动(Nexys3)

FPGA按键

2022-08-22 22:23:01 310

原创 Verlog 和 RTL 、综合 (XILINX XC7Z020)

fpga

2022-07-08 23:14:29 729

原创 DDS(Direct Digital Synthesizer)数字频率合成器

随着数字技术在仪器仪表和通信系统中的广泛使用,可从参考频率源产生多个频率的数字控制方法诞生了,即直接数字频率合成(DDS)。直接数字合成(DDS)是一种产生模拟波形(通常是正弦波)的方法,它通过产生数字形式的时变信号,然后进行数模转换。由于DDS设备内的操作主要是数字的,它可以提供输出频率之间的快速切换,良好的频率分辨率,并在广泛的频率频谱上操作。随着设计和工艺技术的进步,今天的DDS设备非常紧凑,功耗很小。上面是比较书面的语言,其实简单地说就是一个信号发生器模块,主要是产生频率可调的三角波正弦波。

2022-05-12 19:04:25 3524

原创 LWIP UDP协议 实验

目的 :把开发版挂到路由器上,通过PC发送UDP包控制开发版的LED亮灭#include "stdint.h"#include "udp.h"#include "main.h"#define LOCAL_PORT 80#define REMOTE_PORT 777struct udp_pcb *udp_my_led;void app_udp_myled_process();uint16_t _init_my_led_udp(struct udp_pcb *appPCB){

2022-05-01 23:03:16 417

原创 LWIP(Chapter 5) UDP协议和源码

U D P是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 U D P数据报,并组装成一份待发送的 I P数据报。U D P不提供可靠性:它把应用程序传给 I P层的数据发送出去,但是并不保证它们能到达目的地。UDP直接在IP数据报的数据部分。相比之前的数据报,UDP有一个16位的端口号,用于区分数据来源和接收的应用程序。应用程序为了标识自己发送的数据需要用一个序列来标识自己,这个就是端口号。...

2022-04-17 21:58:19 4136

原创 TI 高精度实验室 ADC第二节Delta-Sigma and SAR(下)

固有噪声是自然产生的,是由电路元件本身产生。外部噪声是从其他电路甚至电路外部接收到的噪声。电网50/60Hz的噪声奈奎斯特 带外混叠噪声RF无线电噪声供电电源和地 的噪声50和60Hz的噪音是一个问题。delta-sigma转换器有一个特殊的低延迟滤波器,专门设计来抑制50和60Hz信号。这种类型的滤波器与Sinc滤波器有类似的响应,在50和60hz有一个额外的陷波。混叠是一种效应,经过采样的高频信号会以低频信号的形式出现,称为“混叠”。这种混叠与其他的低频信号难以区分,我们通常希望避免它.

2022-04-16 22:52:28 2774 7

原创 Azure RTOS ThreadX 移植 STM32H743

Threadx 移植教程和代码包下载

2022-04-15 20:57:33 3646

原创 Azure RTOS ThreadX MDK 汇编 tx_initialize_low_level

AC5 和 AC6 代码不太一样tx_initialize_low_level 的作用是做操作系统底层初始化操作,在Threadx初始化过程中执行。可以参考 FREERTOS 中的代码 void vTaskStartScheduler( void )/**/ C语言的注解符号可能会报错SYSTEM_CLOCK CPU CLOCK的设定SYSTICK_CYCLES RTOS systick频率SYSTEM_CLOCK = 400000000SYSTICK_CYCL

2022-04-14 23:44:51 2165

原创 STM32 H743(ARM Cortex M7) 启动汇编

1.堆栈的申请Stack_Size EQU 0x800 AREA STACK, NOINIT, READWRITE, ALIGN=3Stack_Mem SPACE Stack_Size__initial_spEQU 类似C语言的defineStack_Size EQU 0x800,表示Stack_Size 为0x800AREA STACK, NOINIT, READWRITE, ALIGN=3用AREA指令定义

2022-04-14 22:24:48 1252

原创 TI 高精度实验室 ADC 第二节 Delta-Sigma and SAR (上)

采样阶段由Vin对Csh电容进行充电,充电曲线左图所示。电容电压的计算公式,和实际常数充电阶段是RC充电,直到 1/2 LSB才认为充电完成。否则对ADC的精度是一种相对让费。采样实际在ADC数据手册中会有说明SAR ADC的实际转换过程,类似于天平称重。FS值得是满量程。天平放砝码的一端不能重过被测物体。使用1/2FS,1/4FS .1/8 FS依次比较。小于模拟输入记1 ,大于记 0这样结果无线接近模拟输入SAR ADC 使用了类似快照的机制,模拟输入的电压被复制到内部保持电容上。近.

2022-04-09 17:57:00 5028

原创 LWIP (chapter 4.5)ICMP协议与源码

ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。ICMP数据报总览ICMP 数据报包含 首部和数据两部分,作为IP数据报的数据段。首部分为类型,代码,校验和与首部剩余部分ICMP的报文类型(type),分为查询和差错co

2022-04-08 23:01:58 624

原创 LWIP (chapter 4)IP协议和源码

IP协议 Internet Protocol(网际互连协议)IP协议报上图是IP 协议报文的首部head也就是上图所示的head。IP数据报分为Head+data,为以太网帧的数据段。下图所示的红色箭头。IP数据报所有内容都存在以太网帧的数据段,以太网传输中不会对该数据段解析。回到第一张图,最左边为bit 0,最右边为bit 32,数据发送的时候从bit 0 开始,然后发送第二行的32bit,也是从左边开始发送1.IP version :IP协议的版本号 V4 值为 4。相同版本的协

2022-04-08 09:56:40 2913

原创 TI 高精度实验室 ADC 第一节

Introduction to analog-to-digital converters (ADCs)Analog Input: Input Capacitance模拟输入的输入电容模拟输入电容作为ADC的重要参数,主要影响其充电过程。ADC工作分为三个阶段:1.采样阶段:输入引脚通过Rsh 对Csh充电2.保持阶段:达到一定的时候后,断开输入。3.转换阶段:ADC转换器以采样电容Csh的电压做转换Input Leakage Current输入泄漏电流由于ADC IC ESD保护器件

2022-04-06 22:51:08 1907

原创 LWIP(chapter2) ARP协议与源码解析

在TCP/IP 协议中 两台网络设备传输数据,设备的唯一标识符是IP地址。人的标识符很多,区分一个人通过姓名,身份证号码但是TCP/IP 中只能通过IP地址。IP数据 包的传输必须依赖于物理层,也就是传输的线缆和控制器。举个例子,我们喊一个人的姓名是通过声音传播出去的,如果隔着一栋楼声音是无法到达的。同样可以在微信群里面发一条消息,消息前面写明姓名。信息是逻辑上的数据,然而数据的传输依赖于物理事物。在以太网中,数据链路层有自己的一套寻址方式, MAC地址。用来标识不同的网络设备。实际 的传输是如.

2022-04-03 22:10:56 2762

原创 LWIP(chapter 2.10)网络接口 netif (network interface abstraction)

file netif.c

2022-04-03 14:41:23 763

原创 LWIP (chapter 2.01) pbuf数据包缓存

网络中的数据所如果存在多个副本,会在一定程度上让费内存空间和CPU资源。通过引用的方式可以很大程度解决这个问题。 网络数据包是通过pbuf的数据结构管理的。pbuf和数据包所占用的空间可以动态申请或者进行指针引用。引用的位置可以是内RAM或者ROM。快速的分配空间是通过固定大小的内存池获得的。包packet,是网络传输中的单元结构。pbuf是用来表示包的数据结构。 包的大小会根据传输的内容不同而变化,所以pbuf需要满足packet 大小不定的这个需求。有时候pbug使用固定大小,需要用多个pbuf才...

2022-04-01 23:13:40 1242

原创 RT Thread device(二) PIN 与移植

RT Thread PIN 部署上主要有application 应用层,开发者自己创建的C文件或者模块RTT IO Device 是RTT PIN接口,对于所有的应用程序来说,使用这个相同的接口。RT HAL HAL interface 用于MCU 和RTT特定的 PIN接口之间的解耦最后由MCU 官方HAL库实现PIN 组件的物理操作application 应用程序 产生对PIN 读写操作的需求,其输入参数为RTT PIN INDEX ,特别的命名方式对开发者比较友好。它可以提供RTT PIN

2022-03-28 16:47:32 3807

原创 RT Thread device组件(一)

device 组件的运作大致如上图所示。RTT DEVICE API1.是用户对设备进行访问的统一接口。2.设备的访问通过handler索引3.handler 的来源 是RTT 资源容器(或者称为IO设备管理)4.所为注册就是向容器内(设备管理器)加入自己的索引。IO设备管理器是移植RTT 设备层的关键。以上整个流程IO设备管理层负责接收驱动层的注册,记录其handler。对RTT DEVICE API来说,需要向其提供目标设备的handler索引。...

2022-03-27 20:41:45 1120

原创 UML (五)packet 包

包是一种容器,如同文件夹一样,将某些详细分类,形成逻辑单元。使用包的目的是为了整合复杂的信息。语义上相关或者某些方面具有共同点的信息都可以分包。UML认为好的包具有高内聚、低耦合的性质如果将元素分为三个包A、B、C,那么被分入同一个包中的那些元素应当是相互联系紧密,甚至不可分割的。同时这些元素又具有某些相同的性质,使得包可以抽象出一些接口来代表包内事物与包外的事物交互,以避免包外的事物频繁地直接访问包内元素。这时我们称A、B、C三个包具有高内聚的性质。包的最理想的情况是修改A、B、C三个包中任意一个.

2022-03-26 21:33:06 658

原创 UML(四)部署图

部署图(deploymentdiagram,配置图)是用来显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。部署图它阐述了在实际应用中软件和它的运行环境的关系,并且描述了软件部署在硬件上的具体方式。部署图中的主要元素包括节点与节点之间的关联关系。此外,部署图中也可以使用注解和约束。节点,node节点是存在与运行时的代表计算机资源的物理元素,可以是硬件

2022-03-26 20:53:57 8218

原创 UML(三)对象图

类图是UML 结构图,它在类和 接口 级别显示设计系统的结构 ,显示它们的特性、 约束 和关系—— 关联、 概括、 依赖等。对象图 可以被认为是实例级类图,它显示 了类和接口(对象) 的实例显示的是某一个时刻,类实例的快照对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的关系,一般就会使用对象图。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在...

2022-03-26 19:21:12 1352

SystemView STMF407 任务互斥量时序

SystemView STMF407 任务互斥量时序

2021-12-04

FreeRTOS Trace STM32F407 SystemView

Freertos Trace可视化分析Segger SystemView代码包

2021-12-02

Freertos+STM32F407+Tracealyzer.rar

Freertos+STM32F407+Tracealyzer

2021-11-28

电子电气架构设计.pdf

电子电气架构设计

2021-09-29

车载诊断系统(OBD)精讲.ppt

车载诊断系统(OBD)精讲

2021-09-29

微机原理及接口技术PDF

微机原理及接口技术 自己不知道在那看到的

2009-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除