The MAX98090EVKIT software includes a firmware update utility. I had some trouble using the board, and I thought the firmware update might help. The utility successfully erases the onboard MAXQ2000 processor, then fails to upload the new firmware, effectively rendering the board useless. Is there a trick to using the utility so I can get this board working again? The full console dump is below.
Plug USB cable in to begin firmware update...
C:\Program Files (x86)\Maxim Integrated\MAX98090\Evaluation Software\Firmware\MAXQ2000>pause 1>nul | set /p=Press any key to continue.... & echo(
Press any key to continue....
C:\Program Files (x86)\Maxim Integrated\MAX98090\Evaluation Software\Firmware\MAXQ2000>".\CmodJTAG.exe" -WMINIQUSB_b010549.hex -UV0x0403 -UP0x6001 -UD"Maxim MINIQUSB Command Module" -UI100 -US-
CmodJTAG standalone programmer Feb 10 2012 19:25:04
__BORLANDC__=0x0530 __BCPLUSPLUS__=0x0530
compiled with Borland C++ Builder 3.0
[CMODJTAG_REVISION=00.01.20]
[CMODCOMM_REVISION=01.01.81]
[JTAG_DEBUG_TRACE=0]
[JTAG_SUPPORT_MAXQ2000=1]
[JTAG_SUPPORT_MAXQ20=1]
[JTAG_SUPPORT_USB_MINIQUSB=1]
[READ_ALL_AFTER_PROGRAMMING=0]
[VERIFY_READBACK=0]
[VERIFY_PROGRESSIVE_CRC_DURING_WRITE=1]
codebuf->Fill_Byte(0xFF);
databuf->Fill_Byte(0xFF);
command-line options (-? for help):
opt_CmodComm_LogConsole = 0 opt_CmodComm_Log = 0 opt_CmodComm_Log_szFilename = debug.txt
opt_interactive = 0 opt_auto_connect = 1
opt_auto_reset_jtag = 1
opt_load = 1
opt_crc = 0 expected_crc16 = 0x0000
opt_diagnostic_progressive_crc = 0 opt_TCK_Rate_Hz = 1e+07
opt_filename = "MINIQUSB_b010549.hex"
opt_addr = 0 = 0x0000
opt_length = 65536 = 0x10000
opt_interactive = 0
opt_auto_connect = 1
opt_auto_reset_jtag = 1
opt_TCK_Rate_Hz = 1e+07 = 10 MHz
opt_Load_And_Verify = 1
Verify_Bootloader_Prompt success; 1 retries
JTAG_TAP_USB_MINIQUSB::Connect_MAXQ_Bootloader_Any_USB: FT232B on USB:0
Bootloader_Banner = "MAXQ2000 Loader 1.02 05-24-2005 "
Only one MAXQ bootloader found, FT232B on USB:0
Resetting target system...
Bootloader_Get_Status()...
Verify_Bootloader_Prompt success; 1 retries
Bootloader_Status_Flags = 0x01
EEPROM-busy=0 CodeLock=0 WordModeSupported=0 WordMode=0 PasswordLock=1
Bootloader_Status_Error = 0x00 Bootloader_ERROR_NONE
Bootloader_Get_Supported_Commands()...
Bootloader_Supports_Command_76543210 = 0x7f
Bootloader_Supports_Command_FEDCBA98 = 0x40
Bootloader_Fixed_Code_Length = 0x00 (unknown)
Bootloader_Fixed_Data_Length = 0x01 bytes
Bootloader supports command families 0 1 2 3 4 5 6 E
0 Information
1 Variable Length Load
2 Variable Length Dump
3 Variable Length CRC
4 Variable Length Verify
5 Variable Length Load & Verify
6 Variable Length Erase
E Fixed Length Erase
These are the expected values for MAXQ2000
Bootloader_Get_Banner()...
Bootloader_Banner = "MAXQ2000 Loader 1.02 05-24-2005 "
Bootloader_Get_Status()...
Bootloader_Status_Flags = 0x01
EEPROM-busy=0 CodeLock=0 WordModeSupported=0 WordMode=0 PasswordLock=1
Bootloader_Status_Error = 0x00 Bootloader_ERROR_NONE
Bootloader_Get_Status()...
Bootloader_Status_Flags = 0x01
EEPROM-busy=0 CodeLock=0 WordModeSupported=0 WordMode=0 PasswordLock=1
Bootloader_Status_Error = 0x00 Bootloader_ERROR_NONE
Bootloader_Get_Code_Size()...
Bootloader_Code_Size = 0x0000 (unknown amount of memory)
Bootloader_Get_Data_Size()...
Bootloader_Data_Size = 0x0000 (unknown amount of memory)
Intel_Hex_File_Buffer::Read_Intel_Hex_File performing _wstat(MINIQUSB_b010549.hex):
MINIQUSB_b010549.hex is an ordinary file.
MINIQUSB_b010549.hex is readable.
MINIQUSB_b010549.hex is writeable.
MINIQUSB_b010549.hex Size of file in bytes: 62306
MINIQUSB_b010549.hex Time file last opened: Mon Apr 04 15:40:46 2016
JTAG_Hardware* The_JTAG_Hardware:
IR = 0x2 IR_INST_ICDEBUG
DR_SPE = 0x001 SYSPROG_SRC_JTAG
DR_BUG = 0x000 SYSPROG_NOP
Mode_Is_Bootloader() == true
Bootloader_Status_Flags = 0x01
EEPROM-busy=0 CodeLock=0 WordModeSupported=0 WordMode=0 PasswordLock=1
Bootloader_Status_Error = 0x00 Bootloader_ERROR_NONE
Intel_Hex_File_Buffer* codebuf:
allocated_size = Length() = 0x10000
loaded_addr_min = 0x0000
loaded_addr_max = 0x9fbf
buffer password area 0x0020-0x003F:
0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Erasing target device...
master erase time: 1.266 sec Elapsed time since start: 2.907 seconds (00:02)
Load And Verify Code: addr=0x0000 count=128 remaining_count=0x9fc0
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
(!)Bootloader_Get_Status() result[0] not 0x3E(!)
(!)result[0] = 0x04(!)
(!)result[1] = 0x00(!)
(!)result[2] = 0x00(!)
(!)result[3] = 0x00(!)
(!)Bootloader_Get_Status() returning kDcError - result[0] not 0x3E(!)
(!)Bootloader_Get_Status() returned kDcFatalError(!) -- retrying...
calling Device_CRC_Code(bootloader_addr=0x0000, bootloader_count=128)
addr=0x0000 count=128 remaining_count=128...
CRC (device) = 0xb2c8
CRC (buffer) = 0x312a
*** Failed *** Device_CRC_Code(bootloader_addr=0x0000, bootloader_count=128)
~!~ retry ~!~
too many retries.
*** Fatal Error: Unable to write target code
Run time: 5.828 seconds (00:05)
Exit code = 40 EXIT_CODE_WRITE_FAILED
C:\Program Files (x86)\Maxim Integrated\MAX98090\Evaluation Software\Firmware\MAXQ2000>REM ~ if errorlevel 1 pause
Unplug USB cable to complete firmware update...
C:\Program Files (x86)\Maxim Integrated\MAX98090\Evaluation Software\Firmware\MAXQ2000>pause
Press any key to continue . . .