你好,
我们正在考虑BLE申请DA14680,然而,我们希望采取一些时间敏感的行动。关于flash管理的一些澄清将非常感激。
1)如果flash被擦除,我们还能执行蓝牙操作吗?数据表说明,当闪存正在擦除,芯片必须从RAM或缓存运行,但我理解蓝牙读取ROM,中断应该禁用时,闪存正在擦除。有办法绕过这些限制吗?
2) flash写/擦除时间和功耗的统计是什么?我在资料表中找不到它们。
3)如果一个进程试图访问flash,而它正在被擦除?
4)数据表表明,控制QSPI与flash通信的FSM需要在上电时进行初始化。它也必须在睡眠后初始化吗?初始化需要多长时间?
谢谢
关键词:
设备:
嗨MThib,
如果闪光被擦除是什么意思?68x可以运行在闪存或镜像模式(直接从sysram),当然,当设备运行在镜像模式的内存数量是相当有限的,这就是为什么缓存模式是首选。正如你能理解的,如果flash被擦除,没有应用程序代码,ROM代码实现堆栈不能自己运行,所以你必须有一个应用程序在flash中,以便BLE操作。现在,如果你想知道,如果你能擦掉一部分flash和还有祝福操作然后NVMS适配器会照顾,还有选择的SDK时flash操作执行装置没有未决任务和闲置,所以在进入睡眠之前,flash操作将被执行(这将确保在很大程度上你不会在flash操作时丢失BLE事件)。
2)对于680上的flash,所使用的部件在功能上和电上都相当于W25Q80EW,所以你可以查看该flash数据表的信息。
3)如上所述,SDK提供了适配器来访问flash,所以如果一个任务擦除flash,这个源被保护,没有其他任务可以访问flash,而另一个进程正在使用该资源。
4)是的,这是在每次唤醒后执行的,但需要的时间是几个周期的16MHz时钟,而且你也不必担心,因为SDK会照顾所有上述操作。
以上所有关于flash的问题都要知道,这些类型的操作对用户是透明的,因为SDK和免费的RTOS OS提供了适当的结构和功能,以处理flash操作。您可以查看UM-B-044-DA1468x软件平台参考。pdf,以了解SDK如何在68x SoC上运行。
由于MT_dialog
1)我正在谈论如何当闪存被擦除发送一个擦除命令,如擦除一个4kb的扇区,整个闪存将是不可访问的,直到擦除完成。这通常会构成45毫秒到最大400毫秒的时间,在这段时间中,我们必须要么暂停,要么依赖于从RAM操作。有些芯片的内存控制器只能在擦除过程中阻止对特定闪存块的访问,但我想验证我们唯一的选择是在擦除过程中缓冲数据并从RAM中运行。我知道SDK可以减少在擦除过程中导致flash发生的操作的可能性,但我们需要100%的保证它不会发生。
2-5)谢谢你的帮助,这些都充分回答了我的问题。非常感谢您的快速回复!
嗨MThib,
这是正确的,事实上你是擦除的flash将flash inaccesible 68 x,但由于flash操作在自动模式,在消除的情况下,如果你想从flash(获取代码或数据)读取设备将暂停擦除操作和执行读取、然后设备将继续删除操作(这个开关会自动完成在这两种情况下当flash操作下手动或自动模式,但在第二种情况下这样做是通过qspi控制器和从SDK)在第一种情况下,在任何情况下这是对最终用户透明。此外,正如上面提到的SDK是配备了一个机制,将执行所有的操作flash设备一直闲置,这是必须的,因为你想成为100%安全,flash操作不会影响和造成任何延迟设备的functionallity。
由于MT_dialog
挂起擦除来读取数据的限制是什么?例如,设备是否可以挂起页擦除来读取数据,或者它必须等待页擦除完成后才能读取数据?在擦除页的中间挂起来对flash来说是相当令人印象深刻的。如果要擦除超过一个页面,我会怀疑它可以在擦除页面之间挂起,否则必须等待。如果情况不是这样,我很想知道。
再次感谢,
MThib
嗨MThib,
是的,如上所述,在擦除的情况下,设备会暂停擦除以便从闪存读取数据,读取完成后,它将继续擦除闪存,现在,如果在擦除过程中发生读操作,设备将发送挂起命令,擦除将被挂起(flash挂起和恢复擦除的时间在每个flash设备之间是不同的),一旦擦除被挂起,设备将开始执行读命令,一旦读命令结束,它将恢复擦除命令。这个特性也是flash应该支持的。数据表12.1.6 Erase Suspend/Resume解释了整个功能
由于MT_dialog