Lesson 00: General Requirements for Tiva Laboratories
You will learn the ARM architecture in this session. You have to purchase some hardware components, a development board, and install all the necessary software (please see the detail below) on your PC (or Laptop) that has a USB interface and running on the Microsoft Windows 64-bit platform. Maybe you need a USB HUB that has an external power source in order to provide enough current to the whole embedded system.
You must have a TI Tiva C Series LaunchPad board and other components. I recommend you to get TI EK-TM4C123GXL Board and Elegoo Complete Starter Kit. Some of the components in the kit may not be used in the "Tiva Lab", but it will be used for PSoC projects, or you can use it with other microcontrollers.
The Tiva Series LaunchPad is a low-cost development platform for ARM Cortex-M4F based microcontrollers. Each Tiva board consists of a target microcontroller, an In-Circuit Debug Interface (ICDI) such as JTAG, a regulated power supply, and a set of expansion headers. The expansion headers are referred to as the TI BoosterPack Interface that is compatible with the TI MSP430 LaunchPad.
You can use either EK-TM4C123GXL or EK-TM4C1294XL board and purchase it from ti.com or other vendors.
Texas Instruments TM4C123GXL Tiva C Series LaunchPad Evaluation Board
- Tiva TM4C123GH6PMI 80MHz 32-bit ARM Cortex-M4 based
with floating point
- 256KB Flash / 32KB SRAM / 2KB EEPROM on-chip memory
- Dual 12-bit ADCs (1MSPS)
- 6x 64-bit and 6x 32-bit timers
- Advance PWMs (16 PWM outputs)
- 4x I2C ports, 8x UARTs, 4x modules, 2x CANs 2.0 A/B
- USB micro-A and micro-B connector for USB on-the-go (OTG)/Host/Device connectivity
- On-board RGB user LED
- Two user switches (application/wake)
- Switch-selectable power sources
- USB device
- Reset switch
- Tiva C Series TM4C123G LaunchPad BoosterPack XL interface, which features stackable headers to expand the capabilities of the Tiva C Series LaunchPad development platform
TM4C1294 Tiva C Series LaunchPad Evaluation Board
- TM4C1294NCPDTI 120MHz 32-bit ARM Cortex-M4 MCU with floating point
- 1MB Flash / 256KB SRAM / 6KB EEPROM on-chip memory
- 10/100 Ethernet MAC + PHY
- 8x 32-bit (16x 16-bit) timers
- Dual 12-bit ADCs (2 MSPS)
- Advance motion control PWMs
- 10x I2C ports, 8x UARTs, 4x quad SSIs, 2x CANs, USB 2.0 port with HS ULPI
- Two BoosterPack XL interface (2x40 pin) each with stackable
- 2× user buttons, wake and reset buttons, plus 4 user LEDs and power-indicator LED
- Integrated USB-powered in-circuit debug interface (ICDI)
- RJ-45 Ethernet jack
- Jumper-selectable power sources
- USB Host/Device port
Elegoo Complete Starter Kit
You can purchase The Most Complete Starter Kit (Elegoo) from Amazon (here).
- This kit has 63 parts (more than 200 components) that are packaged in an convenient container.
- All the modules come soldered so they are easy to wire up
- Includes UNO R3 controller board and USB cable
- All Arduino code to use the modules and documents (PDF) are included on the CD
The kit includes following components:
- 5pcs White LED
- 5pcs Yellow LED
- 5pcs Blue LED
- 5pcs Green LED
- 5pcs Red LED
- 1pcs RGB LED
- 5pcs 22pf Ceramic Capacitor
- 5pcs 104 Ceramic Capacitor
- 2pcs Photoresistor
- 1pcs Thermistor
- 5pcs Diode Rectifier (1N4007)
- 2pcs Electrolytic Capacitor (10UF 50V)
- 2pcs Electrolytic Capacitor (100UF 50V)
- 5pcs NPN Transistor (PN2222)
- 5pcs NPN Transistor (S8050)
- 1pcs Tilt Switch 5pcs Button (small)
- 1pcs 1 digit 7-segment Display
- 1pcs 4 digit 7-segment Display
- 1pcs Sound Sensor Module
- 1pcs LCD1602 Module ( with pin header)
- 1pcs IC L293D
- 1pcs IC 74HC595
- 1pcs Active Buzzer
- 1pcs Passive Buzzer
- 1pcs RTC Module
- 1pcs DHT11 Temperature and Humidity Module
- 2pcs Potentiometer
- 1pcs Rotary Encoder Module
- 1pcs Joystick Module
- 1pcs Keypad Module
- 1pcs 5V Relay
- 1pcs IR Receiver Module
- 1pcs UNO R3 Controller Board
- 1pcs Breadboard
- 1pcs Servo Motor (SG90)
- 1pcs Stepper Motor
- 1pcs ULN2003 Stepper Motor Driver Board
- 1pcs Prototype Expansion
- 1pcs Power Supply Module
- 1pcs HC-SR501 PIR Motion Sensor
- 1pcs Ultrasonic Sensor
- 1pcs ADXL335 Module
- 1pcs 3V Servo Motor
- 1pcs MAX7219 Module
- 1pcs Remote
- 1pcs 9V 1A Power Supply
- 1pcs 65 Jumper Wire
- 1pcs Water Lever Sensor
- 1pcs USB Cable
- 1pcs 9V Battery with DC
- 1pcs RC522 RFID Module
- 10pcs Resistor (10R)
- 10pcs Resistor (100R)
- 10pcs Resistor (220R)
- 10pcs Resistor (330R)
- 10pcs Resistor (1K)
- 10pcs Resistor (2K)
- 10pcs Resistor (5K1)
- 10pcs Resistor (10K)
- 10pcs Resistor (100K)
- 10pcs Resistor (1M)
- 20pcs Female-to-male Dupont Wire
The kit comes with an Arduino UNO R3 development board, and we are not using it.
Jumper Wires and Connector Housings
Here, I recommend you to purchase some colors jumper wires and housings.
The color wires help you to keep track of your connections and avoid connection errors, such as short-circuit connections, reverse power connections, etc. For example, always use black wire for ground and red wire for power, so you will easily and quickly recognize the power source wires, and make sure they are not connected together and that there are no reverse connection to the power supply sources.
The connector housings can help you to organize connection wires. Using connector housings with color jumper wire can help you to easily reconnect the devices without having to connect each wire every time, and reduce the connection errors.
You will need jumper wires for making quick and easy prototyping connections between sensors, breadboard and the embedded board. Use them to wire up all the circuits.
Jumper wires can be purchased with male terminations on both ends, female terminations on both ends, or one male and one female termination. These termination are designed for use with 0.1" (2.54 mm) male headers and female headers, solderless breadboards, and prototyping PCBs. The wires are available in vary lengths and colors. The 3" (7.5 cm) wires are useful for the connections on the breadboard; the 6" (15 cm) wires are useful for the connections between the embedded board and breadboard; the 12" (30 cm) wires are useful for the connections between the sensor and breadboard/embedded board.
Here, recommend you to prepare all there types of wires in vary length for the embedded labs:
- Female-Female Jumper Wires: 6", 12"
- Male-Female Jumper Wires: 6", 12"
- Male-Male Jumper Wires: 3", 6"
Buy jumper wires from Pololu - Premium Jumper Wires.
Dose the color of Jumper Wires matter?
No, the colors do not matter. The wire color is just an aid to help you keep track of which connections are connected and do no affect on the operation of the circuit. You can define your own color-coding scheme, but here we recommend you to follow the rules as below lists, so everybody can understand the way the circuit is wired:
- Black Wire: Negative Power Sources (GND)
- Brown Wire: Data signals
- Red Wire: Positive Power Sources (+5V)
- Orange Wire: In dual power source circuit, orange wires are used for +3.3V power sources. Otherwise, it can be used for Data signals
- Yellow Wire: Clock Signals
- Green Wire: Protective earth ground (PG)
- Blue Wire: Data signals
- Purple Wire: Reset Signals
- Gray Wire: In the mixed signals circuit, using gray wires for Analog Ground (AGND); Otherwise, it can be used for Data signals
- White Wire: for Data signals
Crimp Connector Housings
Connector housings allow you to quickly make up your own custom cable harnesses or assemblies for connection to your hardware circuit projects. It mates with various 0.1" (2.54 mm) - spaced connectors, including male and female headers and solderless breadboards. Just select the housing with the correct number of pins, pick the colors and genders for your wires, and snap them into the housings.
I recommend to use the housing to make some cables, so you can quickly to reconnect the devices without checking all of the wire connections one by one every time. The connector housings can use with pre-crimped wires, which are "jumper wires" you purchase from Pololu, or you can make your own self-crimped wires with the crimping tool.
At least, you need the following housings for the embedded Labs:
- 0.1" (2.54mm) Crimp Connector Housing: 1x2-Pin
- 0.1" (2.54mm) Crimp Connector Housing: 1x3-Pin
PIR Sensor, Servo, IR Receiver Module, DHT11 Module, Water Level Sensor,
- 0.1" (2.54mm) Crimp Connector Housing: 1x4-Pin
I2C devices, Stepper Motor Driver Board, Ultrasonic Sensor, Sound Sensor
- 0.1" (2.54mm) Crimp Connector Housing: 1x5-Pin
Joystick, Rotary Encoder Module,Matrix LEDs Module
- 0.1" (2.54mm) Crimp Connector Housing: 1x6-Pin
- 0.1" (2.54mm) Crimp Connector Housing: 1x8-Pin
RC522 RFID Module, MPU Module
- 0.1" (2.54mm) Crimp Connector Housing: 1x16-Pin
Character LCD module
You can buy the housings from the following vendors:
Please download and install the following software onto your computer.
- Keil MDK-Arm 5.x: https://www.keil.com/download/product/
- TI Stellaris ICDI Driver (SW-ICDI-DRIVERS): http://www.ti.com/tool/STELLARIS_ICDI_DRIVERS
- (Optional) TI TivaWare for C Series Complete (SW-TM4C): http://www.ti.com/tool/sw-tm4c
- ICDI Firmware Tools (for trouble-shooting used):
The development software is only working on the Microsoft Windows platforms. If you are using the Apple Mac computer, you need to install virtual machine software (VirtualBox, Fusion for Mac, Parallels) on the MacOS X first, then install Microsoft Windows in the Virtual Machine.
The following documents provide detailed data about the TI Tiva LaunchPad board and microcontroller. Please download all of them to your local driver for reference.