10 posts / 0 new
Last post
liufeng-blue
Offline
Last seen:6 months 2 weeks ago
Joined:2018-07-02 06:44
操作完flash后,开发板无法与smartsnippets连接

[INFO SPI Flash @20-03-27 10:38:32] Firmware File C:\software\SmartSnippetsStdio\SmartSnippetsStudio\Toolbox\common_resources\flash_programmer.bin has been selected for downloading.
[INFO SPI Flash @20-03-27 10:38:32] Connection to COM20 port has successfully opened.
[INFO SPI Flash @20-03-27 10:38:32] Started download procedure...
[ACTION SPI Flash @20-03-27 10:38:33] Please press the hardware reset button on the board to start the download process.
[INFO SPI Flash @20-03-27 10:38:39] Reset detected

这是smartsnippets的log,就卡在reset detected,是我对flash误操作了,以下是我的flash操作代码,我按照SDK做的修改,代码中先执行user_read_data_from_flash读地址,再进行user_save_data_to_flash写

void user_read_data_from_flash(uint8_t* ptr, uint8_t size)
{
int8_t dev_id;

dev_id = spi_flash_enable (SPI_EN_GPIO_PORT SPI_EN_GPIO_PIN);
if (dev_id == SPI_FLASH_AUTO_DETECT_NOT_DETECTED)
{
// The device was not identified. The default parameters are used.
// Alternatively, an error can be asserted here.
spi_flash_init(SPI_FLASH_DEFAULT_SIZE, SPI_FLASH_DEFAULT_PAGE);
}

spi_cs_low();

spi_cs_high();

//save data
spi_flash_read_data(ptr,SPI_SAVE_BLOCK,size);


// Power down SPI Flash
spi_flash_power_down();

}

void user_save_data_to_flash(uint8_t* ptr, uint8_t size)
{
int8_t dev_id;

dev_id = spi_flash_enable (SPI_EN_GPIO_PORT SPI_EN_GPIO_PIN);
if (dev_id == SPI_FLASH_AUTO_DETECT_NOT_DETECTED)
{
// The device was not identified. The default parameters are used.
// Alternatively, an error can be asserted here.
spi_flash_init(SPI_FLASH_DEFAULT_SIZE, SPI_FLASH_DEFAULT_PAGE);
}

spi_cs_low();

spi_cs_high();


//save data
spi_flash_block_erase(SPI_SAVE_BLOCK, SECTOR_ERASE);
spi_flash_write_data(ptr, SPI_SAVE_BLOCK, size);

// Power down SPI Flash
spi_flash_power_down();

}

Device:
CYibin
Offline
Last seen:3 months 3 weeks ago
Staff
Joined:2017-12-14 02:48
你好,

你好,

从 log 来看,ss toolbox 检测到 reset,准备通过串口,给 580 加载一个 flash_programmer.bin,然后进行 FLASH 操作。

以上为你点击了 connect 按钮之后的准备动作。

到这一步为止,是 580 的 boot 流程相关的,和用户固件无关。

请重新拔插开发板的 USB 线尝试。

liufeng-blue
Offline
Last seen:6 months 2 weeks ago
Joined:2018-07-02 06:44
你好

你好

我这边尝试了更换USB口,还是出现一样的情况,卡在了reset detected中,这个问题的确是我在程序当中操作了FLASH之后出现的情况,我的ss toolbox版本为4.8.3,不知道和这个有没有关系呢

CYibin
Offline
Last seen:3 months 3 weeks ago
Staff
Joined:2017-12-14 02:48
你好,

你好,

可以确定到了你 log 里的 reset 这一步,还不会涉及到对 FLASH 硬件的操作。

要到了 flash_programming.bin 烧录成功后,才会进行通讯而操作 FLASH。

JTAG 接口是否可以使用?

toolbox 里的 booter 工具是否可以使用?

580 是否烧录了 OTP ?

liufeng-blue
Offline
Last seen:6 months 2 weeks ago
Joined:2018-07-02 06:44
JTAG可以使用,BOOTER工具无法使用,和SPI

JTAG可以使用,BOOTER工具无法使用,和SPI_FLASH出现一样的情况,卡在RESET DETECTED后,过一会就主动disconneted form port,580没有烧入OTP

CYibin
Offline
Last seen:3 months 3 weeks ago
Staff
Joined:2017-12-14 02:48
你好,

你好,

不好意思,我没问详细,

我说的 jtag 可以使用,是指,能通过 jtag 接口使用 booter 工具,能烧录 flash,能用 keil 调试,等。你指的是这样吗?

如果是,请将板上的 flash 拆除,然后再用 uart (P04 P05) 尝试。

以上测试,基于怀疑点:

因为 flash 的引脚 P05 和 uart 口的 P05 复用,怀疑 flash 的问题(P05 引脚异常)导致 uart 使用异常

liufeng-blue
Offline
Last seen:6 months 2 weeks ago
Joined:2018-07-02 06:44
JTAG能连接SS TOOLBOX,能用keil调试

JTAG能连接SS TOOLBOX,能用keil调试,无法利用JTAG进行booter工具烧写,和flash烧写,我是否需要将板子上的flash拆除利用uart尝试,另外,我有个自己的板子,是利用uart烧写的,跟开发板同样的情况,也是烧写了操作flash的代码后就不能连接SS了

CYibin
Offline
Last seen:3 months 3 weeks ago
Staff
Joined:2017-12-14 02:48
你好,

你好,

基于你说的情况:

1. 可以使用 JTAG 进行 Keil 调试:排除芯片顺坏,焊接问题

2. ss toolbox 可以使用 JTAG 连接:排除 ss toolbox 使用 jtag 驱动的问题

3. ss toolbox 工具无法使用 booter,flashprogrammer 等工具:本质上,是无法给 580 boot 固件

我目前能想到的可能的情况是:你在选择芯片的时候可能选错了,580选择成了585。

若不是这个原因,请更换 toolbox 工具尝试,最新版本链接如下:

http://lpccs-docs.dialog-semiconductor.com/smartSnippets_studio/SmartSni...

liufeng-blue
Offline
Last seen:6 months 2 weeks ago
Joined:2018-07-02 06:44
非常感谢您的回复

非常感谢您的回复

我自己经过尝试已经解决了开发板不能下载的问题,先在KEIL下操作FLASH的代码屏蔽后,利用jtag口将代码debug进ram里,再打开SS进行烧入即可,FLASH操作失败的原因是我在初始化flash口的时候没有将TX RX的口进行屏蔽,从而造成了FLASH初始化失败。至于为什么对flash操作失败后不能下载这个问题,还是很奇怪哈

CYibin
Offline
Last seen:3 months 3 weeks ago
Staff
Joined:2017-12-14 02:48
感谢分享调试结果。

感谢分享调试结果。