首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
12-03 18:50
辽宁大学 Java
26秋招何去何从
我不知道如何才能描述出我当前的迷茫和不甘,无论您停不停留,都祝您开开心心,快快乐乐!本人26届,双非本211硕 Java 后端,有一段2个月的小厂实习,秋招现在是 2个offer。一、实习5000,不着急签,所以已经打算去实习,然后 HR 老大也可以理解明年3-4月再看机会,所以就给了实习 offer,它开的最多 14k。二、算是中厂,催签(还有三天)且不允许毁三方,意思是只要接受offer就开始走流程。走到中途或者明年秋招想毁约,会卡你,不给毁的机会。开 17 *(13或14),包住宿,公积金双边 10%。不甘心就是觉得其实不满足我的薪资要求,想着怎么也得开20k。所以有点想参加春招收割一波...
没有实习经历,还有机会进...
点赞
评论
收藏
分享
12-02 11:24
realme_软件工程师(准入职员工)
衣恋集团内推,衣恋集团内推码
战略管培生面经1. 请介绍一下你对ESI战略管培生的理解以及你为什么想加入衣恋集团? 2. 你是如何处理压力和挑战的?请举例说明。 3. 你对衣恋集团的企业文化了解多少?你是否认同? 4. 你是如何进行数据分析的?请举例说明。 5. 你熟悉哪些市场调研方法?请举例说明。 6. 你对商业计划书的撰写流程了解多少? 7. 你对财务报表分析了解多少? 8. 你是如何进行市场细分的?请举例说明。 9. 你对品牌管理的理解是什么? 10. 你如何评估一个项目的可行性? 11. 你对供应链管理了解多少? 12. 你认为衣恋集团的优势和劣势分别是什么?New Balance母公司&韩国最大时尚零售集...
点赞
评论
收藏
分享
12-02 20:01
门头沟学院 前端工程师
这种简历怎么进的大厂?
不好意思友友门标题党了其实是本人27届想找第一份实习,boss沟通了十几个,感觉太难了,进面的也很少,求各位大佬痛批简历求求了
独角仙梦境:
技术方面没看到说你会工程化的内容,是没学还是没写,学了的话就写上去
那些拿到大厂offer的...
点赞
评论
收藏
分享
10-31 20:47
小红书_客户端(准入职员工)
关于快手
想问一下大佬们,快手的简历是不是露头就秒,投递记录要划动两次滚轮😅
路过的周先森:
我就喜欢这种无限复活+筛选快的,比那些投进去就没声还占用投递次数的好多了
投递快手等公司7个岗位
点赞
评论
收藏
分享
12-03 10:49
清华大学 算法工程师
大佬帮忙选下offer
👋个人背景:211本,top2硕👏offer1:京东零售,总包70W-72W,base北京💯offer2:华为总包47W,base上海/深圳,去南京会稍微降低,但大于40W🌱offer3:二线城市国企(30W+),听说三年后可以调任公务员队伍
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
有点东西~牛客和14位牛友一起做了个官网投递插件
6440
2
...
TCP/IP高频面试题--可爱图片版
4237
华为开奖交流
热聊中
3
...
下班就想躺,这正常吗
2470
4
...
兄弟们走路不要刷牛客😭
2470
5
...
回顾下25年,感想颇多
2064
6
...
翘课去实习的那些人后来怎么样了
2012
7
...
双非本科结束秋招~
1892
8
...
2025年对你来说是怎样的一年?
1809
9
...
快手日常实习面经(已oc)
1298
10
...
26秋招何去何从
1248
创作者周榜
更多
正在热议
更多
#
为了去实习,我赌上了___
#
20392次浏览
202人参与
#
面试紧张时你会有什么表现?
#
15784次浏览
130人参与
#
百融云创求职进展汇总
#
206次浏览
0人参与
#
uu们,春招你还来吗?
#
11980次浏览
81人参与
#
2025年终总结
#
12579次浏览
213人参与
#
哪一瞬间让你觉得“这班不如不上”
#
11111次浏览
151人参与
#
硬件兄弟们 甩出你的华为奖状
#
116812次浏览
697人参与
#
父母对你找工作是助力还是阻力?
#
13231次浏览
193人参与
#
十二月请对我好一点
#
24831次浏览
332人参与
#
第一份工作能做外包吗?
#
86056次浏览
577人参与
#
一人推荐一个值得做的项目
#
9043次浏览
118人参与
#
高薪高压 vs 低薪wlb,你怎么选?
#
10809次浏览
114人参与
#
总结:哪家公司最喜欢泡池子
#
155519次浏览
559人参与
#
应届生初入职场,求建议
#
278772次浏览
2837人参与
#
降低公积金和取消房补怎么选
#
23418次浏览
79人参与
#
工作前VS工作后,你的心态变化
#
13106次浏览
155人参与
#
25届网易互娱暑实进度
#
91809次浏览
750人参与
#
晒一晒你收到的礼盒
#
87933次浏览
429人参与
#
你有哪些缓解焦虑的方法?
#
41890次浏览
857人参与
#
工作中出现了XX情况正常吗
#
32036次浏览
211人参与
#
学历or实习经历,哪个更重要
#
202209次浏览
1070人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务