SNIU028D February 2016 – September 2020 UCD3138 , UCD3138064 , UCD3138064A , UCD3138128 , UCD3138A , UCD3138A64
The Boot ROM supports a function to exit the ROM code and start execution of code from the Program Flash through a PMBus message. The PMBus Master initiates a PMBus Send Byte message to the PMBus slave on the UCD3138. The master starts the message by sending the device address of 0xB, a command byte of 0xF0 and a PEC byte. Upon receipt of the user-defined command byte of 0xF0, the Boot ROM configures the memory selects for program flash operation and resets the program counter to 0. Following reconfiguration of the memory selects, the Program Flash now resides at address location 0 and code is now read from the flash instead of Boot ROM code.
Start | Device Address & R/W (0x16) | Command Byte (0xF0) | PEC | Stop |
The Execute Flash command starts execution from Program Flash regardless of the state of the checksums. When the processor starts executing from flash it is in supervisor mode and in ARM mode. Normally the flash program will configure stack pointers and any processor registers in these modes and then switch to Thumb mode and to User mode for efficiency and safety while executing the customer program. See Section 14.2 for more information on processor modes.
For the other members of the UCD3138 family which have more than one block of program flash, there is sometimes a second option to control which program flash block should be mapped to address 0. For this second option, the command byte should be set to 0xF7. See Table 13-3 for more details.
Command Byte = 0xF0 | Command Byte = 0xF7 | |
---|---|---|
UCD3138, UCD3138A | pflash: 0x0000 to 0x7FFF | not valid |
UCD3130A64, UCD3138064A | pflash block 1: 0x0000 to 0x7FFF | pflash block 1: 0x8000 to 0xFFFF |
pflash block 2: 0x8000 to 0xFFFF | pflash block 2: 0x0000 to 0x7FFF | |
UCD3138A64, UCD3138A64A | pflash block 0: 0x0000 to 0x7FFF | not valid |
pflash block 1: 0x8000 to 0xFFFF | ||
UCD3138128, UCD3138128A | pflash block 0: 0x00000 to 0x07FFF | pflash block 0: 0x10000 to 0x17FFF |
pflash block 1: 0x08000 to 0x0FFFF | pflash block 1: 0x18000 to 0x17FFF | |
pflash block 2: 0x10000 to 0x17FFF | pflash block 2: 0x00000 to 0x07FFF | |
pflash block 3: 0x18000 to 0x17FFF | pflash block 3: 0x08000 to 0x0FFFF |