DLPU082C August   2021  – March 2024 DLPC7540

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. Scope
  5. References
  6. Acronyms
  7. System Boot
    1. 4.1 Data In flash
    2. 4.2 Bootloader Application
    3. 4.3 Main Application
    4. 4.4 Commands Supported by Bootloader and Main Applications
    5. 4.5 Debug Terminal
    6. 4.6 HOST_IRQ/SYSTEM_BUSY
    7. 4.7 Heartbeat
    8. 4.8 Low-Level Fault
  8. System Status
  9. Version
  10. Power Modes
  11. Display Modes
  12. Source Detection and Configuration
  13. 10Internal Sources
    1. 10.1 Test Patterns (TPG)
    2. 10.2 Solid Field (SFG) Color
    3. 10.3 Curtain
  14. 11Display Formatting
  15. 12Image Processing
  16. 13Warping
    1. 13.1 Control Point Table
    2. 13.2 Manual Warp Table
    3. 13.3 Table Constraints
    4. 13.4 Example Warp Table
    5. 13.5 Manual Warping Commands
      1. 13.5.1 CMD_SetManualWarpControlPoints [Command ID: 0x35, Destination: 4]
      2. 13.5.2 CMD_GetManualWarpControlPoints [Command ID: 0x35, Destination: 4]
      3. 13.5.3 CMD_WriteManualWarpTable [Opcode: 0x34, Destination: 4]
      4. 13.5.4 CMD_ReadManualWarpTable [Opcode: 0x34, Destination: 4]
      5. 13.5.5 CMD_ConfigureSmoothWarp [Command ID: 0x38, Destination: 4]
      6. 13.5.6 CMD_ApplyManualWarping [Command ID: 0x36, Destination: 4]
    6. 13.6 Optical (Lens) Distortion Correction
  17. 14Introduction to Blending
    1. 14.1  Blend Map Control Points
    2. 14.2  Blend Map Gain Values
    3. 14.3  Blend Map Offset Value
    4. 14.4  Constraints
    5. 14.5  Manual Blending Commands
      1. 14.5.1 CMD_EnableEdgeBlending [Command ID: 0x2F]
      2. 14.5.2 CMD_SetBlendMapControlPoints [Opcode: 0x2E]
      3. 14.5.3 CMD_ GetBlendMapControlPoints [Command ID: 0x2E]
      4. 14.5.4 CMD_SetBlendMapGainValues [Command ID: 0x2B]
      5. 14.5.5 CMD_ GetBlendMapGainValues [Command ID: 0x2B]
      6. 14.5.6 CMD_ SetBlendMapOffsetValues [Command ID: 0x2D]
      7. 14.5.7 CMD_ GetBlendMapOffsetValues [Command ID: 0x2D]
      8. 14.5.8 CMD_ApplyBlendMap [Command ID: 0x2C]
    6. 14.6  Manual Blending Application Commands
      1. 14.6.1 CMD_SetEdgeBlendingSystemParams [Command ID: 0x3D]
      2. 14.6.2 CMD_GetEdgeBlendingSystemParams [Command ID: 0x3D]
      3. 14.6.3 CMD_SetEdgeBlendingConfiguration [Command ID: 0x3E]
      4. 14.6.4 CMD_GetEdgeBlendingConfiguration [Command ID: 0x3E]
    7. 14.7  Cropping of Input Image for Blending Setup
    8. 14.8  Storing Edge Blend Configuration in EEPROM
    9. 14.9  Storing in EEPROM or Secondary Flash
    10. 14.10 Manual Blending GUI in Control Program
  18. 15Illumination Control
  19. 16Peripherals
    1. 16.1 GPIO
    2. 16.2 PWM
  20. 17Interface Protocol
    1. 17.1 Supported Interfaces
    2. 17.2 I2C Target
    3. 17.3 USB
  21. 18Command Protocol
    1. 18.1 Command Packet
    2. 18.2 Response Packet
    3. 18.3 Destination Details
    4. 18.4 Error Handling and Recovery
    5. 18.5 System Busy - I2C scenarios
      1. 18.5.1 GPIO Implementation
      2. 18.5.2 Short Status Response
    6. 18.6 Support for Variable Data Size
  22. 19Auto-Initialization Batch File
  23. 20Command Descriptions
  24. 21System Commands
    1. 21.1  3D
    2. 21.2  Administrative
    3. 21.3  Autolock
    4. 21.4  Bootloader
    5. 21.5  Calibration
    6. 21.6  Blending
    7. 21.7  Debug Internal
    8. 21.8  Debug
    9. 21.9  General Operation
    10. 21.10 Illumination
    11. 21.11 Image Processing
    12. 21.12 Manual WPC
    13. 21.13 Peripherals
    14. 21.14 Vision
    15. 21.15 Warping
  25.   Revision History

