首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
07-30 12:11
苏州大学 设计
尽管就业形势很差,但不建议你实习太多
作为一个中大厂实习/校招都参与的面试官,最近看到了很多同学的简历上有多段实习,最多的有6段(真佩服你们的精力旺盛😂)确实被吓到了!想和大家聊聊我们在招人的时候,真的希望经历越多越好吗?答案是:打咩🙅,2-3段足矣。现在招人确实不像原来,即便没有相关经历,也有offer的可能。但是现在公司用人标准是综合考虑的,主要在岗位匹配度、稳定性以及和现在团队的适配度。匹配度:就是你有没有硬实力,岗位和你的经历匹配度达到多少,如果你6个实习来自各种方向,那面试官会觉得没有想清楚要做什么。稳定性:我们更喜欢在一家公司呆的久的同学,说明你性格相对稳定,抗压能力强且你对公司业务了解更深。适配度:软实力,这个有...
一个真正的_Man:
2-3=-1,那我0实习应该也比较契合,hr要不要考虑考虑我
简历中的项目经历要怎么写
点赞
评论
收藏
分享
今天 15:59
字节跳动_后端开发
从字节实习转正失败到拿校招offer|这6个月教会我的事
最近刷到好多26届学弟学妹在问实习转正的事,但平常工作日实在太累了 所以在周末分享一下作为去年在字节实习了半年最后“翻车”的25届后端开发er,将踩过的坑和悟到道理整理出来——转正失败不代表你不行,反而是最珍贵的成长课💡先说说我的故事:在字节实习6个月,分配的需求均独立上线且未出现事故,由于初入社会不懂人情世故并且和老板不在一个base地 老板仅觉得我符合预期 缺乏亮点 达不到校招生的要求 hc给了外面校招生 当时的我躲在会议室哭到窒息,觉得自己像个笑话。但转折是——离职后春招重新面了3轮技术面,最后还是拿到了字节后端校招offer✨经历带给我的成长如果你还在实习中并且非常希望转正留在组内:...
投递字节跳动等公司10个岗位
点赞
评论
收藏
分享
07-18 18:24
火炉中学 Java
今天提交了人生第一次代码,开心
虽然只是一个小小的bug进来实习一直只让我读代码熟悉项目,一个需求也没有今天看代码的时候发现一年半前的一段代码的判空条件错了,一直没测出来可能是因为这个要在数据库不一致的情况下才会NPE,赶紧给组长汇报我的小发现,组长就让我创建分支,提交推送,合并分支了虽然只是一个小小的bug,但第一次提交代码给我的奇妙感觉还是让我记忆深刻,感觉自己的职业生涯迈出了一大步不过上午困得不行在工位偷偷睡了三分钟就被ld叫醒了,还问我是不是没休息好,困就回家睡,在公司睡会影响同事
猫猫头猫头鹰:
好了轮到我了。 你是我今天见过的最美的牛客女孩
点赞
评论
收藏
分享
06-26 21:09
长沙理工大学 C++
有没有人来制裁一下
如下图,真让我惊到了,有没有人去给这老板上一课
写不来代码的小黑:
这么小的城市能有做it的公司也不容易
点赞
评论
收藏
分享
07-31 14:17
门头沟学院 Java
属猴怎么你了
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
5405
2
...
虾皮秋招一面
3025
3
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2504
4
...
百度提前批 三面
2047
5
...
7.30百度提前批一面
1886
6
...
小鹏offer
1413
7
...
上班一周,工资还没拿,先欠公司两千
1314
8
...
百度7.30二面
1279
9
...
最强本科✌
1194
10
...
大学四年,我感觉我像个“孤勇者”
1187
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
28303次浏览
805人参与
#
秋招被确诊为……
#
163443次浏览
742人参与
#
中兴秋招
#
205119次浏览
2289人参与
#
工作中哪个瞬间让你想离职
#
63013次浏览
567人参与
#
你最希望上岸的公司是?
#
134968次浏览
705人参与
#
和同事相处最忌讳的是__
#
23834次浏览
243人参与
#
虾皮求职进展汇总
#
248901次浏览
1840人参与
#
2022毕业即失业取暖地
#
102644次浏览
662人参与
#
2022毕业生求职现身说法
#
89220次浏览
700人参与
#
你最近一次加班是什么时候?
#
70966次浏览
350人参与
#
投格力的你,拿到offer了吗?
#
86404次浏览
582人参与
#
26届的你,投了哪些公司?
#
42762次浏览
480人参与
#
你的秋招第一面感觉怎么样
#
76695次浏览
591人参与
#
你遇到最难的面试题目是_
#
16326次浏览
199人参与
#
我对___祛魅了
#
46905次浏览
429人参与
#
柠檬微趣工作体验
#
6664次浏览
40人参与
#
地平线求职进展汇总
#
52623次浏览
369人参与
#
研究所VS国企,该如何选
#
194763次浏览
1819人参与
#
如果校招重来我最想改变的是
#
271753次浏览
2849人参与
#
你跟室友的关系怎么样?
#
6932次浏览
106人参与
#
你最讨厌面试问你什么?
#
27684次浏览
308人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务