首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-15 16:56
上海智元新创技术有限公司_强化学习算法工程师(准入职员工)
智元机器人内推,智元机器人内推码
智元机器人关节模块面1️⃣自我介绍2️⃣问了实习细节 仿真用的什么软件 work bench用的什么模块 谐响应什么模块3️⃣用的什么绘图软件 creo钣金会用多少 描述一下建模水平 ,说一下几种钣金材料,冷轧和热轧有什么区别4️⃣除了钣金还知道什么材料,45钢材和245钢材在机器人中有哪些应用5️⃣说说实习中电机相关知识,了解哪些电机算法6️⃣问一下克拉克变换和帕克变换的数学原理7️⃣软体机器人的设计要点,怎么考虑折弯角,怎么计算握力,怎么选取气动压强,怎么设计气动?8️⃣假如项目中伺服电机编码反馈信号出现干扰,导致关节定位不准,你该如何定位问题?智元机器人【人形机器人头部企业】2026届校...
点赞
评论
收藏
分享
01-20 20:10
西安邮电大学 后端工程师
大厂后端实习生的日常生活是怎么样的?
一句话总结:其实大头还是写需求。只不过是写更规范的需求。我们以一般实习生的三四个月在职时长,看一看你都会经历哪些事情。但下面这个流程也和公司规模有关系。越小的公司可能越流程越杂乱。第一周内:这个时间段内,你主要还是以新人培养为主。一般会安排你读一些组内的业务文档,分配你的MT。遇到比较好的MT还会和你一对一的讲一讲组内业务。这个时间点也不一定就刚好卡死一周。不太忙的业务组可能时间长一点,要是业务组特别忙的话,巴不得你第二天就开始介入需求。并且在未来的一段时间内,日报/周报/月报将会伴随你的实习生活。主要还是为了你的LD(直属领导)以及MT了解你的动向,同步工作进度、遇到的问题和后续计划。往后一...
代码之外的生存之道
点赞
评论
收藏
分享
01-04 15:19
门头沟学院 嵌入式软件开发
双非本科,嵌入式秋招上岸的一次总结
bg双非本科,方向是嵌入式。这次秋招一共拿到了 8 个 offer,最高年包 40w,中间也有一段在海康的实习经历,还有几次国家级竞赛。写这篇不是想证明什么,只是想把自己走过的这条路,尽量讲清楚一点,给同样背景的人一个参考。一、我一开始也很迷茫刚决定走嵌入式的时候,其实并没有一个特别清晰的规划。网上的信息很零散,有人说一定要懂底层,有人说项目更重要,也有人建议直接转方向。很多时候都是在怀疑:1.自己这种背景到底有没有机会2.现在学的东西到底有没有用3.是不是已经开始晚了这些问题,我当时一个都没答案。二、现在回头看,我主要做对了这几件事第一,方向尽早确定,但不把自己锁死。我比较早就确定了嵌入式这个大方向,但具体做哪一块,是在项目、竞赛和实习中慢慢调整的,而不是一开始就给自己下结论。第二,用项目和竞赛去“证明能力”,而不是堆技术名词。我不会刻意追求学得多全面,而是确保自己参与的每个项目,都能讲清楚:我负责了什么、遇到了什么问题、最后是怎么解决的。第三,尽早接触真实的工程环境。在海康实习的那段时间,对我触动挺大的。我开始意识到,企业更看重的是代码结构、逻辑清晰度,以及你能不能把事情说清楚,而不只是会不会某个知识点。第四,把秋招当成一个需要长期迭代的过程。简历不是一次写完的,面试表现也不是一次就到位的。我会在每次面试后复盘哪些问题没答好,再针对性补。三、我踩过的一些坑现在看也挺典型的:1.一开始在底层细节上纠结太久,投入产出比不高2.做过项目,但前期不会总结,导致面试表达吃亏3.早期有点害怕面试,准备不充分就去投这些弯路走过之后,才慢慢找到节奏。四、给和我背景相似的人一点建议如果你也是双非,准备走嵌入式,我觉得有几件事挺重要的:1.不用等“准备得差不多了”再投2.项目一定要能讲清楚,而不是做完就算3.不要只盯着技术,多关注表达和逻辑很多时候,差的不是能力,而是呈现方式。五、写在最后这篇总结不是标准答案,只是我个人的一次复盘。后面我会陆续把自己在嵌入式学习、竞赛、实习和秋招中的一些真实经验拆开来讲,希望能对后来的人有点帮助。如果你正好也在这条路上,希望你能少走一点弯路。
x_y_z1:
蹲个后续
点赞
评论
收藏
分享
昨天 11:04
蚌埠坦克学院 嵌入式软件开发
深圳广和通嵌入式软件工程师一面总结
前言最近总结了一份深圳广和通(Fibocom)嵌入式软件工程师的一面面经,整个面试时长约40分钟。广和通作为国内领先的无线通信模组供应商,在物联网、车联网、智能终端等领域有着广泛的应用,其产品涵盖 4G、5G、NB-IoT 等多种通信制式。因此,公司对嵌入式工程师的要求不仅限于基础的单片机开发,更看重候选人在 RTOS、通信协议、底层驱动等方面的实战经验。这次面试主要由一位技术主管进行,整体氛围比较轻松,面试官会根据简历上的项目经历进行深入提问,同时穿插一些嵌入式领域的经典问题。面试内容主要分为三个部分:项目经历介绍(约10分钟)、技术基础考察(约25分钟)、反向提问环节(约5分钟)。值得注意...
查看15道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
备战春招,网申一键填写工具,发布了!!!
3.4W
2
...
【评论得现金💰】26年度牛客评论活动起航!(试运行)
6973
3
...
27双非非科班4段实习从字节tt到腾讯wxg
6699
4
...
AI 军火库
3754
5
...
腾讯后端日常实习二面(已OC)+一点随笔
3673
6
...
字节校招landing实感
3529
7
...
多益可以去吗
3006
8
...
AI coding时代,前端已死?
2711
9
...
第二期「创作模范」名单揭晓!速来围观
2588
10
...
2026年大模型对比:谁是编码和推理王者?
2458
创作者周榜
更多
正在热议
更多
#
上班以后,你还有哪些坚持的爱好?
#
3422次浏览
100人参与
#
拼多多工作体验
#
42600次浏览
275人参与
#
你最近因为什么迷茫?
#
20919次浏览
289人参与
#
你有哪些缓解焦虑的方法?
#
47447次浏览
892人参与
#
你都在哪些场所面过试?
#
8610次浏览
137人参与
#
记录实习开销
#
176677次浏览
677人参与
#
当你面对裁员会如何?
#
355878次浏览
2878人参与
#
你认为小厂实习有用吗?
#
114877次浏览
677人参与
#
实习离职怎么跟领导说
#
74749次浏览
412人参与
#
工作一周年分享
#
49238次浏览
243人参与
#
AI coding的好用工具分享
#
8537次浏览
193人参与
#
工作压力大怎么缓解
#
133410次浏览
1163人参与
#
实习怎么做才有更好的产出
#
5415次浏览
128人参与
#
一起聊字节
#
241348次浏览
1018人参与
#
实习生工资多少才算正常?
#
6755次浏览
128人参与
#
找工作以来,你最看不惯__
#
5209次浏览
136人参与
#
你给AI提过哪些离谱的需求?
#
3019次浏览
106人参与
#
26届秋招投递记录
#
112215次浏览
661人参与
#
领导做过最不靠谱的事
#
6998次浏览
131人参与
#
上班到公司第一件事做什么?
#
134374次浏览
938人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务