Bootloader

Bootloader

Table 21-21 Boot Hold Reason [Opcode: 12h | Destination: 1]
Get Boot Hold Reason
Return Parameters
Byte Description
Byte 0

Reason code

0x00 BOOT_HOLD jumper in HOLD position

0x01 Switched to programming mode initiated by main app

0x02 Reading flash info failed

0x03 Flash layout mismatch

0x04 Can't initialize ARM peripherals

0x05 Can't allocate memory pool

0x06 Failure in initialization task

0x07 Controller is invalid to run the application

0x08 Error in USB initialization

0x09 Error in i2c initialization

0x0A Error getting app configuration

0x0B App configuration layout mismatch

Returns the code that specifies the reason for being in bootloader mode.

Table 21-22 Flash Info [Opcode: 20h | Destination: 1]
Get Flash Info
Read Parameters
Byte Description
Byte 0

Chip Select of Flash Device

0 = Flash chip select 0 memory domain

1 = Flash chip select 1 memory domain

2 = Flash chip select 2 memory domain

Return Parameters
Byte Description
Bytes 0-1

Manufacturer ID

Bytes 2-9

Device ID

Bytes 10-13

Device size in bytes

Bytes 14 - *

Sector Information

bits 0-31: Sector Size

bits 32-47: Number Sectors

Byte 14

Availability

bit0: 0 = Flash can be used for programming; 1 = Flash cannot be used for programming.

This command returns the flash device and manufacturer IDs. Only CFI compliant flash devices are supported. The system can have multiple flash devices. The command returns the info for the flash present at the given chip select. Note: Chip Select 0 Flash is required for system operation. Other Flash Chip Selects are technically optional but required for Splash Capture and Warp Operations.

Table 21-23 Programmable Flash Sector Information [Opcode: 21h | Destination: 1]
Get Programmable Flash Sector Information
Return Parameters
Byte Description
Bytes 0 - *

Sector Information

bits 0-31: Sector Size

bits 32-47: Number Sectors

This command returns the flash sector information read from CFI compliant flash devices. If the flash is not CFI compliant, this command fails. The sectors returned by this command are the only ones available for programming a flash image. The system is designed such that the flash image is in a contiguous memory space. If a system has multiple flash parts, then the software checks the size of the flash at ChipSelect 0. If this is equal to the maximum supported size (32MB), then a flash device at ChipSelect 1 (if present) will also be supported for flash programming. Similarly, if the size of flash devices at both ChipSelect 0 and 1 are 32MB, then a flash device at ChipSelect 2 (if present) will be supported for flash programming as well. The command appends the sector information for each part, which is supported for flash programming, and provides them as output.

Table 21-24 Unlock Flash For Update [Opcode: 22h | Destination: 1]
Set Unlock Flash For Update
Write Parameters
Byte Description
Bytes 0-3

Flash Update lock/unlock

0 = Lock

4154802215 = Unlock

This command unlocks the flash update operation (Download, Erase). By default the flash update operations are locked. This is to prevent accidental modification of flash contents. To unlock, the pre-defined key shall be send as the unlock code. Calling this command with any other parameter will lock the flash update commands.

