首页 » 通讯 » i.MXRT1010,i.MXRT106x,看门狗,RS485以及USB-RS485技能文章分享_这条_语句

i.MXRT1010,i.MXRT106x,看门狗,RS485以及USB-RS485技能文章分享_这条_语句

雨夜梧桐 2024-12-06 13:23:37 0

扫一扫用手机浏览

文章目录 [+]

还是挺全的,防护和隔离算是搜罗万象,也算得上是做工精良。
电源部分用了金升阳的隔离电源模块B0505LS-1WR3,最大输出功率1W,满载效率80%旁边,输出最小电流为20mA。

数字隔离IC型号为IS3722HS,空闲韶光输出高电平,每条隔离通道的逻辑输入和输出缓冲器均由二氧化硅(SiO2) 绝缘栅隔离,额定耐压3.75kV。

i.MXRT1010,i.MXRT106x,看门狗,RS485以及USB-RS485技能文章分享_这条_语句 通讯

RS485的芯片为SP485E,觉得大多数网上卖的转化器都是这个芯片,觉得用起来也还可以。

串口转USB芯片为FT232RL,其他的转化器也有用国产沁恒CH34X之类的串口转USB芯片(更便宜,性价比高)。

反相器自动收发部分的事理图如下:

当TX为低电平时,经由反相器后DE变为高电平然后使能芯片发送A 0 B 1;当TX为高电平时,反相器输出DE为低电平,此时根据SP485E的真值表可以看到,A B输出均为高阻态,但是由于外部A的上拉电阻和B的下拉电阻,输出A 1 B 0……

查看原文:https://www.dianyuan.com/eestar/article-7885.html

关于昨天的隔离RS485转化器

昨天群里有群友问,这个转化器A的上拉电阻和B的下拉电阻都选10KΩ会不会太大了?如果端接120欧姆的终端电阻分压后会不会出问题?(RS485的高电平判断标准为大于+200mV,低电平判断标准为小于-200mV)

然后我做了以下测试,分享给各位同好:

不接120Ω终端匹配电阻,测试波形图如下,A-B的波形:

这个波形看起来是很正常确当发送为低电平时,A0B1,此时A-B=-5V当发送为高电平时,A1B0,此时A-B=5V均符合高低电平判断标准。

当接入120欧姆终端电阻后,测试波形图如下,A-B的波形:

这个波形就看起来不那么正常了(不过吸收端可以正常吸收!

)当发送为低电平时,A0B1,此时A-B=-5V(正常)当发送为高电平时,由于存在收发自动切换电路,此时切换为吸收状态,A和B均输出为高阻Z态。
此时分压后A-B电压即是5/(10k+10k+120)120≈29mV

但是上图可以看到,也并不是完备没有发出来高电平,而是在低电平切换为高电平时会有一个小的高电平尖峰,然后又回落到mV级别。
那么剖析这个尖峰的产生缘故原由为:

假设Tx由低电平转为高电平,那么反相器前面的电容是要充电的,在充电充到反相器输入端判为高电平的过程中,芯片都是在发送状态,以是会发出来一小段高电平 ,那个尖峰便是电容充电导致反相器没有立即输出低电平切换到吸收状态(A,B高阻)导致的。

然后我把电容拆掉了,果真这个高电平尖峰就不存在了,大致如下,除了-5V便是0V了基本,没有截图(图是前面的图加黑笔涂出来的)。
不过此时吸收端仍旧可以正常吸收??!
高电平判断难道不是+200mV以上吗??!

群友对虽然没到200mV但是可以正常吸收数据的预测:

觉得得看sp485对|A-B|<200mv怎么处理了,如SP485E的RO不输出低,且FT232串口吸收自带拉高,那就可以通信了,有点像iic的上拉电阻了。

不过在手册里没有看到SP485E对|A-B|<200mv的处理办法,也没有在FT232RL里看到RX是不是有内部上拉之类的描述……

查看原文:https://www.dianyuan.com/eestar/article-7886.html

