WINC1500
(UART Firmware Upgrade)
Upgrade Steps summary
- Atmel Studio 7: Generate Upgrade Firmware Files
- Module comms & power
- Execute RESET sequence before flashing
- Run upgrade batch file
Hardware Requirements:
- USB to TTL UART Serial Converter (Eg: CP2102)
- WINC1500 module preferably mounted and connected to host mcu. Must be powered.
NB Notes:
- Atmel Studio is vital in generating the files that are all needed to perform the firmware upgrade
- Atmel Studio Framework has lower versions to upgrade to other relevant firmware versions
- If you considering implementing the WINC1500 in a design, add jumper pins to the UART RX/TX/GND pins to easily facilitate upgrading the WINC1500 modules firmware
- Module upgrading can also be done via the host connected SPI interface and using the Atmel Studio 7 “Serial Bridge” example project as a guide
- The actual firmware programming takes about 30 seconds to complete
- This walkthrough upgraded a version 19.4.4 module to 19.6.1
Atmel Studio 7: Generate Upgrade Firmware Files
Ensure you have Atmel Studio 7 installed with the latest / relevant version of Atmel Studio Framework.
- Select Extensions & updates icon on the toolbar
- Click on “Updates” and then click on “Update” on the Atmel Software Framework to proceed
- Wait for download to complete, install & restart
- Click “New Example Project”
- Select the framework version, enter a project name & location to save to
- In the search box type “WINC1500 Firmware” then select the SAM D21 Xplained Pro option (don’t worry this creates a blank project with all the required firmware, documents & batch files
- Accept the license agreement
- Wait for the project to be created
- Navigate on the PC and COPY the entire folder named “firmware” highlighted below to your “C:\” directory as is
Module comms & power
- The WINC1500 module needs to be connected to the PC via a USB to TTL UART Serial converter (Eg: CP2102)
- USB converter must be set up for 115200, N, 8, 1 on the PC
- May need to remove any other COM devices plugged into PC
- Connect to the PC using three wires (indicated below)
- UART_RXD
- UART TXD
- GND
- The module must be powered correctly with 3.3v to all relevant power & ALL ground pins
- The “WAKE” pin kept high from power up (if controlled by host MCU)
Execute RESET sequence before flashing
- The WINC1500 module must be in the correct state to allow firmware upgrading
- Reportedly some user “just left CHIP_EN high all the time, reset the board, didn’t do the last sequence as it requires an MCU, both the firmware and cert upgrade passed”
- The functional code below indicates the timing of the respective signals
void WINC1500_Reset_Seq(void){ WIFI_ENABLE_Clear(); WIFI_RESET_Clear(); vTaskDelay(1); // 1mSec Delay WIFI_ENABLE_Set(); vTaskDelay(10); // 10mSec Delay WIFI_RESET_Set(); }
Run upgrade batch file
- In Windows open a “Command Prompt” and be sure to run as administrator
- Ensure the steps above were followed correctly and the generated “firmware” was copied to the “c:\”
- Type “c:\firmware>download_all.bat UART SAMD21 3A0 0 0” then press “enter”
Runs autonomously without any user intervention. Below are the logs of a successful upgrade.
c:\firmware>download_all.bat UART SAMD21 3A0 0 0 Defaulting to RSA key cert pair @ and Defaulting to ECDSA certificate @ Mode UART Chip 3A0 Downloading Image... (pod 0) (comport ) image_downloader.exe -no_wait -aardvark 0 -vflash_path ../../../vflash_image_downloader.bin -bf_bin ../../../boot_firmware/release3A0/boot_firmware.bin -pf_bin ../../../programmer_firmware/release3A0/programmer_firmware.bin -df_bin ../../../downloader_firmware/release3A0/downloader_firmware.bin -fw3a0_path ../../../firmware/m2m_aio_3a0.bin ******************************************** * >Programmer for WINC1500 SPI Flash< * * Owner: Atmel Corporation * ******************************************** SVN REV 16761 SVN BR branches/rel_1500_19.6.1 Built at May 23 2018 14:34:49 Virtual Flash Path ../../../vflash_image_downloader.bin Firmware Path (3A0) ../../../firmware/m2m_aio_3a0.bin >>Initialize programmer. Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. Flash ID c21320c2 (APP)(INFO)Flash Size 4 Mb >>Loading this FW: ../../../firmware/m2m_aio_3a0.bin ----- NOW Programming Firmware Image Version ----- Firmware ver : 19.6.1 Svnrev 16761 Min driver ver : 19.3.0 Firmware Build May 23 2018 Time 14:39:16 ----- Previous Firmware Image Version ----- Firmware ver : 19.4.4 Svnrev 0 Min driver ver : 19.3.0 Firmware Build Nov 19 2015 Time 22:36:45 >Start erasing... Done #Erase time = 1.641000 sec >Start programming... Done #Programming time = 20.172000 sec (APP)(INFO)----------- BEGIN EFUSE DUMP ---------------- (APP)(INFO)(Efuse)Ver = 0,bank idx = 0,used = 1,invalid = 0 (APP)(INFO)(Efuse)Valid = 1,MAC = xxxxxxxxxxxxxxxxxx (APP)(INFO)(Efuse)Valid = 0,PATxGainCorr = 00 (APP)(INFO)(Efuse)Valid = 1,FreqOffset = 0000 (APP)(INFO)------------- END EFUSE DUMP ---------------- >>Image downloaded successfully. (APP)(INFO)----------- BEGIN EFUSE DUMP ---------------- (APP)(INFO)(Efuse)Ver = 0,bank idx = 0,used = 1,invalid = 0 (APP)(INFO)(Efuse)Valid = 1,MAC = xxxxxxxxxxxxxxxxxx (APP)(INFO)(Efuse)Valid = 0,PATxGainCorr = 00 (APP)(INFO)(Efuse)Valid = 1,FreqOffset = 0000 (APP)(INFO)------------- END EFUSE DUMP ---------------- No nEfuse correction applied. Saving vflash to ../../../vflash_image_downloader.bin >>This task finished after 22.45 sec 1 file(s) copied. Downloading Gain Values... gain_builder.exe -table 1 ../gain_sheets/atwinc1500_mr210pb_gain_setting.csv -index 1 -aardvark 0 -vflash_path ../../../vflash_gain_builder.bin -bf_bin ../../../boot_firmware/release3A0/boot_firmware.bin -pf_bin ../../../programmer_firmware/release3A0/programmer_firmware.bin -df_bin ../../../downloader_firmware/release3A0/downloader_firmware.bin -no_wait ******************************************** * >TX Gain Builder for WINCxxxx < * * Owner: Atmel Corporation * ******************************************** SVN REV 16761 SVN BR branches/rel_1500_19.6.1 Built at May 23 2018 14:33:35 Virtual Flash Path ../../../vflash_gain_builder.bin >>Init Programmer Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. Flash ID c21320c2 (APP)(INFO)Flash Size 4 Mb Reading vflash from ../../../vflash_gain_builder.bin Active gain table index = 1 Setting file has been opened: "../gain_sheets/atwinc1500_mr210pb_gain_setting.csv" Initializing values .... >Extracting data from file... Done >Building tables... Done ____________________________________________________________________________ | Table - 1 | _____ _________ _________ _________ _________ _________ _________ _________ |CH/REG|00001240 |00001244 |00001248 |0000124C |00001250 |00001254 |00001258 | |______|_________|_________|_________|_________|_________|_________|_________| | 01 |01200143 |00000101 |00000000 |00000000 |11110000 |22221111 |00002222 | | 02 |01C9016B |01430197 |00000000 |00000000 |11110000 |11110211 |00003021 | | 03 |01C9016B |00000197 |00000000 |00000000 |11110000 |11110211 |00000221 | | 04 |01C9016B |00000197 |00000000 |00000000 |11110000 |11110211 |00000211 | | 05 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 06 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 07 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 08 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 09 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 10 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 11 |016B0143 |00000197 |00000000 |00000000 |11110000 |00001211 |00000000 | | 12 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 13 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | | 14 |01C9016B |00000197 |00000000 |00000000 |11110000 |11112211 |00000211 | |______|_________|_________|_________|_________|_________|_________|_________| >Reading data... Done. >Start erasing... Done #Erase time = 0.047000 sec >Start programming... Done #Programming time = 0.218000 sec TX Gain values have been downloaded successfully. Saving vflash to ../../../vflash_gain_builder.bin >>This task finished after 0.72 sec 1 file(s) copied. Downloading TLS Client RSA Certificate Materials... ****************************************** * WINC1500 TLS Certificate Flash Tool * ****************************************** Reading vflash from ../../../vflash_tls_cert_flash_tool.bin Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. TLS Certificate Store Update Success on Flash Saving vflash to ../../../vflash_tls_cert_flash_tool.bin Downloading TLS Client ECDSA Certificate Materials... ****************************************** * WINC1500 TLS Certificate Flash Tool * ****************************************** Reading vflash from ../../../vflash_tls_cert_flash_tool.bin Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. TLS Certificate Store Update Success on Flash Saving vflash to ../../../vflash_tls_cert_flash_tool.bin 1 file(s) copied. Downloading root certificates... root_certificate_downloader.exe -n 12 ..\binary\BaltimoreCyberTrustRoot.cer ..\binary\DigiCert.cer ..\binary\DigiCertSHA2.cer ..\binary\EnTrust.cer ..\binary\GeoTrust.cer ..\binary\GlobalSignRoot.cer ..\binary\GlobalSignRoot2.cer ..\binary\GTSGIAG3.cer ..\binary\NMA_Root.cer ..\binary\PROWL_Root.cer ..\binary\QuoVadis_Root.cer ..\binary\VeriSign.cer -no_wait -aardvark 0 -vflash_path ../../../vflash_root_certificate_downloader.bin -bf_bin ../../../boot_firmware/release3A0/boot_firmware.bin -pf_bin ../../../programmer_firmware/release3A0/programmer_firmware.bin -df_bin ../../../downloader_firmware/release3A0/downloader_firmware.bin -e ************************************************** * > WINC1500 Root Certificate Flash Downloader < * ************************************************* SVN REV 16761 SVN BR branches/rel_1500_19.6.1 Built at May 23 2018 14:35:53 Virtual Flash Path ../../../vflash_root_certificate_downloader.bin Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. Flash ID c21320c2 (APP)(INFO)Flash Size 4 Mb Reading vflash from ../../../vflash_root_certificate_downloader.bin >Start erasing... Done #Erase time = 0.063000 sec >>>Found Certificate: >>> Baltimore CyberTrust Root >Start erasing... Done #Erase time = 0.031000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.218000 sec Done >>>Found Certificate: >>> DigiCert High Assurance EV Root CA >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.219000 sec Done >>>Found Certificate: >>> DigiCert SHA2 High Assurance Server CA >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.234000 sec Done >>>Found Certificate: >>> Entrust Root Certification Authority >Start erasing... Done #Erase time = 0.062000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.234000 sec Done >>>Found Certificate: >>> GeoTrust Global CA >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.234000 sec Done >>>Found Certificate: >>> GlobalSign Root CA >Start erasing... Done #Erase time = 0.063000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.218000 sec Done >>>Found Certificate: >>> GlobalSign >Start erasing... Done #Erase time = 0.062000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.219000 sec Done >>>Found Certificate: >>> Google Internet Authority G3 >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.218000 sec Done >>>Found Certificate: >>> AddTrust External CA Root >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.235000 sec Done >>>Found Certificate: >>> >Start erasing... Done #Erase time = 0.046000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.235000 sec Done >>>Found Certificate: >>> QuoVadis Root CA 2 >Start erasing... Done #Erase time = 0.047000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.250000 sec Done >>>Found Certificate: >>> VeriSign Class 3 Public Primary Certification Authority - G5 >Start erasing... Done #Erase time = 0.063000 sec >Writing the certificate to SPI flash... >Start programming... Done #Programming time = 0.234000 sec Done All certificates have been downloaded Saving vflash to ../../../vflash_root_certificate_downloader.bin >>This task finished after 6.19 sec Readback flash... (pod 0) (comport ) image_cloner.exe -no_wait -span 524288 -aardvark 0 -out_path ../../../readback_flash.bin ******************************************** * >Programmer for WINC1500 SPI Flash< * * Owner: Atmel Corporation * ******************************************** SVN REV 16761 SVN BR branches/rel_1500_19.6.1 Built at May 23 2018 14:35:16 File to save copy of flash path ../../../readback_flash.bin >>Initialize programmer. Detecting ports... (APP)(INFO)Built-in WINC1500 UART Found Avail port COM4 1 of ports found (APP)(INFO)Built-in WINC1500 UART Found Chip id 1503a0 >Waiting for chip permission... OK. Flash ID c21320c2 (APP)(INFO)Flash Size 4 Mb Retrieving flash image... ../../../readback_flash.bin Wrote flash image to ../../../readback_flash.bin Verifing... *************** Flash programming verified OK ***************** *************** Download worked ***************** OK
########################################################################## ##
## ######## ### ###### ###### ##
## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ##
## ######## ## ## ###### ###### ##
## ## ######### ## ## ##
## ## ## ## ## ## ## ## ##
## ## ## ## ###### ###### ##
## ##
#######################################################################
Downloading ends successfully
Press any key to continue . . .
c:\firmware>
Recent Comments