Get Unlock Flash For Update
Return Parameters
Byte Description
Byte 0

0 = Locked

1 = Unlocked

This command returns whether the flash is in unlocked state.

Table 21-25 Erase Sector [Opcode: 23h | Destination: 1]
Set Erase Sector
Write Parameters
Byte Description
Bytes 0-3

Sector Address

This command erases the sector of the flash where the given address falls in. This command is a flash update command, and requires flash operations to be unlocked using Unlock Flash for Update command. The sector address shall be specified as an offset from flash start address. For example in a flash device where all sectors are 64KB of size, sector addresses shall be specified as follows :

Sector 0 = 0

Sector 1 = 0x10000

Sector 2 = 0x20000

and so on...

Table 21-26 Initialize Flash Read Write Settings [Opcode: 24h | Destination: 1]
Set Initialize Flash Read Write Settings
Write Parameters
Byte Description
Bytes 0-3

Start Address offset to program data to where Offset 0 refers to first byte in the flash, 1 refers to second byte and so on. This offset must be an even number.

Bytes 4-7

This specifies the number of bytes Flash Write command should expect or the number of bytes Flash Read command should return. This must be an even number.

This command initializes flash read/write operation. This command shall be called before Flash Write command is sent.

Note : For Flash Write, the Address and download size set up shall both be even.

Table 21-27 Flash Write [Opcode: 25h | Destination: 1]
Set Flash Write
Write Parameters
Byte Description
Bytes 0 - *

Data to write to flash memory

This command is used to program data to flash. This command shall be called only after setting the start address and size using the Initialize Flash Read/Write Settings command. This command is a flash update command, and requires flash operations to be unlocked using Unlock Flash for Update command.

Flash write commands can be chained till the initialized number of bytes are programmed. The bootloader will auto-increment the address and size for each command. Only the initialized number of bytes will be programmed even if more data is provided.

It is important to send only even number of bytes per flash write command to ensure all bytes are written. This is done so that all flash writes are optimized as per the multi-word write supported by the flash device.

This command supports variable sized payload.

Get Flash Write
Read Parameters
Byte Description
Bytes 0-1

Number bytes to read in this command

Return Parameters
Byte Description
Bytes 0 - *

The bytes read from the flash

This command is used to read data from flash. This command shall be called only after setting the start address and size using the Initialize Flash Read/Write Settings command.

Flash read commands can be chained until the initialized number of bytes are returned. The bootloader will auto-increment the address and size for each command. Only the initialized number of bytes will be returned. Calling the function after returning requested data will return in command failure. This command supports variable sized response.

Table 21-28 Checksum [Opcode: 26h | Destination: 1]
Get Checksum
Read Parameters
Byte Description
Bytes 0-3

Start Address offset for checksum computation where Offset 0 refers to first byte in the flash, 1 refers to second byte and so on.

Bytes 4-7

Number of bytes to compute checksum

Return Parameters
Byte Description
Bytes 0-3

Simple additive checksum

Bytes 4-7

Sum of simple additive checksum calculated at each address

This command computes and returns the checksum starting at the given address for the specified number of bytes. Checksum is calculated as below :

uint32 SimpleChecksum = 0;
uint32 SumofSumChecksum = 0; 
uint08 *Addr = (uint08 *) StartAddress; 

while (NumBytes--) 
{ 
SimpleChecksum += *Addr++; 
SumofSumChecksum += SimpleChecksum; 
} 
Table 21-29 Reset Flash [Opcode: 27h | Destination: 1]
Set Reset Flash
Write Parameters
Byte Description
Byte 0 Chip Select

0 = Flash chip select 0 memory domain

1 = Flash chip select 1 memory domain

2 = Flash chip select 2 memory domain

This command resets the Flash device connected to the given chip select. Any partial commands given gets reset and the flash is put in read mode.