Using the uPP EVM example applications from the BIOS PSP
The BIOS PSP for OMAP-L138 and C6748 includes a driver for the uPP peripheral and multiple example applications that demonstrate how it is used. The first example simply operates uPP in a digital loopback mode. The other two examples, called evmA and evmB, are meant to operate together on two separate EVMs to perform real data transfers from one device to the other.
This article describes the setup and procedure necessary to run these EVM example applications. These examples are also described in the user guide distributed as part of the BIOS PSP installation. This article is meant to be a quick reference guide.
Since these example applications setup two separate devices to communicate one another via uPP, you will need two EVMs. Either the OMAP-L138 or C6748 SOM can be used. When using the OMAP-L138 SOM, place the device in emulation boot mode by setting S7[5:8] to 1001.
You will also need two PCs to run a simultaneous CCS debug session on each device. The software prerequisites, above, must be met on both PCs.
Finally, you will need to connect the uPP pins from each device together. This is made more challenging by the fact that the EVM does not come with a ready-made connector to achieve this, so a breakout board or cable is necessary.
All of the uPP signals are accessible via connector J29 on the EVM. Note that this connector is also used by the optional UI board, so you will need to disconnect that board from the EVM in order to access the uPP pins. The EVM schematic indicates which upp signal is connected to each pin of the connector, but some of the signal names are incorrectly labeled. The following table lists all of the uPP signals as named in the schematic and also gives the correct signal name and the pin on J29 where it is routed.
|Schematic Label||uPP Signal Name||Pin on J29|
|UPP_XD[15:0]||XData[15:0]||13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28|
|UPP_CH1_D[15:0]||Data[15:0]||80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95|
To properly prepare for the uPP EVM examples, every uPP pin must be connected to the same pin on the other EVM. There are four basic groups of uPP pins:
- Channel A control pins
- Channel B control pins
- Data pins
- XData pins
All of these pins should be connected together acoss both EVMs.
Rebuilding the Example Applications
The pre-built versions of the uPP EVM example applications are set to run at the maximum uPP clock speed of 75 MHz. This speed is probably unrealistic for use across two breakout boards (and/or a long connecting cable), so the applications must be rebuilt to operate at a lower uPP I/O clock speed. This is a straightforward process.
First, locate the uPP EVM example applications inside the BIOS PSP installation. The paths will generally look something like this:
C:\Program Files\Texas Instruments\pspdrivers_01_30_01\packages\ti\pspiom\examples\evm6748\uppEvm\evmA C:\Program Files\Texas Instruments\pspdrivers_01_30_01\packages\ti\pspiom\examples\evm6748\uppEvm\evmB
In CCSv3.3, opening each project is as simple as opening the *.pjt file located in its build/ccs3 subfolder. In CCSv4 or 5, you will need to import the Eclipse project located in the build/ccs4 subfolder. You can also use the import legacy project wizard to import the CCSv3.3 *.pjt file into your workspace.
Once the project is open, you may need to configure the build settings so that CCS knows where to find the various PSP libraries and header files it needs to build the project. This should generally only be necessary in CCSv3.3.
Before building the projects, it's necessary to make one simple change to the source code. Open the file named src/uppSample_io.c (same name in both projects) and locate the uPP configuration structs near the top of the file. You should see two such structs in each source file: one for channel A and one for channel B. The seventh element in each struct sets the uPP I/O clock speed, and is initially set to 75 MHz (75000000). Change this to 10 MHz (10000000) in both structs and rebuild the application.
Running the Example Applications
Important note: Do not skip the above sections on hardware setup and rebuilding the example applications! This procedure will not work if you haven't properly setup the EVM hardware and re-configured the example applications.
To run the example applications, observe the following procedure:
- Connect one PC to each EVM and launch CCS on both
- Connect the uPP pins together as described in the hardware setup section, above
- Begin a debug session for each example application on either EVM (i.e. evmA on one EVM, evmB on the other)
- Be sure to use application binaries rebuilt according to the instructions in the previous section
- Run the evmB application first
- Run the evmA application second
- Wait for the applications to finish
- Open the DSP/BIOS message log (named trace) to view application status; the applications use LOG_printf instead of printf
If both applications complete successfully, you should see the following message in each application's message log:
Sample Application completed...
If either application fails, you should instead see error messages decribing what went wrong.