首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
已注销
发布于江西
关注
已关注
取消关注
mark
@嵌入式的小白:
分享下我工作后写的第一个驱动的经历,spi同eeprom通信
我大学学的硬件,但其实对这个兴趣不大,而且刚工作后,发现硬件貌似不适合我,就慢慢转嵌入式了,当时只有个C语言的基本,然后自学了STM32的一些东西,就大胆的去换工作,换到嵌入式软件了,换的还是比较顺利,当时还是很容易的找到个初级工程师的岗位,入职后,就要让我开始干活了。我那个项目用的是ATMEL的MCU,要和一个eeprom通过,eeprom存储了一些信息,我需要做的是编写好一个读eeprom和写eepro的接口,供别的同事调用,也就是咋们通常说的驱动,提供驱动EEPROM的接口,里面存啥数据我就不用关心的,当时硬件设计上MCU和eeprom之间的通信方式是spi接口(有的eeprom是采用iic的方式通信,具体器件具体对待啊)。1.因为软件上需要对spi引脚进行初始化,所有我先从硬件提供的原理图中找到spi对应的引脚信息,看了图,在结合mcu的手册,我知道了使用的引脚和使用的是那一组spi2.开始写代码,我已经有对应的引脚信息了,就开始进行引脚,时钟和spi的初始化,并配置了spi写操作对应的DMA和spi对操作对应的DMA引脚主要就是把默认的gpio配置成spi功能,除了这个之外,还有控制eeprom的其他管教,其中包括电源(MCU有一个电源使能引脚来对eeprom进行上电和掉电的操作),控制引脚HOLD(通过该引脚来暂停对设备的访问,这个时候除了片选脚,所有输入脚上的传输都会被忽略),该项目上因为spi上只接了一个设备eeprom,所有cs引脚默认生效,所以不用管这个脚了。spi初始化主要配置了工作模式(spi有4种工作模式),市场上的spi设备,一般都会支持两种模式,我们在配置时,配置成支持的模式即可。3.操作说明我当时用的那款eeprom内部有一个8bit的指令寄存器,这个是通过eeprom手册中查看到的,写驱动那肯定是先看手册啦,通过手册知道怎么控制对应的器件,才能写代码哦,从eeprom手册中,我还得知和eeprom通信时,CS脚必须拉低并且HOLD脚必须拉高。当然还有操作指令,这个指令时啥意思呢?就是说每一次操作前,我先给eeprom发送指令和要操作的eeprom对应的地址,eeprom就知道我接下来要干啥了,废话不多说,直接先看怎么读的吧4.spi读操作操作时,需要先上电,并拉低CS引脚(CS引脚操作可忽略,因为当时项目上一直为低),然后发送读指令,紧接着发送地址,之后对应地址上的数据就会通过MISO引脚返回给MCU了,MCU就获取到了这个地址上的数据,如果我还需要下一个地址的数据,那就让spi继续工作,eeprom收到sck信号后,就把下一个地址的数据继续通过MISO引脚发出来了。如下图就是读操作的时许图,图中我特别用红色框标准了3个重要的地址,第一个instruction就是发送的读指令,第二个红色框就是发送的需要操作的eeprom对应的地址,第三个红色框就是eeprom给返回来的数据,这个图里面就读了一个数据,读了一个数据后,CS引脚就拉高了。5.spi写操作在写之前,需要我先一下写使能,好多eeprom在写操作前,必须发送WREN指令设置写使能锁存位。然后才能进行写操作。写操作和读操作有点相似,都是先发送指令,然后发送对应的地址,然后后面跟着数据。这个时序图和上面写操作相似,但注意上面两幅图全部都是从从设备的角度考虑的,图中的SI和SO两个信号中的S指的就是slave的意思,所以在写操作时,写入的数据是从MCU发出给EEPROM的,所以SI信号线上应该有待写入EEPROM的数据Data Byte,对于读操作,数据是从EEPROM到MCU的,所以数据Data out是在SO信号线上的。6.地址扩展说明从上面读写操作的时序图中可以看出,每个图中的第2个红色方框中的地址是16bit的,但这个在不同的从设备中会有差异,有的芯片从设备是固定的16bit,有的是8bit,有的是16bit,对于16bit或者24bit的情况下,看注意看对应从设备手册,看发从地址时,是先发送高位还是先发送低位。7.压力测试这个是我个人习惯,通常情况下,都会进行压力测试,对于EEPROM来说,我做的压力测试,就是来回的读写比对,来查看代码的健壮性。8.写使能刚才在写操作部分,简单说了下写使能,实际上,这个写使能就相当于上锁了,这个锁是在写之前要设置,且在任何写操作内部执行完成前,该锁存位都必须置上,且写使能指令发送后,CS需要拉高,然后再进行写操作,要是不拉高就开始写操作,那么数据因写使能没有正确设置导致写的数据没有写入eeprom中。写指令时许图如下。上电默认情况下,是会复位写使能锁存位的,且我用的这款EEPROM,是在字节写,页写或者写状态寄存器之后,写使能锁存位都会复位,这也是一种写保护的措施吧,就是为了防止一些误操作。有写使能,就也有与之对应的反操作,称为写失能,其时序图如下9.经验分享有些SPI通信中,因为从设置就一个,有时候就不关心CS,比如就有些情况下一直拉低CS,这种从理论上说没问题,但假如有异常操作,cs又是拉低的,就相当于MCU和eeprom操作了,就算异常操作,但未必就能对的上上面说的写指令,或者读指令等其他指令,不过我个人习惯会在不用的时候拉高cs
点赞 9
评论 3
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
11-06 11:31
三环集团_后端开发工程师(准入职员工)
三环集团内推,三环集团内推码
🏢三环集团:主要做陶瓷材料,覆盖半导体、新能源、通信、电子等领域。 一面人事面9.15 1、自我介绍 2、面试官问题 (1)考虑读博吗? (2)目前投了哪些公司,收到offer了吗? (3)考虑哪些城市工作? (4)有男朋友吗?怎么认识的?哪里人?以后怎么解决异地的问题?什么专业?几年级了? (5)现在硕士课题做什么? (6)论文发表情况?发了SCI吗?投的几区? (7)对于工作强度能接受吗?长期大小周 (8)工作环境恶劣,粉尘多,有有机气体,要长期下一线,能接受吗? (9)长期在潮州能接受吗? 3、反问问题 (1)待遇如何:按照学校定,交大≈20k*13薪,公积金当地最低标准缴纳,比如自己...
点赞
评论
收藏
分享
11-05 23:04
已编辑
浙江大学 Java
🐧腾讯三面
📍面试公司:腾讯3面🕐面试时间:40分钟💻面试岗位:后台❓面试问题:上来先来一个算法题(LRU淘汰)写了大概二十多分钟介绍一个复杂的项目考打了一下项目redis和消息列队怎么保持一致性结束了,没有反问,非常像KPI面,面试官感觉很忙,问完问题都要闭麦。最后问了什么时候可以入职,然后等着HR面??!🙌面试感想:我这是有戏么?哪位大佬解释一下更新:进入HR面,许愿!许愿!许愿!更新:录用评估中,许愿oc!!!
查看3道真题和解析
点赞
评论
收藏
分享
10-26 20:54
腾讯_后台开发(实习员工)
招银 offer(超级大白菜)
深圳 一个月终于泡出来去不了一点
后端转测开第一人:
你不是干销售吗
秋招的第一个offer,...
点赞
评论
收藏
分享
11-07 21:38
蚌埠坦克学院 嵌入式软件开发
找工作不能操之过急
找工作不能操之过急求职是一个系统的过程,需要时间去了解行业、公司和自身优势。操之过急往往会导致草率选择,不仅可能错过更适合自己的机会,还容易在面试和工作中感到不适应。耐心准备简历、提升技能、积累经验,认真筛选岗位,逐步推进,才更容易找到既匹配能力又符合职业规划的工作。短期的等待换来长期的稳定与发展,比急于求成更值得。
你找工作是从容有余 or...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
26开发校招薪酬分析
3913
2
...
京东开的有点吓人
3504
3
...
offer求帮选
2613
4
...
京东算法开奖
2580
5
...
入互联网是我学生涯做过最错误的选择
2446
6
...
北漂实习还是得自己做饭吃,超级省钱
2277
7
...
双非本如何后端转测开 最强干货
1973
8
...
26秋招途虎养车Java开发一面
1934
9
...
适合安卓客户端的学习路线
1893
10
...
谁想吃我亲手做的美味豆豉排骨豆腐闷饭,花费10元
1886
创作者周榜
更多
正在热议
更多
#
说说你知道的学历厂
#
359477次浏览
1292人参与
#
外包能不能当跳板?
#
49154次浏览
249人参与
#
联影求职进展汇总
#
59712次浏览
372人参与
#
校招薪资来揭秘
#
5238次浏览
29人参与
#
联影医疗求职进展汇总
#
14798次浏览
73人参与
#
秋招什么时候开投比较合适?
#
113159次浏览
815人参与
#
京东开奖
#
485778次浏览
2716人参与
#
本机械人被这些公司泡过池子
#
38655次浏览
185人参与
#
距离放假还有_天,我已经……
#
28726次浏览
321人参与
#
CVTE求职进展汇总
#
24662次浏览
323人参与
#
简历无回复,你会继续海投还是优化再投?
#
105379次浏览
825人参与
#
中核求职进展汇总
#
29929次浏览
193人参与
#
海康威视工作体验
#
47182次浏览
158人参与
#
同bg的你秋招战况如何?
#
177707次浏览
1044人参与
#
哪些公司校招卡第一学历
#
221949次浏览
779人参与
#
面对逼签的应对技巧
#
10421次浏览
42人参与
#
嵌入式岗知多少
#
60149次浏览
548人参与
#
毕业论文进行时
#
8757次浏览
88人参与
#
2022毕业即失业取暖地
#
118003次浏览
707人参与
#
找实习你看重大厂光环还是业务方向
#
42927次浏览
164人参与
#
第一份工作能做外包吗?
#
78782次浏览
551人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务