Hi There,
I would like to use the UGMZ2AA as a communication interface (receiver/transmitter). On the PCB, I would like to feed data using UART. On the other side (PC, smart device or so) I would like to have a virtual comport.
I played around with the SmartSnippets studio and tried to access the EEPROM using UART mode. Well, under board setup I set everything as in my custom PCB specified. UART uses (P0_0[TX, RX], P0_1), I2C uses P0_6[SCL] and P0_7[SDA]. SPI is not used and set to P2_3, P2_2, P2_1, P2_0.
I am able to program the module using a JTAG programmer from Segger or UART and the module shows up. Until now, I haven't figured out how to access the EEPROM to store the program.
Some questions:
I noticed that the module is only programmable when reset is low, is that correct?
The program is stored only for so long. Once the reset is released, the program is gone.
The module loses its programming as soon as I cut power, right? I would have to put the firmware either in the EEPROM(i2c) or in a FLASH (spi) to keep it permanently?
Does the module check all possible addresses for the EEPROM or do I define that in SmartSnippets once?
I2C options, how do you interpret the device address? 1010 0000 -> 0xA0 or 0x50? I have seen both and I couldn't find any specification in your documentation.
Kind regards
Hi afkiwers,
I is strongly recommended to check paragraph 4.8.2 of the DA14580 datasheet, According to the datasheet, the reset is active high, so if the reset is low you will not be able to download firmware or attach the JTAG interface. After the reset, the chip will execute again the bootrom code. When you cut off the power, if your firmware runs from sysRAm will be lost, so yes you should burn SPI Flash, EEPROM or OTP in order to keep it permanently. Could you please check the DA1458x Booting from serial
Interfaces (AN-B-001) that describes how the DA1458x can boot from external serial devices when the OTP memory is not programmed? The paragraph 6.4, presents the how the chip boot from an I2C slave, so as you are able to see from the boot protocal the master sends a read command and the slave responds with specific data. The boot code initially scans to find an I2C slave device at addresses 0x50 up to 0x57, so you should not define that in SmartSnippets. Regarding the device address, be aware that the LSB is for write/read command so the data is the other 7 bits. So, the 1010 0000 address is right shifted by one, and is interpreted as 0x50.
Thanks, PM_Dialog
Hi There,
Thanks for your advice! I will read through it and come back once I had time to test it.