TI中文支持网
TI专业的中文技术问题搜集分享网站

F280049C Flash保存参数

Other Parts Discussed in Thread:C2000WARE

我们做的是电机驱动,所用芯片是F280049C。SDK是C2000Ware_MotorControl_SDK_3_00_01_00。

电机有一些参数是需要识别的,比如各个offset, 比如USER_MOTOR_Rs_Ohm, USER_MOTOR_Ls_d_H,USER_MOTOR_Ls_q_H等等;

而这些识别是需要花费时间的,理想状况是马达驱动只识别一次,保存下来,以后再次启动就不用识别了。

另外应该还会自学习的参数,比如hall顺序,等等。都需要方案能够保存参数。

我在网上搜了flash使用的介绍,几乎都指向c2000ware\driverlib\f28004x\driverlib\flash.c的库和c2000ware\driverlib\f28004x\examples\flash的例程。

但flash api却没有读函数,只有写,擦,验证函数,比如

Fapi_StatusType Fapi_doBlankCheck( uint32 *pu32StartAddress, uint32 u32Length, Fapi_FlashStatusWordType *poFlashStatusWord)

Fapi_StatusType Fapi_doVerify( uint32 *pu32StartAddress, uint32 u32Length, uint32 *pu32CheckValueBuffer, Fapi_FlashStatusWordType *poFlashStatusWord)

Fapi_StatusType Fapi_issueProgrammingCommand( uint32 *pu32StartAddress, uint16 *pu16DataBuffer, uint16 u16DataBufferSizeInWords, uint16 *pu16EccBuffer, uint16 u16EccBufferSizeInBytes, Fapi_FlashProgrammingCommandType oMode)

那么我的问题是,有办法读出来吗?,假设用一段flash保存了用户参数,却无法读出来,就无法给需要的参数做初始化,请问我对flash api的理解有误吗?

我这个用户需求如何实现?

Green Deng:

同样的问题,你可以参考一下这个帖子中Susan工程师的回复:e2echina.ti.com/…/182240

,

jiaren lu:

你好,谢谢你的回复,我也看了F280049C Technical Reference Manual.pdf里面包括3.12.8 Flash Access Interface, 3.12.8.1 Standard Access Mode的说明,当作普通内存访问的方式读,不过没有成功。下面我详细讲一下我的测试情况

flashapi_ex1_program_autoecc.c例程主要有下面步骤

1 初始化

2 Fapi_initializeAPI

3 Fapi_setActiveFlashBank

4 Fapi_issueAsyncCommandWithAddress(erase)

5 Fapi_doBlankCheck

6 Fapi_issueProgrammingCommand

7 Fapi_doVerify

8 Fapi_issueAsyncCommandWithAddress(erase)

9 Fapi_doBlankCheck

例程configuration是CPU1_FLASH [Active],无法配置为RAM。

我在第一次运行此程序时,查看到flash对应位置的内容为全FF,在4~7运行都是成功的,查看flash对应内存也是成功被修改;在例程里我不运行8、9;

第二次运行次程序,看到到flash对应位置内容仍然为全FF,并不是第一轮写进去的1、2、3、…。例程测试的是bank0, sector6;我在bank0,bank1,多个sector上试过,均没有实现写进去被保存的情况。

我不清楚是没有写flash成功还是在某个环节被擦除了。

,

Green Deng:

你可以参考这个文档:www.ti.com/…/spnu628a.pdf
这个文档是专门讲的flash API函数,更有针对性。

赞(0)
未经允许不得转载:TI中文支持网 » F280049C Flash保存参数
分享到: 更多 (0)