你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】使用 STVP 实现对 STM32L1 系列 EEPROM 预置数据

[复制链接]
STMCU小助手 发布时间:2022-3-1 11:50
问题:! S- ?! ]7 @7 L6 S2 b6 P
某客户工程师在其产品的设计中,使用了 STM32L152RBT6。该工程师打算在烧写程序之前,往STM32L100 里边的 EEPROM 预置一些数据,没想到什么好的办法。他在网上搜了一下其他人的做法,发现大家基本上都是使用程序代码的方式,在第一次运行程序的时候,使用程序对 EEPROM 进行编程达到预置的目的。他觉得这不是最适合他的方法,于是请教是否还有其他更方便的方法。
: y6 Y# L1 q4 T" ~! e6 }9 h4 E
# V6 O" d1 g* v: Y; M调研:. p  t8 p" s* Q# y$ ^5 a9 o5 }  g
1. 根据客户的要求,第一反应就是看看 ST 的专业烧写软件 STVP 是否可以实现。于是连接 STM32LDiscovery 板子,将 STVP 软件开。
6 W  g0 X5 g# l2. 选择菜单“Configure→Configure ST Visual Programmer”,在弹出的对话框选择工具 ST-LINK,SWD 接口,STM32L152RBT6。如下图,点击“OK”,完成工具配置。
4 t% O0 \) q+ Z* x" B( P& N+ U1 f/ x: W! U) t! e
I41}WYQG)[@2@P6ARCC{2(H.png
& B5 C  K! o# j' w5 L3 B3 g- U
. Z$ k( R9 w9 f! v2 |! r3. 再来看窗口:
0 s7 b! p/ F9 ]2 W( T
" }* k4 e6 |8 m  v8 S N}	@XWB)_IJ909NQ83AO1.png
5 H% A) ]9 I' K$ ]+ J8 [* ?3 M
# z+ O. P& u! [3 `   我们可以看到数据窗口包括三个部分,一是 PROGRAM MEMORY,二是 DATA MEMORY,三是 OPTIONBYTE。其中的 DATA MEMORY 就是 EEPROM 区域。我们知道 STM32L152RBT6 总共有 4KB 的 EEPROM,地址从 0x08080000 到 0x08080FFF。
& H& [+ {- F0 ?4 |* U4. 我们往 DATA MEMORY 填入我们打算预置的数据,由于我们这里只是测试,于是分别在0x08080000~0x0808000F 和 0x08080FF0~0x08080FFF 填入一些数据,以供测试。如图:0 J7 a! P( e, V2 l: T/ n$ [

7 Y8 v3 O- G) @1 ]8 j C0E)~5{T8([SFU[46T{}_[L.png
5 H# a) h! i' Z0 w0 a! b
, m7 Q3 N8 H' N4 e5. 然后选择菜单“File→Save As”,将其保存为.hex 文件,比如 EEPROM.hex,这样完成预置数据的Hex 文件。
1 r3 s, _5 |& j9 D9 R0 q8 i6. 为了确认文件可用,我们先将 STVP 关闭。
8 ?; Z8 N9 I! V  N7. 我们再打开 STVP,确认配置没有问题后,在数据窗口区选择 DATA MEMORY,然后选择菜单“File→Open”打开刚才保存的 EEPROM.hex,可以看到我们预置的数据显示在了 DATA MEMORY 窗口数据区。
/ A- Y- x% v7 N  O- C. s+ |4 `7 o' W8. 这个时候,我们选择“Program→Current tab”或者选择工具栏上的“Program current tab oractive sectors”按钮进行编程下载:$ \* w1 t& c' Y- I, n

0 j1 ?) f/ l5 F( O1 b/ K$ m) N% E- C
@N(JDL(F7F1%JFWOQ9BEB06.png & G- R( w. g9 l0 m+ z% f# r4 V2 ?

7 v6 l  @  |: o3 p9. 编程完成后,我们可以在下方的信息输出区看到如此信息:5 k3 i- X+ H+ W0 ^& W7 W2 b* Y
% c3 ^  Z- i  b& s0 S( m* t
V9O)P(C4PNIPY_6%LIJC6.png
7 V6 x+ W% Y  a- w# ~. e
& O. I, v/ B0 z   看到此信息,说明了 EEPROM 的数据已经烧写成功了。2 u7 K8 X: a( K9 d3 B
10. 不放心,决定关掉 STVP,再重新打开,在数据窗口区选择 DATA MEMORY,选择“Read→Current tab”,读取完成后,我们可以看到从芯片中读回的数据,确实没错。
$ n& {$ v6 F7 K/ [0 c. g- ~5 E   
7 }# P" T$ N! O% M8 C# M结论:3 t3 x% E* R& L$ }8 f6 p8 a
STVP 软件工具可以用来实现对 STM32L1 系列的 EEPROM 的数据进行预置。
' I  f( _# l3 n+ F2 K8 a
+ e# |* }2 g5 l+ m1 J
) v4 T) D+ }# |( D' `7 w. |+ h2 ~处理:
8 ~9 x5 d% }! Q7 ?4 c    当客户的工程师进行研发的时候,可以使用步骤 1~5 来实现对预置的数据生成.hex 文件,并交予负责烧录的人员。负责烧录的人员在进行烧录的时候,只需要按照步骤 7~9 就可以实现对 EEPROM 进行数据预置了。+ x4 @- Z. h: v" L5 B7 R/ N
$ u1 H& m( u( X, l& T8 G
建议:& k  i$ E( k1 \% c/ ~8 n! W+ W$ k
' f: i- L; a1 c4 b# i9 l# P
在制作过程中,在进行数据的操作时,要特别注意选择 DATA MEMORY,不要搞错。另外,当需要对PROGRAM MEMORY 和 DATA MEMORY 同时进行烧写的时候,可以先制作 EEPROM 数据的.hex 文件,然后在DATA MEMORY 区打开此 EEPROM 数据.hex 文件,然后再在 PROGRAM MEMORY 区再打开用户程序代码.hex文件,在 OPTION BYTE 区设置好 Option Byte,使用“Program→All tabs”对芯片进行烧录。$ M: L8 T; }: w6 E0 l# G( u, J
6 [& O- C% V6 y8 Q
赞 收藏 评论0 发布时间:2022-3-1 11:50

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版