Day 1: August 20th, 2016
* Introduction to TIVA
The workshop started off with an introduction to the TIVA C Series platform and comparison of TIVA with other platforms such as MSP430, highlighting its advantages and disadvantages over others. This discussion focused upon the various features of the controller such as the higher clocking capability (upto 80MHz), various kinds of memory (256KB Flash, 32KB SRAM, 2KB EEPROM), a peek into the various modules available for use, etc.
* Overview of ARM Architecture
This was followed up by an overview of the ARM processor families and the M series processors. The A series, R series and M series of processor architectures and their applications were introduced and differentiated. The participants were made aware about the Thumb and Thumb2 instruction sets. Some concepts of basic computer architecture such as bus system, instruction cycles, etc. were also covered.
* Toolchain setup, Electrical Characteristics and Signal Tables
Setting up of the tool chain was commenced next. The tool chain comprised of an installation of the Code Composer Studio, along with the setting up of the TivaWare library. Alongside that, basic electrical characteristics and the usage of signal tables was explained . This activity continued up till the lunch break.
* System Control Module, Clock System and Program Structure
Post lunch session began with an explanation of the clock system of the controller. The students were familiarized with the various stages and configurations of the system clock and the corresponding controls. They were also, at this point of time, explained how a program code was organized and the various references to be used while developing the code.
* General Purpose Input/Output (GPIO) Module
Hands on approach to interfacing the controller started off with the GPIO Module. After an explanation of the available features of the module, the participants understood and executed various codes such as LED Blinking, Interfacing a pushbutton, etc. To ensure that they had understood the concept, the participants were then asked to develop the code for toggling an LED using an onboard pushbutton.
* Analog-to-Digital Converter (ADC) Module
Once the students were comfortable with the GPIO Module, they were introduced to the 1MSPS ADC Module of the TIVA. After a brief introduction and description of the internal architecture of the ADC, students were explained how to interface with the ADC using the TivaWare Library. The problem statement that the participants were asked to solve was obtaining readings from the potentiometer provided on the Voyager platform. Using this, the debugging features of the Code Composer Studio were also highlighted. The day’s session was wrapped up with the participants being asked to address a particular problem statement viz. calculating the frequency of the output of an astable multi-vibrator using just the GPIO Module.
Day 2: August 21st, 2016
* Revision and doubt clearing session
The day started off with a short discussion on the previous day’s coverage and the problem statement. The discussion spanned a range of topics, clearing doubts of the participants and providing the solutions to the previous day’s problem statements.
* Pulse-Width Modulator (PWM) Module
The PWM module was covered after the discussion. A basic overview of the PWM module organization was followed by the students being taught how to formulate the program code for interfacing the PWM module. The students were asked to control the intensity of the on-board RGB Led using the PWM module.
* UART Module
UART module was started next. In case of UART module, students were explained the basic organization and features of the module. They were then asked to build requisite code for implementing an echo application using the recommended reference material. Encouragingly, with some effort, all of the participants were able to successfully implement the code.
* Timer Module
The next module covered was the Timer module which ran along the similar lines as the UART module. The various modes of operation of the timer module were explained to the students. The example used to demonstrate the timer operation was controlling the intensity of an LED using the Timer in PWM mode and producing a breathing-like effect.
Due to lack of time and seeming fulfillment of the aim of the workshop, it was wrapped up soon after the timer module was covered. The participants were suggested some problem statements involving the use of SSI and I2C Modules to be explored on their own.