A Sequence of courses using 8, 16, and 32 bit Microcontroller/DSP Boards

Similar documents
Laboratory: Introduction to Mechatronics. Instructor TA: Edgar Martinez Soberanes Lab 1.

Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform.

Pic24f Family Reference Manual Section 14. Timers

Own Your Technology Pvt Ltd. Own Your Technology Presents Workshop on MSP430

Session 1520 EXPERIENCE OF TEACHING THE PIC MICROCONTROLLERS

University Program Advance Material

CHIPS Newsletter Vol 5 - Yahoo! Mail. Official Newsletter of

MICROPROCESSORS B (17.384) Spring Lecture Outline

CORRIGENDUM ISSUED FOR NATIONAL COMPETITIVE BIDDING UNDER TEQIP PHASE-II

Typical applications where a CPLD may be the best design approach:

MICROPROCESSORS B (17.384) Spring Lecture Outline

Embedded Systems. Software Development & Education Center. (Design & Development with Various µc)

Advanced Embedded Systems

Laboratory Hardware and Tools

Bolt 18F2550 System Hardware Manual

Low-Cost Microcontrollers

Section Objective: Acquaint with specifications of Launchpad Acquaint with location of switches, LEDs, power-on switch, powering the board.

Comparison of different microcontroller development boards for power electronics applications

MICROPROCESSORS A (17.383) Fall Lecture Outline

MT2 Introduction Embedded Systems. MT2.1 Mechatronic systems

Microchip Technology Enhances Popular 16- and 32-bit Development Platform with Application-Specific Expansion Hardware

Product Overview -A 16 bit Micro Experimenter for Solderless Breadboards

Getting Started With the Stellaris EK-LM4F120XL LaunchPad Workshop. Version 1.05

EMBEDDED SYSTEMS: Jonathan W. Valvano INTRODUCTION TO THE MSP432 MICROCONTROLLER. Volume 1 First Edition June 2015

SECOND EDITION. Arduino Cookbook. Michael Margolis O'REILLY- Tokyo. Farnham Koln Sebastopol. Cambridge. Beijing

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

Embedded Target for TI C6000 DSP 2.0 Release Notes

32 bit Micro Experimenter Board Description and Assembly manual

EMBEDDED SYSTEMS READY TO USE LECTURE MATERIALS FOR UNDERGRADUATES

Introducing: New Low-Cost & Low Pin Count PIC Microcontrollers for the 8-, 16- & 32-bit Markets

Microcontroller: CPU and Memory

THE LPC84X MCU FAMILY A MULTI-TESTER TOOL OFFERING FEATURES FOR YOUR NEXT IOT DESIGN

GUJARAT TECHNOLOGICAL UNIVERSITY

COL862 - Low Power Computing

ECE 353 Lab 4. General MIDI Explorer. Professor Daniel Holcomb Fall 2015

Trends in Prototyping Systems. ni logic Pvt. Ltd., Pune, India

Figure 1.1: Some embedded device. In this course we shall learn microcontroller and FPGA based embedded system.

Goal: We want to build an autonomous vehicle (robot)

ATHENA32 PIC32 Evaluation Board ATHENA32. Product Datasheet. Francesco Ficili Date 13/01/2019. Pag. 1

Arduino Cookbook O'REILLY* Michael Margolis. Tokyo. Cambridge. Beijing. Farnham Koln Sebastopol

Unlocking the Potential of Your Microcontroller

INDUSTRIAL TRAINING:6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

Introducing the 32 bit Micro Experimenter

Embedded Systems Laboratory

Basic Components of Digital Computer

CprE 288 Introduction to Embedded Systems (Project and Platform Overview)

Final Exam Study Guide

Microcontroller basics

Introduction to L.A.P. 1

MAKING PIC MICROCONTROLLER INSTRUMENTS AND CONTROLLERS

Embedded Systems Laboratory Manual ARM 9 TDMI

Diploma in Embedded Systems

Z8 Encore! XP F1680 Series 8-Bit Flash Solution with Extended Peripherals

Robotics Training Module ABLab Solutions

STM32F429 Overview. Steve Miller STMicroelectronics, MMS Applications Team October 26 th 2015

Usb Universal In-circuit Programmer Pic Avr Arm Msp 8051 Eeprom

AVR MICROCONTROLLER PROJECT TUTORIAL E-PUB

