This guide details the software interface requirements for a DLPC343x ASIC-based system. It defines all
applicable communication protocols including I2C initialization, default settings and timing. The DLPC343x
system can be used in Figure 1.
Programmer's Guide
DLPU020C–July 2014–Revised May 2018
Figure 1. DLPC343x Embedded Configuration
2.1.1I2C-Based Command Data Interface
The legacy interface configurations make use of an I2C interface for commands and a 24-bit parallel
interface.
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
7
Interface Specification
3Interface Specification
The protocol used in communicating information to DLPC343x consist of a serial data bus conforming to
the Philips I2C specification, up to 100 kHz. MIPI DSI is supported in DLPC343x, but this feature is not
supported in LightCrafter™ Display EVM.
3.1I2C Interface and Ports for DLPC343x
DLPC343x commands are executed using I2C and support two I2C ports, port-0 and port-1.
Port-0 is primarily used for command and control interface. While using this port, DLPC343x behaves as
an I2C slave.
4System Initialization
This section describes the methodology used for system initialization.
4.1Boot ROM Concept
The DLPC343x employs a boot ROM and associated boot software. This resident boot code consists of
the minimum code necessary to complete the program loading. For most DLPC343x product
configurations, an external flash device can store the main application code, along with the other
configuration and operational data required by the system for normal operation.
4.2Resident Boot Software
The resident boot code consists of the minimum code necessary to load the ARM software from flash to
internal RAM for execution.
www.ti.com
4.3HOST_IRQ Initialization Sequence
HOST_IRQ is a signal indicating the status of DLPC343x initialization. While reset is applied, HOST_IRQ
resets to tri-state (an external pullup pulls the line high). HOST_IRQ remains tri-state (pulled high
externally) until the microprocessor boot completes. While the signal is pulled high, the controller performs
boot-up and auto-initialization.
Immediately after boot-up, the microprocessor drives HOST_IRQ to a logic high state to indicate that the
controller is performing auto-initialization (no real state change occurs on the external signal). Upon
completion of auto-initialization, ARM software sets HOST_IRQ to a logic low state to indicate the
completion of auto-initialization. At the falling edge, the system is said to enter the INIT_DONE state.
After auto-initialization completes, HOST_IRQ generates a logic high interrupt pulse to the host through
software control; this interrupt indicates that the controller detects an error condition or requires service.
8
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide
I2C access to DLPC343x should not start until HOST_IRQ goes low
(this should occur within 500 ms from the release of RESETZ.
HOST_IRQ
(with External Pullup)
0 ms min
(INIT_BUSY)
(ERR IRQ)
3 µs min
An active-high pulse on HOST_IRQ following the
initialization period will indicate an error condition has been
detected. The source of the error is reported in the system
status.
The first falling edge of HOST_IRQ
indicates auto-initialization done.
www.ti.com
5Software Interface
There is generally one set of software commands supported by the DLPC343x controller.
Software Interface
Figure 2. HOST_IRQ Timing Diagram
5.1I2C Considerations
5.1.1I2C Transactions
5.1.1.1Data Flow Control
5.1.2List of System Write/Read Software Commands
Since all I2C commands are processed by software, only one type of I2C transaction is supported. This
transaction type is shown in Table 1 for both writes and reads. The I2C interface supports variably-sized
transactions for example, a one byte transaction, a nine byte transaction) to match the TI commands
discussed later in this document.
Table 1. I2C Write and Read Transactions
TransactionAddress
Write
Read Request
Read Response
(1)
The address corresponds to the chip address of the controller.
(2)
The subaddress will correspond to a TI command.
(3)
The data (if present) will correspond to any required command parameters.
36h (or 3Ah)Command valueParameter values
36h (or 3Ah)Command valueParameter values
37h (or 3Bh)Parameter values
(1)
8-bits8-bits8-bit parameter bytes (0 → N)
8-bits8-bits8-bit parameter bytes (0 → N)
8-bits8-bit parameter bytes (0 → N)
Sub-Address
While the I2C interface inherently supports flow control by holding the clock, this is not sufficient for all
transactions (for example, sequence and CMT updates). In this case, the host software should use the
(2)
Remaining Data Bytes
Read Short status to determine if the system is busy.
The commands supported by the I2C interfaces are discussed in the following sections.
NOTE: When selecting the external video port, there is a set of associated commands applicable
These associations are also shown in Table 3.
www.ti.com
only to this source selection. These associated commands are the Write External Inputimage Size and the Write External Video Source Format Select.
When selecting the test pattern generator, only one associated command is applicable to this
source selection. This associated command is the Write Test Pattern Select command.
When selecting the splash screen, only two associated commands are applicable to this
source selection. These associated commands are the Write Splash Screen Select and Writesplash Screen Execute commands.
12
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide
Write External Video Source Format SelectOnlyN/AN/A
Write External Input Image SizeOnlyN/AN/A
Write Test Pattern SelectN/AOnlyN/A
Write Splash Screen SelectN/AN/AOnly
Write Splash Screen ExecuteN/AN/ASpecial
(1)
The Write Splash Screen Execute command is special in that there is no maintained state or history. Thus this command has no settings
to be stored and reused by the system.
External Video PortTest Pattern GeneratorSplash Screen
Input Source Select Options
These commands (other than Write Splash Screen Execute) describe the characteristics of their
associated source, and once these settings are defined the system stores them. Afterwards, each time an
input source selection is made (using the Write Input Source Select command), the system remembers
the settings described by the commands associated with the selected source, and automatically applies
them. The user only needs to send these associated commands when the source is first defined, or when
the source characteristics for that port must be changed. The appropriate associated commands must be
updated when source characteristics change.
The user can send source-associated commands every time they make an input source selection. The
source associated commands should be sent prior to sending the Write Input Source Select command.
When source-associated commands are sent when that source is not active, the controller software saves
the new settings, but does not execute these commands. When that source becomes active (via the WriteInput Source Select command), the controller applies these new settings, as in the following example:
1. The user sends the following commands (active input source = test pattern generator):
•Write image Freeze = freeze
•Write External Video Source Format Select (settings stored, command not executed)
•Write External Input Image Size (settings stored, command not executed)
•Write Input Source Select = external port (see step 2 below)
•Write Image Freeze = unfreeze
2. When the Write Input Source Select command is received, the software applies the settings from these
external video port-associated commands:
•External Video Source Format Select
•External input Image Size
If source-associated commands are sent for a source that is already active, the controller software
executes these commands when received, as in the following example:
•The user sends the following commands (active input source = external video port):
– Write Image Freeze = freeze
– Write external Video Source Format Select (command executed)
– Write Image Freeze = unfreeze
The rest of the commands that apply to image setup have settings applicable across all source selections,
and typically remain the same across the three input source selections. A few examples are Write DisplaySize and Write Display Image Orientation. A representative list of these commands is shown in Table 4.
(1)
DLPU020C–July 2014–Revised May 2018
Submit Documentation Feedback
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
External Video PortTest Pattern GeneratorSplash Screen
Input Source Select Options
While the values for these commands may be the same across the different input source types, the
hardware settings may change (for example: display image size = 1080p = DMD size – the external port
input source size is WXGA, which is scaled up to the display size of 1080p. If the user changes to the
TPG Input Source, the size of the test pattern must match the size of the DMD. Therefore, the scaler
settings must to be changed). The controller software manages the underlying hardware settings. This
also applies to those commands which specify automatic operation. While the automatic setting remains
the same, the underlying algorithm might change its settings based on the characteristic of the selected
source.
NOTE: The user is required to specify the active data size for all external input sources, using the
Write Input Image Size command.
NOTE: When a test pattern is selected, it is generated at the resolution of the DMD, modified by the
settings specified by the Write Image Crop command, and displayed at the resolution
specified by the Write Display Size command.
NOTE: The user should see the Write Image Freeze command for information on hiding on-screen
artifacts when selecting an input source.
5.1.3.2Read Input Source Select (06h)
5.1.3.2.1Read
This command reads the state of the image input source for the display module.
5.1.3.2.2Read Parameters
This command has no command parameters.
5.1.3.2.3Return Parameters
Figure 4 describes the return parameters.
14
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide
Default: 43h
This command is used in conjunction with the Write Input Source Select command. This command
specifies which input port displays when the Write Input Source Select command selects external video
port as the image source. The settings for this command are retained until changed using this command.
These settings are automatically applied each time the external video port is selected.
When the external video port is selected as the input source, the software automatically selects and loads
the proper CSC, based on the selected parameter of this command (appropriate matrix for RGB, selected
matrix for YCbCr including offset).The appropriate data path is also automatically selected for 4:2:2 versus
4:4:4 processing.
The selection of video source port is independent from the selected command port.
The user should review the notes for the Write Input Source Select command to understand the concept
of source-associated commands. This concept determines when source-associated commands are
executed by the system. This command is a source-associated command.
DLPU020C–July 2014–Revised May 2018
Submit Documentation Feedback
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
This command is used in conjunction with the Write Input Source Select command. This command
specifies which test pattern displays when the Write Input Source Select command selects test pattern
generator as the image source. The settings for this command are retained until changed using this
command. These settings automatically apply each time the test pattern generator is selected.
Batch files are created and stored in flash, and recall the settings for predefined test patterns.
Test patterns are created at the resolution of the display (DMD), are modified by the Write Image Crop
command, and displayed at the resolution specified by the Write Display Size command.
Test patterns display at the default frame rate 60 Hz.
The Test Pattern Border Selection creates a white border, a single pixel wide and tall, around the specified
test pattern.
The user must review the notes for the Write Input Source Select command to understand the concept of
source-associated commands. This concept determines when source-associated commands are executed
by the system. This command is a source-associated command.
When a foreground or background color is not used, the bit values are ignored (see Table 8). If both
foreground and background color are not used, or when a parameter byte (bytes 3 thru 6) is not used, the
byte should not be sent. Table 10 shows the number of bytes required, based on the specified pattern.
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide
As noted in Table 8, the color for the solid field pattern is specified using the foreground color. An example
of a solid field pattern is shown in Figure 7.
Software Interface
Table 10. Number of Bytes Required based on Pattern Selection
Specified PatternNumber of Bytes Required
Solid field2
Fixed step horizontal ramp4
Fixed step vertical ramp4
Horizontal lines4
Vertical lines4
Diagonal lines4
Grid lines6
Checkerboard7
Color bars1
Figure 7. Example of Solid Field Test Pattern (Red)
As noted in Table 8, the color for the fixed step horizontal ramp pattern is specified using the foreground
color. As noted in Table 9, the user specifies the start value and the stop value for the ramp. For this
pattern, the system automatically determines the step size based on the start and stop values and the size
of the display (DMD). The minimum start value is 0, the maximum stop value is 255, and the start value
must always be smaller than the stop value. For example, if the start value = 0, the stop value = 255, and
the DMD resolution is 1280 wide, the step size would be 5 (1280 pixels / 256 values = 5). Thus every gray
shade value from 0 to 255 would have a step size of 5 pixels (such that each step would have 5 columns
of pixels with the same gray scale value). The gray scale value always increments by 1 for each step
between the start and stop values. An example of a fixed step horizontal ramp pattern is shown in
Figure 8.
DLPU020C–July 2014–Revised May 2018
Submit Documentation Feedback
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
As noted in Table 8, the color for the fixed step vertical ramp pattern is specified using the foreground
color. As noted in Table 9, the user specifies the start value and the stop value for the ramp. For this
pattern, the system automatically determines the step size based on the start and stop values and the size
of the display (DMD). The minimum start value = 0, the maximum stop value = 255, and the start value
must always be smaller than the stop value. For example, if the start value = 0, the stop value = 255, and
the DMD resolution is 768 tall, then the step size would be 3 (768 pixels / 256 values = 3). Thus every
value from 0 to 255 would have a step size of 3 pixels (such that each step would have 3 rows of pixels
with the same gray scale value). The gray scale value always increments by 1 for each step between the
start and stop values. An example of a fixed step vertical ramp pattern is shown in Figure 9.
www.ti.com
Figure 8. Example of Fixed Step Horizontal Ramp Test Pattern
20
Figure 9. Example of Fixed Step Vertical Ramp Test Pattern
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide
As noted in Table 8, the colors for the horizontal lines pattern are specified using both the foreground and
background colors. The foreground color is used for the horizontal lines, and the background color is used
for the space between the lines. As noted in Table 9, the user specifies the foreground line width, as well
as the background line width. The user must determine the line spacing for each resolution display. For
example, if the foreground line width = 1, and the background line width = 9, there would be a single pixel
horizontal line on every tenth line. An example of a horizontal lines pattern is shown in Figure 10.
Software Interface
Figure 10. Example of Horizontal Lines Test Pattern
As noted in Table 8, the colors for the vertical lines pattern are specified using both the foreground and
background colors. The foreground color is used for the vertical lines, and the background color is used
for the space between the lines. As noted in Table 9, the user specifies the foreground line width, as well
as the background line width. The user must determine the line spacing for each resolution display. For
example, if the foreground line width = 1, and the background line width = 9, there would be a single pixel
vertical line on every tenth line. An example of a vertical lines pattern is shown in Figure 11.
Figure 11. Example of Vertical Lines Test Pattern
DLPU020C–July 2014–Revised May 2018
Submit Documentation Feedback
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
As noted in Table 8, the colors for the diagonal lines pattern are specified using both the foreground and
background colors. The foreground color is used for the diagonal lines, and the background color is used
for the space between the lines. As noted in Table 9, the user specifies the horizontal and vertical line
spacing. The line width is always one pixel. The user determines the line spacing for each resolution
display. Both horizontal and vertical line spacing must use the same value, and are limited to values of 3,
7, 15, 31, 63, 127, and 255. Invalid values result in a communication error (invalid command parameter).
An example of a diagonal lines pattern is shown in Figure 12.
www.ti.com
Figure 12. Example of Diagonal Lines Test Pattern
As noted in Table 8, the colors for the grid lines pattern are specified using both the foreground and
background colors. The foreground color is used for the grid lines, and the background color is used for
the space between the lines. As noted in Table 9, the user specifies the horizontal foreground and
background line width, as well as the vertical foreground and background line width. The user determines
the line spacing for each resolution display. For example, if the horizontal foreground line width = 1, and
background line width = 9, there would be a single pixel horizontal line on every tenth line. If the vertical
foreground line width = 1, and background line width = 9, there would be a single pixel vertical line on
every tenth line. An example of a grid lines pattern is shown in Figure 13.
22
DLPC3430, DLPC3432, DLPC3435, DLPC3433, and DLPC3438 Software
Programmer’s Guide