Published On: August, 4, 2017 By: Eshtaartha Basu | Updated: February 6, 2019 by Cathleen Wicks
This document will take you through the bring-up process of the Printed Circuit Board (PCB) developed as part of the OSD335x Reference Design Lesson 1.
We begin with bringing-up the newly manufactured board (PCB) to make sure it is functional. Then we set up the necessary software environment including the TI Code Composer Studio (CCS) IDE and Starterware. We conclude with the demo apps to verify the overall functionality of the board.
This article is a part of the broader OSD335x Reference Design Lesson 1 series which consists of a sequence of articles designed to help you build the bare minimum circuitry required to boot the OSD335x.
We recommend reading the article OSD335x Peripheral Circuitry before this one. This article builds upon the foundation outlined in it.
Before continuing with the article, it is assumed that you have read and implemented all the steps given under Power circuitry, Reset circuitry, Clock circuitry and Peripheral circuitry articles of the OSD335x Reference Design Lesson 1 and your board is already manufactured and with you.
All design files for this lesson can be downloaded here.
This article as well as the entire OSD335x Design Tutorial can be downloaded here.
The board built as part of previous articles of this lesson should look similar to Figure 1 (Assuming you chose Red color for solder mask and white color for silk screen).
This section describes the various tests that need to be done during the board bring-up process.
The newly manufactured PCB should be examined before powering it up for the first time to prevent damage to the board.
After performing all the above tests, we can power up the board using the DC barrel jack. If everything goes well, you should see the power LED PWR light up as shown in Figure 2.
More information about using Digital Multi Meters can be found here.
Boards should only be powered up for the first time in a good work environment with proper safety equipment like fire extinguisher, non-flammable ESD workbench, safety glasses, fume extractor (to remove soldering smoke) etc. Please make sure your work environment is proper before doing any board bring-up work.
Once the board is powered up, if you observe sparking, overheating or smoke from any of the components, TURN OFF POWER TO THE BOARD IMMEDIATELY to avoid further damage to the board and prevent a possible fire hazard. For any component that failed, please make sure:
If the power LED is lit and you don’t observe any smoke, sparking or heating issues then we can consider it a successful power-up. But, this does not mean the board is fully functional. We can test for functionality by running demo apps. However, before running the demo apps we need to make sure the board is in the state we expect it to be in. To do this we need to:
If any of the above voltages are not at the desired level, please use the test points/test pads with an oscilloscope and DMM to find out which component(s) is responsible for the erroneous voltage. One thing to be aware of is that the voltage on a power rail or signal pin can drop if the load is trying to draw more current than the source can provide.
If you’ve made it this far through the article and if everything looks good on your board, pat yourself on the back. Good job! Now you’re ready to run some code!
For our design, we will use the Code Composer Studio(CCS) Integrated Development Environment(IDE) to compile, debug and load programs to the OSD335x. The OSD335x uses the AM335x processor from Texas Instruments (TI). Therefore, for the AM335x, we will use the IDE developed and supported by TI. You can use third party IDEs and compilers if necessary.
Steps to install Code Composer Studio:
StarterWare is a free software development package that provides bare metal (non-OS) platform support for TI ARM and DSP processors. StarterWare includes Device Abstraction Layer (DAL) libraries and example applications that demonstrate the capabilities of the peripherals on the TI processors. StarterWare also provides pre-built binaries for quick evaluations on the target. To keep things simple and to avoid using an OS like Linux, we will be using Starterware platform for this lesson. Linux will be introduced in the next lesson.
To install StarterWare:
The objective of this app is to demonstrate the use of the GPIO and EHRPWM peripherals within the OSD335x.
Demo App 1 generates a hardware PWM signal on the EHRPWM1A (GPIO1_18) pin which is connected to LED D2 on the board and a software PWM signal on the GPIO1_15 pin which is connected to LED D3 on the board. The brightness of each of these LEDs will be controlled by their respective PWM duty cycles and will be set to the maximum value (i.e., always on) in the beginning.
The duty cycle of the hardware PWM signal for LED D2 will be controlled by button BTN1. When the button is first pressed and held, the duty cycle will slowly decrease, which will cause the LED to dim. This will continue until the minimum duty cycle is reached, and the LED will turn off. If you continue to press the button, the duty cycle will then increase, which will cause the LED to brighten back up to the maximum duty cycle. This process repeats itself as long as BTN1 is pressed. The duty cycle of the software PWM signal for LED D3 will be controlled by button BTN2. The behavior of the PWM duty cycle controlled by BTN 2 is same as that of BTN1.
All the CCS design files required for Demo App 1 and Demo App 2 can be found here.
Make sure you use forward slash (/) with the project macro ${ConfigName} as /${ConfigName} in the paths above. Otherwise, CCS will not resolve ${ConfigName} into its value.
Before you try to load the demo apps through the JTAG debugger, you need to make sure the JTAG connection is setup properly and there are no connection issues. To check the JTAG connection, follow the steps below:
Generally, most errors that arise are due to compiler or linker path problems. Please pay extra attention while setting these paths. Code Composer Studio does a good job in pointing out errors. Whenever there is an error, please go through the error message carefully. This will help you isolate the problem quickly so that it can be fixed.
The objective of this app is to demonstrate the use of peripheral header with the OSD335x.
This project uses the MOTION click board (https://shop.mikroe.com/click/sensors/motion). It can be directly plugged into the peripheral header. The MOTION click board detects motion of living bodies. It picks up the IR radiation emitted by living bodies using its PIR sensor. Whenever a motion is detected, it sends an interrupt to the OSD335x using the INT pin of peripheral header. The OSD335x detects this interrupt and alternatively blinks LED D2 and LED D3 to indicate motion detection.
The procedure to run demo app 2 is exactly same as that of demo app 1 except that you have to use RefDesL1Demo2.c (provided as part of CCS design files. Link given above) instead of RefDesL1Demo1.c. Figure 15 shows Demo App 2 in action.
There has been multiple revisions to the OSDZU3-REF and some of the documentation is for specific revisions.
The revision of your OSDZU3-REF is printed under the fan next to the Octavo Systems logo. See the image below.
If there are multiple versions of a document make sure you select the one that matches your revision.