Hi! I'm new to programming these devices. I have a module with the DA14580 Attached. It's called the HJ-580LA. I'm trying the get the DSPS working on this device. While I can boot into the DSPS program using the "Booter", I cannot figure out how to make the program stay when disconnected from power/reset. All I am using right now is a simple TTYUSB cable to program using the RX/TX ports. The module I am using has the following pins available:
- EX-ANT
- VPP
- P05
- P04
- SWD/P15
- P03
- P(zero)_(zero)
- SCK/P14
- P11
除了外部eepm和其他额外的混合涂料nents what can be done? How would I go about making the program permanent. Could I flash it to internal EEPROM? Do I need special hardware to flash the program correctly? I'm looking into getting a J-Link but I don't know how I'd go about hooking that up with the pins I have available. Would getting a J-Link be heading in the right direction?
Any help would be amazing as to what direction I should take. Thanks!
Hi powerpoint45,
The 580 doesn't have any embedded non-volatile memory except from the OTP in which you can only burn your fw once. Other than that you will have to attach either an external SPI or I2C memory in order for the primary bootloader. The Smart Snippets tool has additional tools for burning your code into the external spi flash or the I2C EEPROM via UART interface or via JTAG you can find info about the devices supported in the AN-B-023:Interfacing DA14580 with External Memory. I dont quite get the second question regarding the JLink, the 580 support SWD interface, so what you need is the Jlink Lite ARM and connect the SWDIO and SWCLK pins in order to download code into the Sysram, our dev kits have the Jlink debugger onboard.
Thanks MT_dialog
I appreciate your response! The module I bought came with no code so I'd assume the internal OTP has not been written yet. When I read in the OTP using SmartSnippets Toolbox, everything is blank until I get down to 0x47F08 so I'm not exactly sure. Any time I try to write to the OTP, I get "Received error message while checking whether burning was successful: FFFFFFFE". I looked around for that error message but could not find any solutions. I'm using SmartSnippets Toolbox v4.6.3.1570.
As for my question about the J-link. Is it required to use a J-link device to write to the internal OTP or should the way I'm trying (with only using RX and TX) also work?
Hi powerpoint45,
If you find the answer helpfull, please mark it as accepted.
I suppose that you are looking at the OTP header (a seperate part of the OTP that constant values are stored, trimming values, bd addresses, etc are stored). The address 0x47F08 is the RF trimming value that is burned from the factory. The place that your image should be stored is the tab that indicates OTP Image. Regarding the burning procedure, you will have to apply VPP voltage in order for the OTP to be burned, please check the AN-B-020:End product testing and programming guidelines.pdf.
Regarding the Jlink and burning the OTP, the Smart Snippets offers two interfaces for accessing the 58x family (when opening the tool you are given the option to choose either JTAG or OTP), either the JTAG or the UART, so you are able to burn the OTP via UART.
Thanks MT_dialog
Thank you so much for your help, you have cleared up my main questions. I hate to bother you again, but after I burned the sps_device_580.hex file to the OTP, it does not run that program on boot-up. I can use the "booter" and run the program but it is not running the program on OTP at bootup. Do you have any idea why this would be? I have read in the OTP image and it looks like the program is identical to the hex file. Is there some sort of boot flag that needs to be set? Do I need to set "Application Flag 1" and "Application Flag 2" to "yes". Anytime I change the header and press burn I get a popup that says "DMA length (0 words) should be no smaller than the image file code length (4740 words). Do you want to continue" so I think I'm doing something wrong. I never pressed continue because I don't know what that message is about.
EDIT: OK so it looks like I got it working. I restarted the program and was able to burn the header with "Application Flag" 1 and 2 to "yes". Thank you so much for all your help.
PS: I'm extremely impressed by the customer support here.
Hi powerpoint45,
为了验证,是的你要烧达成ication flags in order to the bootrom code to know that you would like to boot from OTP and not by executing the interface scanning code (scan SPI, UART, I2C for external devices in order to boot from there). Regarding the DMA length, if you are operating in extended sleep (which the DSPS is operating) you can leave the DMA length to zero (it will copy all memory contents into the sysram).
Thanks MT_dialog
Hello powerpoint45,
Can you share with me the setup or steps to load the boot in the chip?
Regards.
Hi! I have created a video showing how I set it up:
YouTube link