引脚输出的隐蔽BUG | 深入思考

导读:最近在看一个接手项目的时候,溘然创造了看门狗(外部看门狗)程序中有这么一条喂狗语句:

GPIOC->ODR ^= (uint16_t)0x01;

不知道各位道友看到这条语句的第一想法是什么(当时这条语句被宏定义包装了的)?

看到这么一条语句的时候,鱼鹰第一感想是:坏了,这条语句会出大问题,以是我绝不犹豫的修正了这条语句。

由于这条语句本意是翻转电平,而且是一个宏定义,以是我直接将这个宏删掉,由函数进行更换,函数名便是宏名,如此全体程序只要改动几个地方就行,不用全体工程修正(这便是写宏定义的一个好处了,由此你也可以理解为什么宏定义喜好后面加括号“()”(当然你也可以利用全局更换,但这个更换有一定的风险))。

更换的函数如下:

现在来看看为什么鱼鹰看到那条语句就以为有问题。

实在有履历的道友该当都听说过读-改-写这个几个词,但不知你是否真正去理解这些名词背后的道理。
而鱼鹰深知对付利用操作系统的人来说,资源互斥的观点尤其主要,以是当初就花了整整一个晚上的韶光去思考这当中的事理并将当时的思考记录了下来。
正由于对此有深入的思考,以是当月朔看到这条语句就意识到这有一个隐蔽BUG。

由于当时只是理论上的思考,也由于当时是一边思考一边记录的,以是这篇条记(旗子暗记量保护之禁止中断,旗子暗记量保护之位带操作)可能不是很好懂,但是也有一定的借鉴性,建议看完。

这条语句是读-改-写的范例例子,据此我们展开深入谈论:

GPIOC->ODR ^= (uint16_t)0x01;

这条语句看似只有一条语句,但事实上从汇编角度的功能划分的话,有以下几种功能:

1、读出ODR寄存器的值(读)

2、这个值和0x01异或(即翻转bit 0)(改)

3、将结果写入ODR(写)

为什么会涌现问题,如果说这条语句是顺序实行的,那么这条语句没有一点问题,但是这种条件很难符合(必须看完前面关于旗子暗记量的内容,才能理解以下内容)。

1、裸机情形下,可能会有中断产生,只要你在中断中实行关于GIPIOC->ODR的指令,不管是GPIOC的哪一个引脚,都有可能涌现问题(负责思考这句话)。

2、操作系统情形下,任务实行情形和中断处理类似。

3、纵然你担保了当前的程序只有一个地方利用了这条语句,或者担保了这条语句的顺序实行,但是有可能其他地方利用了关于GPIOC端口输出的功能(比如有的地方利用了GPIO_ResetBits(GPIOC,XXX)),或者说往后需求改变了,增加了关于GPIOC输出引脚的操作,那么还是会涌现BUG,而这个隐蔽BUG的会涌现的非常有时,让你莫名其妙,而要找出这条隐蔽BUG会非常困难(如果不是有时看到这么一条语句,我还真没想到这里的BUG)。

综上所述,为了尽可能的担保程序的健壮性,必须把统统可能扼杀在摇篮中,这样你就不会在利用这条语句时各种小心翼翼了……

查看原文:https://www.dianyuan.com/eestar/article-7762.html

再谈i.MXRT106x FlexSPI NOR启动连接办法

上一篇文章《FlexSPI NOR启动连接办法(RT1015/1020/1050)》 写完之后,痞子衡发给了做线上客户支持的同事们审阅,受到了同事们的好评,同事们希望这个系列能把所有i.MXRT家族都写一遍,于是便有了本日的文章。
特殊提醒阅读本文时须要有上一篇文章的根本,由于有一些重复的内容本文不会赘述。
  

