【GD32F303红枫派使用手册】第二十五节 EXMC-外部SRAM读写实验

csdn推荐

专栏目录

参与评论您还未登录,请先登录后发表或查看评论

博客

芯片烧坏时发生了什么?为什么总是VDD短路?甚至封装开裂冒烟?

06-25

168

如果电源能提供的电流足够大,那么通过芯片内部融化金属的连接流过几A(读“安”)电流产生更大温升,芯片物理介质会大面积碳化甚至气化,瞬间的高温可能让封装体燃烧冒烟,同时芯片内部严重分层产生的压力让封装体字节爆裂。那么当IO口内部流入电流时,芯片内部的集成电路金属线和器件因为有阻抗存在就一定会产生温升,所以当电流足够大时,芯片内部金属层或器件会出现熔断,融化的导电介质会扩散开,和周围电路粘连在一起。当然如果通过LDO等提供的最大电流较低,芯片不会出现明显的外观损坏,会让我们对芯片什么坏了更加摸不着头脑;

博客

【GD32F303红枫派使用手册】第二十五节 EXMC-外部SRAM读写实验

06-25

641

EXMC是MCU的外部存储控制器,可以配置实现各类片外设备的通信协议,包括SRAM、PSRAM、NOR FLASH、NAND FLASH等,也可以通过配置实现一些其他通信协议,如8080接口的LCD驱动、FPGA通信等,可灵活的实现很多异步同步信号输入输出,时序时间可配置。EXMC在初始化后,基本上通过程序的地址映射就可以进行操作了,需要根据外部器件的要求进行exmc相关参数配置,exmc可配置参数有很多,但选定好一个模式后实际在这个模式下需要配置的参数是有限的,一些结构体成员只需要按默认参数配置即可。

博客

GD32 串口接受异常的几个原因

06-24

880

我们知道,串口每个byte的数据都有一个起始位,占一个bit时间,如果由于一些原因导致对方发过来的数据起始位过短的话,MCU就无法识别到这个起始位,从而这个byte的数据就不会被接收。GD32库中这个值默认是8M或25M,而有的小伙伴在用其他频率的晶振时,虽然根据实际频率修改了配置主频的函数,但没将HXTAL_VALUE这个值修改为实际值,就会导致配置出来的波特率和预想不符,从而导致波特率异常。以上,就是小编总结的几点串口接收异常的可能原因,小伙伴们有知道其他原因的,欢迎在评论区交流哦。

博客

【GD32F303红枫派使用手册】第二十四节 DHT11温湿度传感器检测实验

06-24

881

dht11_check()为check DHT11是否正常连接以及工作,其实现如下,其主要通过判断DHT11是否能够响应主机的复位请求操作来判断DHT11是否连接以及工作正常,如果工作正常,该函数返回值为0,否则返回1.DHT11温湿度读取函数如下,通过该函数将会连续读取5个字节数据,前两个为湿度数据,之后两个为温度数据,最后一个数据为校验和。dht11_reset()为复位DHT11操作函数,其实现如下,如原理中介绍,首先拉低数据引脚20ms,之后拉高30us,实现对DHT11的复位操作。

博客

如何降低MCU系统功耗?

06-23

480

大家在做MCU系统开发的时候,是否也碰到过降低MCU系统功耗的需求?

博客

【GD32F303红枫派使用手册】第二十三节 SDIO-SD卡读写实验

06-23

980

SDIO初始化配置在sd_io_init()函数中,其中包括sd_init()初始化、sd_card_information_get()SD卡信息获取、sd_card_select_deselect()SD卡选择、sd_cardstatus_get()SD卡状态获取、sd_bus_mode_config()SD卡总线宽度配置以及sd_transfer_mode_config()SD卡通信模式配置,历程中选择了4线查询模式。SD卡正常工作,就是根据SD卡初始化流程图,发送命令,收到回复,直到流程结束。

博客

GD32 MCU的选项字节是什么?

06-22

665

USER为用户配置字节,可以配置芯片从BANK0还是BANK1启动,配置低功耗模式唤醒后继续进入低功耗模式还是复位,配置是否使能硬件独立看门狗(硬件看门狗使能后,芯片上电后会自动打开看门狗,如果读者有发现芯片看门狗复位,且软件上没有打开看门狗,就可以排查下看是否该控制位被打开,另外硬件看门狗对于ESD软件防护有帮助,在可以接受复位的ESD测试中,使能硬件看门狗上电后即作用,可以规避从上电到启动软件看门狗过程中死机的问题);读者朋友们是否会有以上的疑问,首先我们先为大家介绍选项字节是什么以及选项字节的功能。

