momojiang 发表于 2020-11-18 14:07:51

求助:有没有大神做过富士通MB9BF1系列的SWD烧录

最近要做关于富士通MB9BF1的SWD烧录,发现芯片有这个接口,但是一直没找到相关资料,不确定该怎么做
思路:通过看datasheet,MCU可以通过AHB总线访问flash_i/f(闪存接口寄存器),控制flash
目前进度:1.通过SWD接口能够读到DP和AP寄存器的ID。
                2.直接访问flash_i/f寄存器,发现FLASH_FASZR寄存器的值不对,也不能直接改,其他寄存器没错。
目前猜测:在访问flash接口寄存器之前,需要先进入debug模式,根据datasheet,芯片有User mode和Serial writer mode(由引脚MD控制),内部CPU有CPU ROM Mode和CPU Programming Mode(由寄存器FLASH_FASZR控制)。

有没有大神做个富士通类似的项目,希望哪位高手能够帮忙指点指点。。。万分感谢

三世执戟 发表于 2020-11-18 14:12:10

swd是通用接口,协议去arm网站找,实现你可以参考下dap。

swd本身通了以后,就看去MCU的FLASH擦写操作。

momojiang 发表于 2020-11-18 14:47:12

三世执戟 发表于 2020-11-18 14:12
swd是通用接口,协议去arm网站找,实现你可以参考下dap。

swd本身通了以后,就看去MCU的FLASH擦写操作。 ...

SWD已经接通了,chip erase第一步是改变FASZR寄存器的值,但是我试了,这个寄存器读出来是00(是不被允许的情况),并且数值还不能更改,所以我怀疑我前面是不是少步骤,现在在看是不是擦除之前需要进入test模式

三世执戟 发表于 2020-11-18 14:49:11

momojiang 发表于 2020-11-18 14:47
SWD已经接通了,chip erase第一步是改变FASZR寄存器的值,但是我试了,这个寄存器读出来是00(是不被允许 ...

可以换个思路。

下个RAM code进去,再把数据下到RAM中。
然后由这个code去IAP。

JLINK烧录快就是这样做的,数据做了压缩,传输快。
另外校准直接由这个code算出crc就行了,不用读回来校验。

momojiang 发表于 2020-11-18 15:08:22

三世执戟 发表于 2020-11-18 14:49
可以换个思路。

下个RAM code进去,再把数据下到RAM中。


要怎么把代码下载到RAM,需要借助第三方烧录器吗?还是自己写代码。我身边的第三方烧录器目前都不支持这款芯片。
我前一段时间完成了stm32f4系列的swd烧录,是直接通过flash接口访问的flash,不是很了解要怎么先写入ram,在下载到flash

三世执戟 发表于 2020-11-18 16:18:52

SWD/JTAG不是可以读写任意地址么? 直接把 data/code 写进去就行了。

罗小蘑菇 发表于 2020-11-23 20:22:45

富士通的mcu还能买到啊?都被转好几手了,芯片设计的挺好的

momojiang 发表于 2021-1-29 14:18:08

问题已解决,根据网上的编程资料以及参考代码,发送擦除/编程命令所需的地址分两种,type_1: FlashSeqAddress1 = 0x00001550; FlashSeqAddress2 = 0x00000AA8; type_2: FlashSeqAddress1 = 0x00000AA8; FlashSeqAddress2 = 0x00000554。但是这一款MB9BF121J芯片的命令地址是FlashSeqAddress1 = 0x00000554; FlashSeqAddress2 = 0x00000AA8; 除此之外,这款芯片并没有需要设置进入编程模式的步骤,其他操作和资料上的大同小异。
页: [1]
查看完整版本: 求助:有没有大神做过富士通MB9BF1系列的SWD烧录