acret Ameya Centre for Robotics & Embedded Technology Syllabus for Diploma in Embedded Systems (Total Eight Modules-4 Months -320 Hrs.

Overview of Microcontroller and Embedded Systems

Department of Electronics and Instrumentation Engineering Question Bank

Computer Hardware Requirements for Real-Time Applications

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

Lecture 1: Introduction to Microprocessors

Development of a digital instrument as a motivational component in teaching embedded computers

Embedded Technosolutions

Microcontroller Basics

Network Embedded Systems Sensor Networks Fall Hardware. Marcus Chang,

Prefetch Cache Module

ITT Technical Institute. ET2640 Microprocessors and Microcontrollers Onsite and Online Course SYLLABUS

Intel Galileo gen 2 Board

Microprocessor (COM 9323)

TDSDB Features. Description

Electronic Design for Power Control Technology and Knowledge transferred from University to Industry

Embedded Systems Lab Lab 1 Introduction to Microcontrollers Eng. Dalia A. Awad

EMBEDDED SYSTEMS COURSE CURRICULUM

ECE3120: Computer Systems Hardware & Software Development Tools

EE 354 Fall 2015 Lecture 1 Architecture and Introduction

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus

An Introduction to Designing Ham Radio Projects with PIC Microcontrollers. George Zafiropoulos KJ6VU

PVK40. User's manual. Feature Rich Development and Educational Kit for 40-pin Microchip PIC microcontrollers

: REAL TIME SYSTEMS LABORATORY DEVELOPMENT: EXPERIMENTS FOCUSING ON A DUAL CORE PROCESSOR

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

UNIVERSITY OF BOLTON SCHOOL OF ENGINEERING MSC SYSTEMS ENGINEERING AND ENGINEERING MANAGEMENT SEMESTER 2 EXAMINATION 2016/2017

C55x Digital Signal Processors Software Overview

Here to take you beyond. ECEP Course syllabus. Emertxe Information Technologies ECEP course syllabus

Microcontrollers for Ham Radio

Kinetis KE1xF512 MCUs

PSIM Tutorial. How to Use SPI in F2833x Target. February Powersim Inc.

To be familiar with the USART (RS-232) protocol. To be familiar with one type of internal storage system in PIC (EEPROM).

Interesting Items Volume 16. Dave Jaffe 04/23/2011

Programming 8-bit PIC Microcontrollers in С

Microprocessors B Lab 3 Spring PIC24/24LC515 EEPROM Interface Using I 2 C

Embedded Design With The PIC18F452 PDF

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

PIC Microcontroller and

ARM Cortex core microcontrollers 3. Cortex-M0, M4, M7

University of Dayton. Electrical & Computer Engineering. ECE 536 Microprocessor Applications. Dr. Ralph Barrera. Assignment (4)

DEV-1 HamStack Development Board

Chapter 7. Hardware Implementation Tools

CS-3410 Systems Programming Spring 2013

Transcription:

A Sequence of courses using 8, 16, and 32 bit Microcontroller/DSP Boards Hal Broberg, Indiana University-Purdue University Fort Wayne, broberg@ipfw.edu Abstract: Application programming is important and the ability to program and troubleshoot programs, generally in C is an essential part of many positions for engineers, technologists, and technicians. Instruction in programming microcontrollers (uc) and Digital Signal Processors (DSP) are needed in a baccalaureate EET/CPET program, but fitting an appropriate mix into a curriculum is difficult when limited to 120 credit hours by state mandate. A solution is to use a progression of courses to cover a variety of ucs and a DSP chip and their associated C programming. These courses are not new, but have been gradually upgraded so there is an increasingly more complex sequence of uc s and modern measurement/control methods. The initial, required 8-bit uc course introduces students to assembly language programming but primarily provides a fundamental ability to write and debug C programs used for interfacing. Common input/output devices such as LED s, multiple 7-segment displays, a keypad, an LCD, and a serial/usb interface are covered and used in the labs. The second course provides an introduction to control systems and uses 8 and 16-bit ucs to interface with transducers. The third course is an elective that uses a 32-bit, ARM, M4 uc to interface with devices including a nocontact temperature sensor, an infrared light sensor, a color graphic LCD, a touch sensor, and an 8x8 LED array. The fourth course uses a 16-bit, fixed-point, DSP board to program functions including filtering of audio input from a student s cellphone with the resulting output, to earbuds. Introduction to ucs course: The initial uc course, with C programming as a co-requisite, introduces the fundamentals of assembly language, but is primarily devoted to providing a basic understanding of C programming for applications. There is no assigned textbook, however, a free online book, PIC Microcontrollers 1 is used for some reading assignments. The principal references for the course are the datasheets for the two ucs used in the course 2, 3. The co-requisite programming course uses C: How to Program, by Deitel and Deitel 4 and this text is a reference in the uc course. As a required, Internet based course for students in the 3 rd semester of EET and CPET programs, it features online lectures and a required lab with students demonstrating labs via video. There are three online quizzes in addition to students submitting their programs and answering questions. The labs currently use 8-bit, Microchip PIC16F690 and PIC16F887 ucs, the PICKit 2 programmer, MPLAB X, mpasm assembler, and the XC8 C compiler. PowerPoint audio lectures are used to explain concepts and the specifics of each lab, with Impatica for PowerPoint 5 used to convert the recorded PowerPoint audio files to HTML5 so the lectures are usable by computers, tablets, and smartphones. Initial learning of interfacing and its associated programming needs to begin at a level that is applicable in industry and also easy to learn and understand. Microchip is the largest supplier of 8-bit ucs and its continued growth along with the continued use of 8-bit micros 6,7 have lead me to continue using these ucs which have many capabilities including: software selectable internal

oscillators, multiple timers, synchronous/asynchronous receiver/transmitters for serial I/O, analog comparators, 10-bit ADCs, and Capture-Compare/PWM modules. The Microchip Integrated Development Environment (IDE), known as MPLAB X, its associated assembler, and C compiler are free and readily available to students. The 11 labs and basic information on each are shown in Figure 1. ********** Labs 1-6 use Low Pin Count Board (PIC16F690) and PICKit 2 *********** Lab01: Sequential lighting of LED s: Assembly language program and simulation. Lab02: Rotate right and left using pushbutton input: C program and assembly language program and simulation. ********Labs 3-11 use breadboard circuitry in addition to the above PCB *********** Lab03: ADC input, output on LED s. C program and assembly language program. Lab04: Using a single, 7-segment display and TMR0 for delay: C program and simulation. Lab05: Using a 3-digit, 7 Segment display (Multiplexing) with fixed input: C program. Lab06: ADC input and 3-digit, 7 Segment display output of digital value in decimal: C program. ********* Labs 7-11 use 44-pin Demo Board (PIC16F887) and PICKit2 ************ Lab07: Keypad input, LED output. Use of matrix for keypad and ASCII. C program and simulation. Lab08: Output of Data to LCD: C program. Lab09: Keypad input, LCD output. Multiplexing a Port. C program. Lab10: Math and I/O using standard header files: Using Math.h and StdIO.h. Using sprintf for type conversion from floating point to character. C program. Lab11: PIC-to-PC & PC to PIC Communication using USB/RS232: C program. Figure 1: Labs for Sophomore uc Course Introduction to control systems course: Labs in this sophomore/junior level course are used to introduce 16-bit ucs into the curriculum while supporting the course objectives. The course is designed to introduce students to the fundamentals of analog and digital signal conditioning and provide the physics and electronics background needed to use thermal, mechanical, and optical sensors. The focus of the labs is on signal conditioning and use of transducers for measurement and control. The ucs used are a means to show how modern measurements are made and devices are controlled. This course generally follows the first course, described above, in the curriculum. Thus, it was determined that Microchip ucs would be used so that the same general hardware and software could be used, with the addition of a 16-bit compiler, when needed. Thus, students only need to learn the basic capabilities of the two new chips used in the labs. This is also an Internet course with online lectures and a required lab and each lab is demonstrated by submitting a video in addition to submitting programs and answering questions. The labs currently use Microchip PIC16F684 and PIC24HJ128GP502 ucs. The PICKit 2 programmer is used with the PIC16F684 and the 16-bit Microstick II with the plug-in Microstick Plus is used. The MPLAB X IDE along with XC8, and XC16 C compilers are used in the labs. The PIC16F684 8 was chosen since it has 4, Pulse-Width Modulation (PWM) outputs designed to drive an H-Bridge circuit, but it can also be used as a general purpose uc. The Microstick II 9, with Microstick Plus 10 was chosen to demonstrate use and programming of more complex sensors including a rotary encoder and a capacitive touch sensor. The 10 labs and basic information on each are shown in Figure 2.

********** Labs 1-5 use Low Pin Count Board (PIC16F684) and PICKit 2 *********** Lab01: Introduction to Pulse-Width Modulation Lab02: Use of PWM to control of motor speed using a photocell Lab03: Use of PWM for measurement and control using an IC temperature sensor Lab04: Use of PWM for measurement and control using an NTC thermistor Lab05: Use of PWM for measurement and control using a unipolar switching and a linear output Hall effect transducer ********** Labs 6-10 use the Microstick II and Microstick Plus *********** Lab06: Introduction to the Microstick II and the PIC24HJ128GP502, 16-bit uc Lab07: Introduction to the Microstick Plus Lab08: Measurement using a Rotary Encoder Lab09: Using a UART for communication and control (USB Serial Port Emulation) Lab10: Measurement using a Capacitive Touch Sensor Figure 2: Labs in the Introduction to Controls Course Advanced microprocessors course: A junior/senior level, elective course in advanced microprocessors is taken by both EET and CPET students and is focused on the labs so that students are able to move up to the more complex, Texas Instruments (TI), 32-bit, ARM Cortex M4 uc. The complexity of the processor, software, and labs can be inferred from the following extensively used reference documents: tm4c1294ncpdt Data Sheet 11-1891 pages, TivaWare Peripheral Driver Library User's Guide 12-706 pages, Connected Launchpad Workbook 13-336 pages. Some of the capabilities of the chip compared to others used in the courses are shown in Table 1. Note that the functions of most General Purpose Input Output (GPIO) pins are multiplexed among different functions in all of the chips. CHIP Bits Max MHz GPIO pins- Max Flash kb Data SRAM/ EEPROM Bytes Tmrs 8,16, bit Interrupts SSI or SPI I2C UART ADC Bits/ Inputs 690 8 20 18 4 256 2, 1 16 1 1 1 10/12 887 8 20 36 8 368 2, 1 19 1 1 1 10/14 684 8 20 12 2 128/256 1, 1 11 0 0 0 10/8 HJ128 16 20 21 128 8 kb 5-16bit 117 2 1 2 12/13 2-32bit 5505DSP 16 150 26 256 64kB 3-32bit 26 1 1 1 10/1 ARMM4 32 120 90 1024 256/6 kb 8,32bit 114 4 10 8 12/20 Table 1: Chip Characteristics The TI, TM4C1294XL Connected LaunchPad 14 hardware, along with TI Code Composer Studio (CCS)-V6 and TivaWare software are used in the course along with labs from a TI workshop Creating IoT Solutions with the TM4C1294XL Connected Launchpad 15. Videos from this TI workshop are also helpful in understanding the TI ARM Cortex M4 and the TI software. TivaWare files are written in C and provide an extensive suite of software tools which simplify

and speed development. The complete TivaWare for C Series software suite includes: royaltyfree libraries, kit-and peripheral-specific code examples, release notes and related documentation. TivaWare Application Programming Interface (API) functions are well explained in the applicable User s Guide 12. Students completing the course understand the complexity of software for a 32-bit uc and have the ability to use CCS and TivaWare to program TI, M4 uc s in C. The 12 labs use the M4 at 120 MHz and basic information on each lab is shown in Figure 3. Lab01: Introduction and Internet control and temperature measurement and display using Exosite 16. This is a complex demonstration of the abilities of the board and the Internet measurement/control site, Exosite. Lab02: Introduction to Code Composer Studio, TivaWare, and the Flash Programmer (blinking LED s) Lab03: Introduction to TivaWare and I/O available on the Board Lab04: Using Ethernet between board and computer (review of html and javascript files) Lab05: Using Timers and Interrupts and connection with external Breadboard Lab06: Using 3 external potentiometers and the ADC, with a graphical display using Code Composer Studio. Lab07: Using PWM with external, breadboard connections. Lab08: Using the Serial Peripheral Interface (SPI) with the Olimax 8x8 LED Array (Boosterpack Board is used on a breadboard and connected to the Launchpad). Creation of serial and moving displays on the array. Lab09: Using the I2C serial interface with Putty and the SensorHub Boosterpack to measure and visualize temperature using a remote temperature sensor. Lab10: Using the Universal Asynchronous Receiver/Transmitter interface to communicate with Putty Lab11: Using the Graphics Library with the KenTec Capacitive TouchScreen, TFT, LCD Display (a plug-in Boosterpack). Displaying photos and using the touchscreen. Lab12: Student choice: More KenTec Capacitive TouchScreen and Graphics Library OR Low-Power Modes on the M4, including current measurement. Figure 3: Labs using TM4C1294XL Connected LaunchPad Board Digital Signal Processing (DSP) course This junior/senior course is required for EET students and follows a required Analog Signal Processing course. Both courses use Matlab extensively but the DSP course uses a TI DSP board for 6 of its labs. Code Composer Studio (CCS) and the TMS320C5505 ezdsp USB Stick 17 are used for these labs. The TMS320C5505 is a fixed-point DSP chip that operates at 100 MHz and the board enables students to visualize the result of using z-transforms and difference equations and implement them using C. Students are able to hear the result of using various FIR and IIR digital filters, to filter speech and music. The 6 labs using the ezdsp USB Stick and basic information on each are shown in Figure 4.

Lab01: Introduction to Code Composer Studio. Use ezdsp USB Stick to blink LED, and produce 1 khz tone which is heard using students earbuds. Lab02: Playback music through DSP board and change amplification using C Lab03: Listen to music and 8 khz and 48 khz sampling rate. Audio demonstration of the sampling theorem. Lab04: Creation of Echo and Reverberation using z-transforms and C and audio demonstration of these effects using a Steve Jobs speech from YouTube. Lab05: Creation of Sine Waves using a look-up table, recursive equation and Taylor series with audio demonstration Lab06: Creation of Lowpass, Highpass, Bandpass, and Bandstop FIR filters and audio demonstration of each using filtered music. Figure 4: Labs using the ezdsp USB Stick Conclusion: The development of an ability to understand, design the interfaces, debug, and write C code for ucs is important for EET and CPET students who will work as engineers, technologists, and technicians in industry. The courses and labs outlined here provide knowledge in application of ucs, which is fundamental to many modern applications. Retaining current relevance in the uc sequence requires frequent updating of devices and introduction of new components and capabilities. Two of the ucs discussed above have been introduced in the last year and new or upgraded devices are generally introduced annually. This is a change-intensive sequence of courses and the instructor(s) must constantly upgrade their knowledge and skills. Bibliography: 1. MikroElectronica: http://www.mikroe.com/products/view/11/book-pic-microcontrollers 2. 16F690 datasheet: http://ww1.microchip.com/downloads/en/devicedoc/41262c.pdf 3. 16F887 datasheet: http://ww1.microchip.com/downloads/en/devicedoc/41291d.pdf 4. C: How to Program, Deitel and Deitel, Prentice-Hall, 7/e, 2013 5. Impatica for PowerPoint: http://www.impatica.com/ 6. 8-bits is dead: http://www.ganssle.com/rants/8bitsisdead.htm 7. Is 8-bits dying: http://www.embedded.com/electronics-blogs/break-points/4389890/is-8- bits-dying- 8. 16F684 datasheet: http://ww1.microchip.com/downloads/en/devicedoc/41202f-print.pdf 9. Microstick II: http://ww1.microchip.com/downloads/en/devicedoc/51951b.pdf 10. Microstick Plus: http://en.microstickplus.com/ 11. tm4c1294ncpt data sheet: http://www.ti.com/lit/ds/symlink/tm4c1294ncpdt.pdf 12. TivaWare Peripheral Driver Library User's Guide: http://www.ti.com/lit/ug/spmu298a/spmu298a.pdf 13. CLP_Workbook: http://softwaredl.ti.com/trainingtto/trainingtto_public_sw/tiva_clp/clp_workbook.pdf

14. TM4C1294XL Connected LaunchPad: http://www.ti.com/tool/ek-tm4c1294xl 15. TI Workshop: http://processors.wiki.ti.com/index.php/creating_iot_solutions_with_the_tm4c1294x L_Connected_LaunchPad_Workshop 16. Exosite: http://exosite.com/ 17. C5505 ezdsp Stick: http://www.ti.com/tool/tmdx5505ezdsp