博客

【GD32F303红枫派使用手册】第二十二节 IIC-IIC OLED显示实验

06-22

775

OLED显示图片函数如下,其中形参说明如下:x为图片起始地址的x坐标,y为图片起始位置的y坐标,x_res为图片分辨率的x轴分辨率,y_res为分辨率的y轴分辨率,比如图片为128*32显示,则x_res为128,y_res为32,pbuff为图片数组的指针。将图片调整到合适分辨率,如果分辨率比较大的话,可以使用PS等工具,调整到128*64分辨率以内,格式的话建议调整为bmp格式文件。主函数代码如下所示,调用bsp_oled_init进行OLED初始化,之后循环显示图片/字符串以及数字。

博客

GD32F303 低功耗模式要点

06-21

506

Sleep和Deepsleep模式:IO口保持进入低功耗前的状态,即本来是输出高的继续输出高,本来是输出低的继续输出低(一个重要提示:在进入Deepsleep前,要将不需要保持状态的IO口配置为模拟输入,这样可以达到最低功耗)Standby模式:只有特定几个唤醒源可以唤醒,分别是NRST引脚唤醒、WKUP(PA0)引脚唤醒、看门狗事件唤醒、RTC闹钟唤醒。Deepsleep模式:外部晶振停振,唤醒MCU后,MCU强制使用内部晶振且没有倍频,应用程序需要在唤醒后进行时钟重配。Standy模式:外部晶振停振。

博客

GD32 485发送异常最常见原因

06-20

356

这是因为,串口是有数据寄存器和移位寄存器,当最后一次判断TBE不为“0”并调用usart_data_transmit函数后,实际上倒数第二个字节的数据正在发送移位寄存器中对外发送,最后一个字节在数据寄存器中,此时如果将485传输方向改为接收,那么最后两个字节的数据将不会发送到485总线上。这是采用轮训方式进行485发送的函数,首先将485传输方向设置为发送,然后进行长度为len的数据发送,发送完成后将485传输方向设置为接收。看似这段代码没有问题,但当放在MCU上运行后发现,从机会少收到两个字节的数据。

博客

【GD32F303红枫派使用手册】第二十节 SPI-SPI NAND FLASH读写实验

06-20

553

从图中可以看出,本实验使用的是普通单线SPI,GD5F1GQ5UEYIGY的片选由GD32F303ZET6的PG13控制(因PG14不是SPI的NSS管脚,所以本实验用主机NSS软件模式,,通过普通IO控制片选),GD25Q32ESIGR的SO、SI和SCLK分别和GD32F303ZET6的PB4(SPI2_MISO)、PB5(SPI2_MOSI)以及PB3(SPI2_CLK)相连。SPI NAND简化了NAND的接口设计和尺寸,SPI接口更是降低了主控对接口的要求,同时内置ECC。

博客

GD32如何设计晶振电路

06-19

330

反馈电阻可以使芯片内部反相器稳定工作在线性区间,虽然一般MCU内部是设计有反馈电阻的,但根据晶振频率不同,反馈电阻的范围会有区别,所以可以根据晶振频率来选择合适阻值的反馈电阻,典型的反馈电阻取值范围如下表,根据GD32F303的晶振范围,1MΩ基本可以全区间要求。负载电容对晶振稳定性至关重要,晶振的规格书中一般会给出推荐的负载电容值,但实际负载电容需要外部匹配电容和PCB走线杂散电容来综合计算。合适的阻尼电阻还可以降低EMI噪声,提高MCU内部模拟性能等,非常建议大家设计预留。3、外部匹配电容该用多大?

博客

【GD32F303红枫派使用手册】第十九节 SPI-SPI NOR FLASH读写实验

06-19

1102

这样,两个移位寄存器中的内容就被交换。2、按page写数据函数bsp_spi_nor_page_write,该函数实现在page范围内写数据,该函数流程是:使能NOR FLASH的写功能->拉低片选->向NOR FLASH发送写指令WRITE(0x02)->从低地址到高地址发送要写的地址(每次进行写数据时,只需要给初始地址即可,写完一个数据后NOR FLASH内部会自动把地址+1)->写数据->拉高片选->等待NOR FALSH内部操作完成(循环去读NOR FLASH状态,直到读出编程状态为0)

博客

为什么MCU ADC采样时IO口有毛刺?

06-18

582

