1.“SmartSnippets->SPI Flash Programmer工具->连接、擦除、烧写” 请问正常流程是这样烧写的吗? 这样操作为什么我只能操作前32KB的内容?
2.通过上述方式烧写之后,运行不正常;但是通过Keil直接debug调试代码是全功能正常运行的。(三块DA14583,只有一块烧录后正常,两块均运行一会死掉了)
请问是哪里出问题了吗?烧写方式不对?最小系统问题?MCU芯片问题?
你好,
如果3块板子运行的代码一样,而只有一个块能正常运行的话,请检查下硬件板有什么异常。可检查以下几个因素,焊接,供电稳定性,16M晶振频偏等
您好,硬件上都一样的,检测过供电、晶振等波形都是正常的。您能否指导一下DA14583内部FLASH是如何烧写的,对应指导文件能否提供
你可以把 583 当成是 580 + spi flash;操作方式和 580 + spi flash 的操作方式是一样的。
需要注意的一点是,583 内部的 flash 不是挂在系统的总线上,而是通过 spi 口,在内部直接接在了 IO 口上(这些接 flash 的 IO 口仍然可以当成正常 IO 口使用)。所以,需要注意你硬件上有没有用到这些口(P20 23 24 29)
附上 583 datasheet:https://support.dialog-semiconductor.com/system/files/resources/DA14583_...
请问 问题解决了吗?我也遇到了烧写不成功问题,引脚也改成了583的还是不行,请指教一下
请问你的具体是什么情况?
我想烧写583 OTA的bin文件到内部FLASH,我更新了 C:\Users\xx\SmartSnippets\resources\jtag_programmer.bin 文件里spi引脚后,SmartSnippets SPI FLASH无法正常读取烧写和擦除。spi 引脚定义如下,是还需要更改其他读写函数吗?
#define SPI_CS_PORT GPIO_PORT_2#define SPI_CS_PIN GPIO_PIN_3#define SPI_CLK_PORT GPIO_PORT_2#define SPI_CLK_PIN GPIO_PIN_0#define SPI_DO_PORT GPIO_PORT_2#define SPI_DO_PIN GPIO_PIN_9#define SPI_DI_PORT GPIO_PORT_2#define SPI_DI_PIN GPIO_PIN_4
void set_pad_spi(void){GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_cs_port, (GPIO_PIN) spi_sel_pins.spi_cs_pin, OUTPUT, PID_SPI_EN, true );GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_clk_port, (GPIO_PIN) spi_sel_pins.spi_clk_pin, OUTPUT, PID_SPI_CLK, false );GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_do_port, (GPIO_PIN) spi_sel_pins.spi_do_pin, OUTPUT, PID_SPI_DO, false );GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_di_port, (GPIO_PIN) spi_sel_pins.spi_di_pin, INPUT, PID_SPI_DI, false );}
还有,每当583上电后蜂鸣器就一直响,我把spi片选拉低后还是会有很小的声音,请问这个是怎么解决?
谢谢!
你好 CYibin,
我对上一个贴做一个补充,现在我测试583用外部flash来存放OTAfile 把二次引导文件和工程文件以及resources\jtag_programmer.bin文件中的引脚改回580的引脚,当烧写完成硬件复位后蜂鸣器响而且没有正常广播。
当我debug再次下载二次引导文件到模块时,模块运行了烧写的程序,模块进行广播,请问这是为什么?一旦硬件复位就蜂鸣器响也没有运行到二次引导文件?
请问你修改 jtag_progrmamer 的目的是什么?如果只是改引脚,则使用 toolbox 的 board setup 工具即可修改
你好,
如果3块板子运行的代码一样,而只有一个块能正常运行的话,请检查下硬件板有什么异常。可检查以下几个因素,焊接,供电稳定性,16M晶振频偏等
您好,硬件上都一样的,检测过供电、晶振等波形都是正常的。
您能否指导一下DA14583内部FLASH是如何烧写的,对应指导文件能否提供
你好,
你可以把 583 当成是 580 + spi flash;操作方式和 580 + spi flash 的操作方式是一样的。
需要注意的一点是,583 内部的 flash 不是挂在系统的总线上,而是通过 spi 口,在内部直接接在了 IO 口上(这些接 flash 的 IO 口仍然可以当成正常 IO 口使用)。所以,需要注意你硬件上有没有用到这些口(P20 23 24 29)
附上 583 datasheet:https://support.dialog-semiconductor.com/system/files/resources/DA14583_...
你好,
请问 问题解决了吗?我也遇到了烧写不成功问题,引脚也改成了583的还是不行,请指教一下
请问你的具体是什么情况?
你好,
我想烧写583 OTA的bin文件到内部FLASH,我更新了 C:\Users\xx\SmartSnippets\resources\jtag_programmer.bin 文件里spi引脚后,SmartSnippets SPI FLASH无法正常读取烧写和擦除。spi 引脚定义如下,是还需要更改其他读写函数吗?
#define SPI_CS_PORT GPIO_PORT_2
#define SPI_CS_PIN GPIO_PIN_3
#define SPI_CLK_PORT GPIO_PORT_2
#define SPI_CLK_PIN GPIO_PIN_0
#define SPI_DO_PORT GPIO_PORT_2
#define SPI_DO_PIN GPIO_PIN_9
#define SPI_DI_PORT GPIO_PORT_2
#define SPI_DI_PIN GPIO_PIN_4
void set_pad_spi(void)
{
GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_cs_port, (GPIO_PIN) spi_sel_pins.spi_cs_pin, OUTPUT, PID_SPI_EN, true );
GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_clk_port, (GPIO_PIN) spi_sel_pins.spi_clk_pin, OUTPUT, PID_SPI_CLK, false );
GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_do_port, (GPIO_PIN) spi_sel_pins.spi_do_pin, OUTPUT, PID_SPI_DO, false );
GPIO_ConfigurePin( (GPIO_PORT) spi_sel_pins.spi_di_port, (GPIO_PIN) spi_sel_pins.spi_di_pin, INPUT, PID_SPI_DI, false );
}
还有,每当583上电后蜂鸣器就一直响,我把spi片选拉低后还是会有很小的声音,请问这个是怎么解决?
谢谢!
你好 CYibin,
我对上一个贴做一个补充,现在我测试583用外部flash来存放OTAfile 把二次引导文件和工程文件以及resources\jtag_programmer.bin文件中的引脚改回580的引脚,当烧写完成硬件复位后蜂鸣器响而且没有正常广播。
当我debug再次下载二次引导文件到模块时,模块运行了烧写的程序,模块进行广播,请问这是为什么?一旦硬件复位就蜂鸣器响也没有运行到二次引导文件?
谢谢!
你好,
请问你修改 jtag_progrmamer 的目的是什么?如果只是改引脚,则使用 toolbox 的 board setup 工具即可修改