STMCU小助手
发布时间:2022-3-1 11:50
|
问题: 某客户工程师在其产品的设计中,使用了 STM32L152RBT6。该工程师打算在烧写程序之前,往STM32L100 里边的 EEPROM 预置一些数据,没想到什么好的办法。他在网上搜了一下其他人的做法,发现大家基本上都是使用程序代码的方式,在第一次运行程序的时候,使用程序对 EEPROM 进行编程达到预置的目的。他觉得这不是最适合他的方法,于是请教是否还有其他更方便的方法。 调研: 1. 根据客户的要求,第一反应就是看看 ST 的专业烧写软件 STVP 是否可以实现。于是连接 STM32LDiscovery 板子,将 STVP 软件开。 2. 选择菜单“Configure→Configure ST Visual Programmer”,在弹出的对话框选择工具 ST-LINK,SWD 接口,STM32L152RBT6。如下图,点击“OK”,完成工具配置。
3. 再来看窗口:
我们可以看到数据窗口包括三个部分,一是 PROGRAM MEMORY,二是 DATA MEMORY,三是 OPTIONBYTE。其中的 DATA MEMORY 就是 EEPROM 区域。我们知道 STM32L152RBT6 总共有 4KB 的 EEPROM,地址从 0x08080000 到 0x08080FFF。 4. 我们往 DATA MEMORY 填入我们打算预置的数据,由于我们这里只是测试,于是分别在0x08080000~0x0808000F 和 0x08080FF0~0x08080FFF 填入一些数据,以供测试。如图:
5. 然后选择菜单“File→Save As”,将其保存为.hex 文件,比如 EEPROM.hex,这样完成预置数据的Hex 文件。 6. 为了确认文件可用,我们先将 STVP 关闭。 7. 我们再打开 STVP,确认配置没有问题后,在数据窗口区选择 DATA MEMORY,然后选择菜单“File→Open”打开刚才保存的 EEPROM.hex,可以看到我们预置的数据显示在了 DATA MEMORY 窗口数据区。 8. 这个时候,我们选择“Program→Current tab”或者选择工具栏上的“Program current tab oractive sectors”按钮进行编程下载:
9. 编程完成后,我们可以在下方的信息输出区看到如此信息:
看到此信息,说明了 EEPROM 的数据已经烧写成功了。 10. 不放心,决定关掉 STVP,再重新打开,在数据窗口区选择 DATA MEMORY,选择“Read→Current tab”,读取完成后,我们可以看到从芯片中读回的数据,确实没错。 结论: STVP 软件工具可以用来实现对 STM32L1 系列的 EEPROM 的数据进行预置。 处理: 当客户的工程师进行研发的时候,可以使用步骤 1~5 来实现对预置的数据生成.hex 文件,并交予负责烧录的人员。负责烧录的人员在进行烧录的时候,只需要按照步骤 7~9 就可以实现对 EEPROM 进行数据预置了。 建议: 在制作过程中,在进行数据的操作时,要特别注意选择 DATA MEMORY,不要搞错。另外,当需要对PROGRAM MEMORY 和 DATA MEMORY 同时进行烧写的时候,可以先制作 EEPROM 数据的.hex 文件,然后在DATA MEMORY 区打开此 EEPROM 数据.hex 文件,然后再在 PROGRAM MEMORY 区再打开用户程序代码.hex文件,在 OPTION BYTE 区设置好 Option Byte,使用“Program→All tabs”对芯片进行烧录。 |
微信公众号
手机版