我们可以用程序配置的采样保持周期和ADC时钟计算出ADC采样开启的时间,如果从毛刺产生时刻开始经过采样开启时间后电压已经恢复到平稳,那么此时这个平稳的电压和ADC采样电容上的电压一致,接下来的ADC转换也就能得到正确的结果。是的,你没看错就是这么简单,mcu采样保持电路可以等效为一个开关、一个采样电阻和采样电容;那么为什么MCU ADC采样时IO口会出现毛刺,这个毛刺会影响采样结果吗,让我们来一起研究一下。这个时候大家一般会以为是信号源有问题,但仔细观察会发现这个毛刺的频率是和ADC触发频率一样的!

博客

【GD32F303红枫派使用手册】第十八节 USART-485通信实验

06-18

1135

与之相对的,485协议输出的是差分信号,经过TTL转485芯片的转换后其有效信息为两条信号线的电压差,即可大大消除通信时的共模干扰,同时由于其传递的信息随时可以在硬件层面上被测量,而且整个转换过程完全为硬件操作,无需软件编写,因此是种硬件协议。如果外部有个扰源对其进行干扰,使双绞线进行485信号传输的时候,由于其双绞,干扰对于485+,485-的干扰效果都是样的,那电压差依然是不变的,对于485信号的干扰缩到了最小。同样的道理,如果有屏蔽线起到屏蔽作的话,外部扰源对于其的扰影响也可以尽可能的缩小。

博客

GD32 MCU启动后如何运行到main函数

06-17

542

MCU找到堆栈指针和复位中断入口地址之后,将会加载执行复位中断,复位中断函数定义在.s启动文件中,具体定义如下所示,进入到复位中断函数中之后,首先执行SystemInit系统初始化函数,该函数主要为系统时钟配置函数,之后跳转到main函数进行执行,也就是说在执行到main函数之前,已经进行了系统时钟配置。执行完复位中断函数之后,MCU将会进入到main函数进行执行。GD32 MCU启动后如何运行到main函数入口?在执行到main函数之前MCU干了哪些事情呢?GD32MCU技术交流群:859440462。

博客

如何使用Keil打开GD32 FPU及使用ARM DSP库

06-15

422

我们知道,FPU在浮点运算速度上有很大的提升,并且只有带FPU才可以使用ARM的DSP库。下面我们来介绍下如何使用ARM的DSP库,首先,我们需要两个文件:arm_cortexM4lf_math.lib 和arm_math.h,GD官方库是不带这两个文件的,小伙伴们可以自行网上下载或者联系我们提供哦。好了,我们来验证下FPU是不是被打开了,我们编译工程并下载到MCU中,在Memory窗口看下0xE000ED88地址的数,如果为0x00F00000,就说明FPU被正确打开了。

博客

【GD32F303红枫派使用手册】第十六节 USART-DMA串口收发实验

06-15

760

当需要使用DMA接受时,需要配置DMA工作为外设到内存的模式,DMA的源地址需要设置为串口的数据寄存器,当DMA使能,一旦串口收到一个字节数据,RBNE(接受非空)标志位为1,则DMA自动将数据寄存器中的数据搬运到内存中。在前面ADC章节中,我们介绍了DMA的工作原理,这里就不多做介绍。当需要使用DMA发送时,需要配置DMA工作为内存到外设的模式,DMA目标地址需要设置为串口的数据寄存器,当DMA使能后,一旦串口的TBE(发送空)标志位为1,则DMA自动从内存中搬运数据到串口数据寄存器中。

博客

你了解GD32 MCU的命名规则吗

06-14

370

下面为大家介绍GD32 MCU的通用命名规则,以GD32F303ZGT6为例,其中,GD32代表GD32 MCU,F代表通用系列产品类型,303代表303产品子系列,Z代表144引脚数,G代表1MB Flash容量,T代表LQFP封装,6代表-40-85°温度等级。F:SIP通用系列;E:eFlash嵌入式增强系列;VF:RISC-V系列;W:Wi-Fi无线系列;H:H7高性能系列;GD32 MCU目前推出近500款产品,在众多的产品中,你了解GD32 MCU的命名规则吗?6:-40度~85度;

博客

【GD32F303红枫派使用手册】第十五节 USART-printf打印实验

06-14

842

校验位是为了保证通信的可靠性,如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位,如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。和串行通讯相对应的是并行通讯,并行通信指一个传输接口可以传输8个bit即一个byte(有时甚至更多),虽然串行通信比并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。如果在3个采样点中有2个或3个为0,该数据位被视为0,否则为1。当发送方开始发送一帧数据时,起始位会最先发送,而对于接收方来说,检测到起始位后,即使自己的接收时钟与发送方的数据同步。

文章来源:https://blog.csdn.net/weixin_45254847/article/details/139854883



微信扫描下方的二维码阅读本文

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容