本日的主角是i.MXRT1060和i.MXRT1064,说是两款不同的芯片,实在实质上是一款,由于i.MXRT1064是i.MXRT1060的SIP(System In a Package)版本,大略的说便是 i.MXRT1060 + 内置QSPI NOR Flash (4MB, 108MHz) = i.MXRT1064。
但要真说是一款芯片吧,实在它们确实是两款不同的芯片,我们本日要聊到的FlexSPI NOR启动特性(尤其是连接办法)上两者又不一样。
  

i.MXRT1060是紧接着i.MXRT1050之后推出的增强型,在IP数量上进一步增多,尤其是本文重点关注的IP - FlexSPI,i.MXRT1060内部集成了两个FlexSPI模块(均是双通道8bit),比较于i.MXRT1050的单FlexSPI模块,i.MXRT1060在双Flash启动连接的支持上要更丰富一些。
而i.MXRT1064由于有内置Flash,其在单Flash启动办法则是定去世的,永久从内部Flash启动,无法选择从外部Flash启动。
  

i.MXRT1060集成双FlexSPI的紧张用意实在并不是连接两个Flash,而是一个挂Flash,另一个挂HyperRAM。
HyperRAM性能与价格现在与SDRAM相差无几,但引脚减少了很多,这对付I/O资源利用紧张的i.MXRT项目很有帮助。

一、关于Pin2Pin兼容

我们知道i.MXRT1050和i.MXRT1060均是BGA196封装,而且它们是Pin2Pin兼容,这意味着只要你的代码里利用的资源在两个芯片上都存在,那么这个代码原则上既可以跑在i.MXRT1050上,也可以跑在i.MXRT1060上。
  

你肯定会以为奇怪,明明i.MXRT1060比i.MXRT1050多了一些IP模块(比如FlexSPI2),为什么还能做到Pin2Pin兼容,那FlexSPI2模块的Pinmux跑哪里去了?且听痞子衡逐步阐明,Pinmux分配都在IOMUXC模块里,i.MXRT1050上每个GPIO共支持ALT0-ALT7共8个选项,i.MXRT1060上关于ALT0-ALT7的定义与i.MXRT1050是千篇一律的,这是Pin2Pin兼容的根本缘故原由,但i.MXRT1060上部分GPIO还拓展了ALT8和ALT9,那些新增的IP模块的Pinmux都在ALT8-ALT9上。
  下表示例了GPIO_EMC[11:9]的ALT定义,可以看到ALT0-ALT7的定义在两个芯片上是一样的,但是i.MXRT1060上多了ALT8定义,这正是FlexSPI2的部分Pinmux。

二、涉及FlexSPI引脚

2.1 BootROM指定

前面讲了,既然i.MXRT1060与i.MXRT1050是Pin2Pin兼容的,那么它们的BootROM在FlexSPI NOR启动的支持上是不是也一样的呢?你猜对了,虽然i.MXRT1060有两个FlexSPI模块,但是它的BootROM仅指定了从FlexSPI1启动,与i.MXRT1050是完备同等的。
  

我们可以在i.MXRT1060芯片参考手册System Boot这一章节找到BootROM指定的FlexSPI NOR引脚,痞子衡整理如下:

下表适用于i.MXRT1060(适用全系列封装):

i.MXRT1064内置了一片QSPI Flash,这片Flash固定连在FlexSPI2 PortA上,详细PAD是在GPIO_SPI分组里,但是你在芯片手册里根本找不到GPIO_SPI分组,由于这是芯片封装内部的I/O,没有引到外部BGA196封装上。
为了充分利用片内Flash,其BootROM指定了仅从片内Flash所连接的FlexSPI2启动。
  

下表适用于i.MXRT1064(适用全系列封装):

2.2 BootROM未指定

在此也列出不在BootROM指定的FlelxSPI NOR引脚,方便后续设计双Flash时参考。

下表适用于i.MXRT106x(适用全系列封装)……

查看原文:https://www.dianyuan.com/eestar/article-7818.html

大话i.MXRT1010 FlexSPI NOR启动连接办法

大家好,我是痞子衡,是正经搞技能的痞子。
本日痞子衡给大家先容的是恩智浦i.MX RT1010的FlexSPI NOR启动的连接办法。

