首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-13 20:15
曼迪匹艾_人力资源部_HRBP(准入职员工)
MDPI内推,MDPI内推码
常见问题:3.加班吗 目前我是加班的,一般➕0.5-1h,加不加班主要看自己的进度和效率,刚入职,操作慢,一般会加班。 4.加班有加班费吗? NO,超过晚上七点🕖可以点一份工作餐(必须七点以后才可以点,需要5点之前点餐,如果你确定自己加班会超过七点,就可以点啦) 5.有KPI吗? 有的,入职3个月(发文15篇)和6个月(发文60篇)都要发文量要求。转正后每个季度30篇,超过30每篇奖励300💰。 6入职后有人带吗? 有的,入职后每个人都有师傅带,遇到的师傅就像读研选导一样,听天由命,幸运的遇到耐心负责的,运气差点的~,不过一般都还是很好的 7.公司环境如何? 和你在其他分享中看到的一样,女...
曼迪匹艾公司福利 136人发布
点赞
评论
收藏
分享
01-15 16:44
华为_软件工程师
考研考公失利后,我为什么劝你考虑华为OD
作为hr,最近收到了很多考研考公同学的简历,不乏有二战、三战的同学,今天下午正好没什么需要处理的事情,我也想来简单聊聊这个事情其实海莉姐曾经也是考研考公队伍的一份子,那会儿我和众多应届生一样,很迷茫,不知道未来要做些什么,大家都考公考研,那我也去参加。在这种毫无目标的情况下,自然是名落孙山。。(说个好玩的,海莉姐当年考公行测70+,申论30,可能得严查祖宗三代hhhh)不过海莉也因此非常理解大家的心情,真正经历过的人才知道失利之后真正难受的点在于重回”不知道该干什么“的情境,尤其是二战甚至更多战的人选会面对最直观最现实的问题——不好找工作。也不是能力不行,大学期间也不是什么都没干,但是招聘软件...
考研人,我有话说
点赞
评论
收藏
分享
2025-12-22 09:14
湖南大学 安卓
字节卷出新高度:午休两小时等于旷工
看到一个字节内部员工爆料,自己中午12:00外出吃饭,14:00回到工位,算旷工!更魔幻的是帖子的评论证实,员工手册里白纸黑字确实是这样写的。中午这段时间外出需要和领导报备,不能在外面,也不能回家吃饭。原来所谓的“午休两小时”,根本不是给你吃饭休息的,而是需要全程在岗的“工作时间段”。所以,字节只是一个土老板私企.plus,跟同行业外企没法比,早该驱魅了。
无能的后端仔:
假的,我对象在字节天天回来睡觉午休2.5小时
字节跳动工作体验
点赞
评论
收藏
分享
01-16 20:00
蚌埠坦克学院 嵌入式软件开发
之前嵌入式找实习的时候也挺容易的
之前找嵌入式实习的时候,其实并没有想象中那么难。那时行业需求旺盛,很多公司愿意招实习生来培养,只要掌握了基本的单片机原理、C 语言和常见外设的使用,再做过一两个小项目,就能获得不少面试机会。相比现在动辄要求多项经验和完整项目的门槛,当时更看重学习能力和态度。回头看,那段找实习的经历不仅相对顺利,也让我更早地认识了行业、积累了信心。
找实习记录
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
【评论得现金💰】26年度牛客评论活动起航!(试运行)
4808
2
...
第二期「创作模范」名单揭晓!速来围观
2636
3
...
AI 军火库
2239
4
...
腾讯后端日常实习二面+一点随笔
1879
5
...
有赞前端 一、二、hr面
1796
6
...
实习久了,感觉人也麻木了
1507
7
...
好未来你个垃圾,配不上老子
1288
8
...
不完全作图 Prompt 指南
1193
9
...
百度26秋招毁意向
1106
10
...
26届应届生对世界表示无奈
1096
创作者周榜
更多
正在热议
更多
#
你最近因为什么迷茫?
#
12038次浏览
188人参与
#
AI coding的好用工具分享
#
3664次浏览
103人参与
#
上班以后,你还有哪些坚持的爱好?
#
1819次浏览
53人参与
#
实习怎么做才有更好的产出
#
2437次浏览
76人参与
#
你都在哪些场所面过试?
#
4674次浏览
80人参与
#
实习生工资多少才算正常?
#
3916次浏览
85人参与
#
实习心态崩了
#
100615次浏览
515人参与
#
你给AI提过哪些离谱的需求?
#
1802次浏览
73人参与
#
找工作以来,你最看不惯__
#
3033次浏览
73人参与
#
领导做过最不靠谱的事
#
5022次浏览
87人参与
#
哪些公司开春招了?
#
2045次浏览
29人参与
#
你最希望上岸的公司是?
#
181575次浏览
800人参与
#
华为保温
#
169767次浏览
643人参与
#
你觉得第一学历对求职有影响吗?
#
222336次浏览
1230人参与
#
刚入职就____,这样正常吗?
#
124577次浏览
665人参与
#
秋招有哪些公司要求提前实习
#
102923次浏览
545人参与
#
非技术岗投递进展
#
166682次浏览
1317人参与
#
新年的第一句祝福
#
53652次浏览
389人参与
#
华子oc时间线
#
1408404次浏览
6994人参与
#
当发现同事想辞职
#
13656次浏览
47人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务