在写完 《FlexSPI NOR启动连接办法(RT1015/1020/1050)》 和 《FlexSPI NOR启动连接办法(RT1060/1064(SIP))》这两篇之后,现在再来写本日的主角i.MXRT1010要相对轻松一些,毕竟i.MXRT1010是i.MXRT家族里的小弟弟。
  

i.MXRT1010是恩智浦于2019年推出的新品,小身材大能量,比较其他几位i.MXRT哥哥的BGA196、LQFP144、LQFP100封装,i.MXRT1010的LQFP80的亲民封装深得硬件工程师的欢心,引脚少了,板级设计上也就没那么多弯弯绕绕。
  

i.MXRT1010的市场定位类似于传统8位MCU或入门级32位MCU,它跟i.MXRT1015/1020/1050一样内部只集成了一个双通道8bit的FlexSPI模块,从低本钱开拓角度考虑外挂的芯片该当越少越好,因此本文紧张先容单Flash连接,不再像前面几款i.MXRT芯片那样去额外先容双Flash连接设计了。
  

我们知道i.MXRT1010内部RAM大小为128KB,并且其没有搭配图像干系IP模块(CSI、PxP、LCD),原则上内部RAM足够知足一样平常的运用需求了。
但由于它的分外性,本文会重点展开其怎么外挂RAM,详细i.MXRT1010分外在哪里,且往下看:

一、涉及FlexSPI引脚

1.1 BootROM指定

我们可以在i.MXRT1010芯片参考手册System Boot这一章节找到BootROM指定的FlexSPI NOR引脚,痞子衡整理如下:

1.2 BootROM未指定

在此也列出不在BootROM指定的FlelxSPI NOR引脚,方便后续设计Flash+外扩RAM时参考。

二、单Flash连接办法(2种)

参考文章《FlexSPI NOR启动连接办法(RT1015/1020/1050)》 的 《三、单Flash连接办法(3种)》章节,前两种连接办法,i.MXRT1010与i.MXRT1050是一样的。

三、Flash+外扩RAM连接办法(2种)

痞子衡前面讲了,i.MXRT1010是分外的,它到底分外在哪里?i.MXRT1010是迄今为止唯一的一颗仅支持从FlexSPI NOR启动(不支持其他类型启动设备)的i.MXRT芯片,而且它还跟i.MXRT1015一样是唯二的没有搭配SEMC模块(可用于外扩SDRAM)的i.MXRT芯片。
你可能还没理解这意味着什么,这意味着如果i.MXRT1010的内部128KB RAM不知足你的运用需求的话,外扩RAM(这里紧张指的是能直接AHB访问)是一件有点麻烦的事。
  

让我们回顾i.MXRT1010的那些大哥哥们,它们支持外扩RAM的办法就大略多了,既可以通过SEMC扩SDRAM,也可以通过FlexSPI扩HyperRAM。
哪怕便是i.MX1015,它还可以支持从LPSPI接口的QSPI NOR Flash启动,把FlexSPI完备让给HyperRAM……

查看原文:https://www.dianyuan.com/eestar/article-7819.html

更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)

六篇技能文章,让你秒懂电容的脾气秉性

七篇DIY技能文章献给你,让你脑洞全开

五篇文章帮你开启DSP的学习思路

汇总篇:关于PID知识,重点在此

标签:

相关文章

IT人员外派,机遇与挑战并存的发展之路

随着全球信息化进程的不断加快,我国IT行业迎来了前所未有的发展机遇。在这个背景下,IT人员外派作为一种新型的就业模式,逐渐成为行业...

通讯 2024-12-31 阅读0 评论0

IT人才战略,构建未来企业核心竞争力

随着信息技术的飞速发展,IT人才已成为企业核心竞争力的重要组成部分。在我国,IT产业的快速发展离不开IT人才的支撑。本文将从IT人...

通讯 2024-12-31 阅读0 评论0