Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project

Size: px
Start display at page:

Download "Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project"

Transcription

1 Rochester Institute of Technology CMPE 663/EEEE 663 Graduate Student Project Graduate Student Project: Extend the USART Demo project to include blocking and non-blocking (interrupt driven) versions of USART_Read, USART_Write and USART_Printf. Demonstrate the use of both versions of USART_Printf in a running system in the presence of varying amounts of simulated work. NOTE this is an individual project that is required for all students enrolled in CMPE 663 or EEEE 663. Although you may get assistance and guidance, the work you submit must be your own. Discussion: A common technique used in debugging embedded projects is to use print statements to display variables to a console in real time as the program is running. Printing is fast, easy, and sometimes less cumbersome than setting breakpoints and single stepping through code. The first UART project provided a simple USART_Read and USART_Write API that connected to a console application over USB and was used for just this purpose. While the UART Demo project allowed us to demonstrate the STM32 microprocessor, in practice, this would not be very useful implementation because of its blocking nature. Task 1: There are two issues with the demo USART_Write function. First, the software using this function must explicitly find the length of the string prior to calling the USART_Write function. Second, there was no method provided for creating a formatted string similar to printf. Task 1 is to create a USART_Printf function to address these issues. Use one of the C library vprintf family of functions to do the formatting into a buffer. Then send that buffer using the USART. Be careful to avoid overflowing the buffer s array size. Task 2: Task 2 is to create three non-blocking functions that mirror the blocking versions. The USART_Read function has two issues: First, the USART_Read function blocks as it waits for the user to type a character and then reads and returns that character. If the user is not ready to type a character, the USART_Read function just waits and waits. Second, if a user types multiple characters while the main program is not actively polling the USART receive register, those characters will be lost. The USART_Write function has the issue that it writes a number of bytes to the USART transmit register, waiting after each write for that byte to be serialized and transmitted. The

2 function does not return until the last byte has been written. Almost all of the time spent in the USART_Write function is spent waiting for the USART transmit register to empty. Since your USART_Printf function probably uses the blocking USART_Write function it will have the same issue as the USART_Write function. Create these three non-blocking functions using the following function prototypes: // nbread returns the received character or -1 if nothing received. // You may want to pull the character from a read buffer that is managed // by the USART and filled at RXNE interrupt time. // Note: the return is of type int to accommodate a -1 return. int USART_nbRead (USART_TypeDef * USARTx); // Same signature as USART_Write // When invoked, the buffer will be copied to a write buffer maintained // by the USART class, and emptied at TXE interrupt time. void USART_nbWrite(USART_TypeDef * USARTx, uint8_t *buffer, uint32_t nbytes); // Same signature as USART_Printf // Note: the use of the vararg... designator. // This is the C designation of a variable length parameter list. void USART_nbPrintf(USART_TypeDef * USARTx, const char *fmt,...); The second task will require the enabling and handling of two USART interrupts (see the User s Manual and the Zhu textbook for details): RXNE received data register RDR is not empty (you need to buffer the incoming byte). TxE transmit data register TDR is empty (you need to load the TDR with the next byte to transmit). What happens when a character is sent to the STM32 chip? It is de-serialized in the RX Shift Register. When a full byte has been received, it is copied to the RDR register and the RXNE interrupt is fired. An appropriately configured IRQHandler() will catch the interrupt, see the RXNE bit was set, read the character from the RDR register (which automatically clears the RXNE bit), queue the character in a read queue for USART_nbRead(), and return. A similar set of actions happens when the STM32 transmits a character. The sequence is started by enabling the TXE interrupt and writing a byte to the TDR register. The hardware copies this to the TX Shift Register and the TX pin begins transmitting the data. When the last bit has been transmitted the TXE fires. The IRQHandler() will catch this interrupt, and pull the next byte from the transmit queue to write to the TDR register (clearing the TXE bit). When there are no more bytes to be transmitted, the TXE interrupt may be disabled.

3 Task 3: You will demonstrate the differences between the blocking and non-blocking versions of code you have written in a small simulation that uses both. Create a test using the following pseudocode: Each time through the outer loop you will simulate work for delay milliseconds. You may program up a timer for this timekeeping activity. Then, not more than every 10 milliseconds, print 100 characters (taking about 100 msec of print time). Keep track of the number lines printed, the number of times we loop for each line printed, and the total times through the loop. Run the test for both blocking and non-blocking versions of your USART Printf(), and do this for simulated work times of 0 ms, 50 ms, and 100 ms. for (1 second) { // do some simulated work for 'delay' milliseconds simulate_work(delay); // blocks for delay milliseconds // not more than every 10 milliseconds, print something (useful when delay=0) if(more than 10 ms since last Printf) { // print about 100 chars using either blocking or non-blocking Printf() char *fmt = "%5d%37d %50d\r\n"; if(is_blocking) USART_Printf(USART2, fmt, lines++, loops, millis); else USART_nbPrintf(USART2, fmt, lines++, loops, millis); // update some state variables total_loops += loops; // keep track of loop count over 1 second loops = 0; // reset loop count between prints end += 10; // wait at least 10 ms to print again } loops++;

4 } // Note: when using interrupts, you may need to wait until ring buffer has emptied // using code like the following pseudo code to wait for the ring buffer to empty. while( ring buffer not empty ) ; // Print out final tally for this test USART_Printf(USART2, "Finished printout at %d msec, lines=%d, total_loops=%d\r\n", millis, lines, total_loops); For a 5% bonus in the transmit ISR write one * character to the USART TDR when the test timer has expired. A Note on UART Timing: As you might guess, a 9600 N81 serial connection will transmit data at 9600 bits per second, with 1 start and 1 stop bit used for each byte for synchronization. So you would expect to send 10 bits over the wire for every byte transmitted. Thus each byte should transmit at a rate of 1 ssssssssssss 10 bbiiiiii 1.04 mmmm = 9600 bbbbbbbb 1 bbbbbbbb bbbbbbbb This is easily confirmed by a screen capture from a logic analyzer the time between cursors A1 and A1 is indeed 1.04ms. In the figure, the blue box tells us the letter being transmitted, as deduced by the serial protocol analyzer which looks at the data line. The protocol analyzer samples the data at each white dot. Thus for the 5, the data bits are It is standard for the LSB to be transmitted first (the UART takes care of this for you). Thus reversing the bit order, the 5 = 0b = 0x35. Report: In your report for this specific project you must include the following: For the blocking case you must include a timing diagram showing when each line is printed. For the non-blocking case you must include two timing diagrams. One indicates the foreground activity when data is buffered and simulated work time and a second showing lines being written to the UART. In addition to the demonstration of your project, a brief report is required to illustrate your design. List the trade-offs and assumptions of your implementation. Include printouts for each run of the test, making sure you label what is being tested (for simplicity and integrity, you may want the program to print this for you). Your source code must be included in your electronic submission. This project will be demonstrated in class. The project will not be considered complete

5 without a demo, and a complete electronic report with screen captures and source code in the dropbox. Grading Criteria: - Program Operation - 50% - Program Design - 15% - Source Code Structure and quality - 10% - Report Content including a discussion of the results - 25% - Total credit assignment (e.g. if you only complete Part 1 your maximum score is 30%): Part 1 30% Part 2 40% Part 3 30% Part 3 bonus of 5% as described in Part 3.

Emulating an asynchronous serial interface (USART) via software routines

Emulating an asynchronous serial interface (USART) via software routines Microcontrollers ApNote AP083101 or æ additional file AP083101.EXE available Emulating an asynchronous serial interface (USART) via software routines Abstract: The solution presented in this paper and

More information

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI Laboratory Lesson 7: Universal Serial Asynchronous Receiver Transmitter (USART) Prof. Luca Benini

More information

Embedded Systems and Software

Embedded Systems and Software Embedded Systems and Software Serial Communication Serial Communication, Slide 1 Lab 5 Administrative Students should start working on this LCD issues Caution on using Reset Line on AVR Project Posted

More information

MCS-51 Serial Port A T 8 9 C 5 2 1

MCS-51 Serial Port A T 8 9 C 5 2 1 MCS-51 Serial Port AT89C52 1 Introduction to Serial Communications Serial vs. Parallel transfer of data Simplex, Duplex and half-duplex modes Synchronous, Asynchronous UART Universal Asynchronous Receiver/Transmitter.

More information

EE 354 November 13, 2017 ARM UART Notes

EE 354 November 13, 2017 ARM UART Notes EE 354 November 13, 2017 ARM UART Notes For serial communications you should be familiar with the following terms: UART/USART Baud rate Synchronous/Asynchronous communication Half-Duplex/Full-Duplex The

More information

SerIODriver.c Prog2.c SerIODriver.c. Figure 1: Program 2 Data Flow

SerIODriver.c Prog2.c SerIODriver.c. Figure 1: Program 2 Data Flow UNIVERSITY OF MASSACHUSETTS LOWELL Department of Electrical and Computer Engineering Program 2 EECE.4720 / EECE.5720 Embedded Real Time Systems Spring 2018 Polled I/O and Cooperative Multitasking The purpose

More information

CprE 288 Introduction to Embedded Systems Exam 1 Review. 1

CprE 288 Introduction to Embedded Systems Exam 1 Review.  1 CprE 288 Introduction to Embedded Systems Exam 1 Review http://class.ece.iastate.edu/cpre288 1 Overview of Today s Lecture Announcements Exam 1 Review http://class.ece.iastate.edu/cpre288 2 Announcements

More information

School of Computer Science Faculty of Engineering and Computer Science Student ID Number. Lab Cover Page. Lab Date and Time:

School of Computer Science Faculty of Engineering and Computer Science Student ID Number. Lab Cover Page. Lab Date and Time: Student Information First Name School of Computer Science Faculty of Engineering and Computer Science Last Name Student ID Number Lab Cover Page Please complete all fields: Course Name: Structure and Application

More information

Learn how to communicate

Learn how to communicate USART 1 Learn how to communicate Programmed I/O (Software Polling) Interrupt Driven I/O Direct Memory Access (DMA) 2 Programmed I/O (Polling) Processor must read and check I/O ready bits for proper value

More information

Embedded Systems and Software. Serial Communication

Embedded Systems and Software. Serial Communication Embedded Systems and Software Serial Communication Slide 1 Using RESET Pin on AVRs Normally RESET, but can be configured via fuse setting to be general-purpose I/O Slide 2 Disabling RESET Pin on AVRs Normally

More information

USB BF70x Bulk Library v.1.1 Users Guide Users Guide Revision 1.1. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC

USB BF70x Bulk Library v.1.1 Users Guide Users Guide Revision 1.1. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC USB BF70x Bulk Library v.1.1 Users Guide Users Guide Revision 1.1 For Use With Analog Devices ADSP-BF70x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Lab Test III There are 2 longer programming problems in this test. There

More information

USB BF70x Audio 1.0 Library v.1.2 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors

USB BF70x Audio 1.0 Library v.1.2 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors USB BF70x Audio 1.0 Library v.1.2 Users Guide Users Guide Revision 1.3 For Use With Analog Devices ADSP-BF70x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz II

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz II Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Quiz II There are 5 questions in this quiz. There are 9 pages in this quiz

More information

Global GPS NMEA over I²C Software Guide V 1.2

Global GPS NMEA over I²C Software Guide V 1.2 Global GPS NMEA over I²C Software Guide V 1.2 Steve Chen 1 Version History History Date Rev. Author Description 2014/10/01 1.0 Stanly Lin First Release 2015/07/23 1.1 Steve Chen Modify 1.slave address

More information

Interfacing a Hyper Terminal to the Flight 86 Kit

Interfacing a Hyper Terminal to the Flight 86 Kit Experiment 6 Interfacing a Hyper Terminal to the Flight 86 Kit Objective The aim of this lab experiment is to interface a Hyper Terminal to 8086 processor by programming the 8251 USART. Equipment Flight

More information

Serial Communications

Serial Communications April 2014 7 Serial Communications Objectives - To be familiar with the USART (RS-232) protocol. - To be able to transfer data from PIC-PC, PC-PIC and PIC-PIC. - To test serial communications with virtual

More information

Using FlexIO to emulate communications and timing peripherals

Using FlexIO to emulate communications and timing peripherals NXP Semiconductors Document Number: AN12174 Application Note Rev. 0, 06/2018 Using FlexIO to emulate communications and timing peripherals 1. Introduction The FlexIO is a new on-chip peripheral available

More information

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of

Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of Hello, and welcome to this presentation of the STM32 Low Power Universal Asynchronous Receiver/Transmitter interface. It covers the main features of this interface, which is widely used for serial communications.

More information

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

ECE 353 Lab 4. General MIDI Explorer. Professor Daniel Holcomb Fall 2015 ECE 353 Lab 4 General MIDI Explorer Professor Daniel Holcomb Fall 2015 Where are we in Course Lab 0 Cache Simulator in C C programming, data structures Cache architecture and analysis Lab 1 Heat Flow Modeling

More information

SPI Universal Serial Communication Interface SPI Mode

SPI Universal Serial Communication Interface SPI Mode SPI Universal Serial Communication Interface SPI Mode Serial Peripheral Interface (SPI) is not really a protocol, but more of a general idea. It s the bare-minimum way to transfer a lot of data between

More information

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Lab Test III Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Lab Test III There are 2 longer programming problems in this test. There

More information

CSCE 236 Embedded Systems, Fall 2017 Homework 5

CSCE 236 Embedded Systems, Fall 2017 Homework 5 CSCE 236 Embedded Systems, Fall 2017 Homework 5 Started: Tuesday, November 7th, 2017 Due: Friday, November 17th, 2017 (5pm) Instructions: This homework is an individual assignment, collaboration is not

More information

Microcontroller basics

Microcontroller basics FYS3240 PC-based instrumentation and microcontrollers Microcontroller basics Spring 2017 Lecture #4 Bekkeng, 30.01.2017 Lab: AVR Studio Microcontrollers can be programmed using Assembly or C language In

More information

Project #1 Exceptions and Simple System Calls

Project #1 Exceptions and Simple System Calls Project #1 Exceptions and Simple System Calls Introduction to Operating Systems Assigned: January 21, 2004 CSE421 Due: February 17, 2004 11:59:59 PM The first project is designed to further your understanding

More information

University of Texas at El Paso Electrical and Computer Engineering Department. EE 3176 Laboratory for Microprocessors I.

University of Texas at El Paso Electrical and Computer Engineering Department. EE 3176 Laboratory for Microprocessors I. University of Texas at El Paso Electrical and Computer Engineering Department EE 3176 Laboratory for Microprocessors I Fall 2016 LAB 08 UART Communication Goals: Learn about UART Communication and the

More information

Faculty of Engineering and Information Technology Embedded Software. Lab 1 Tower Serial Communications

Faculty of Engineering and Information Technology Embedded Software. Lab 1 Tower Serial Communications Faculty of Engineering and Information Technology Subject: 48434 Embedded Software Assessment Number: 1 Assessment Title: Lab 1 Tower Serial Communications Tutorial Group: Students Name(s) and Number(s)

More information

Emulating Dual SPI Using FlexIO

Emulating Dual SPI Using FlexIO Freescale Semiconductor, Inc. Document Number: AN5242 Application Note Rev. 0, 01/2016 Emulating Dual SPI Using FlexIO 1. Introduction This application note discusses one example of how to use FlexIO module

More information

ECE 362 Experiment 4: Interrupts

ECE 362 Experiment 4: Interrupts ECE 362 Experiment 4: Interrupts 1.0 Introduction Microprocessors consistently follow a straight sequence of instructions, and you have likely only worked with this kind of programming until now. In this

More information

Faculty of Engineering and Information Technology Embedded Software. Lab 3 Interrupts and Timers

Faculty of Engineering and Information Technology Embedded Software. Lab 3 Interrupts and Timers Faculty of Engineering and Information Technology Subject: 48434 Embedded Software Assessment Number: 3 Assessment Title: Lab 3 Interrupts and Timers Tutorial Group: Students Name(s) and Number(s) Student

More information

Emulating an asynchronous serial interface (USART) via the on-chip synchronous serial interface (SSC)

Emulating an asynchronous serial interface (USART) via the on-chip synchronous serial interface (SSC) Microcontrollers ApNote AP083201 or æ additional file AP083201.EXE available Emulating an asynchronous serial interface (USART) via the on-chip synchronous serial interface (SSC) Abstract: The solution

More information

Project Final Report Internet Ready Refrigerator Inventory Control System

Project Final Report Internet Ready Refrigerator Inventory Control System Project Final Report April 25, 2006 Dustin Graves, dgraves@gwu.edu Project Abstract Appliance vendors have started producing internet enabled refrigerators which allow users to keep track of refrigerator

More information

Lab 6 RS-232 Communication The following routines are provided for devices with a single USART peripheral:

Lab 6 RS-232 Communication The following routines are provided for devices with a single USART peripheral: Still More Lab 6 Considerations; Embedded System Power Issues; Project Information Lab 6 RS-232 Communication The following routines are provided for devices with a single USART peripheral: BusyUSART CloseUSART

More information

Lab 3a: Scheduling Tasks with uvision and RTX

Lab 3a: Scheduling Tasks with uvision and RTX COE718: Embedded Systems Design Lab 3a: Scheduling Tasks with uvision and RTX 1. Objectives The purpose of this lab is to lab is to introduce students to uvision and ARM Cortex-M3's various RTX based Real-Time

More information

8051 Timers and Serial Port

8051 Timers and Serial Port 8051 Timers and Serial Port EE4380 Fall 2001 Class 10 Pari vallal Kannan Center for Integrated Circuits and Systems University of Texas at Dallas Timer: Mode 1 Operation (recap) 16 bit counter. Load the

More information

ADC: Analog to Digital Conversion

ADC: Analog to Digital Conversion ECE3411 Fall 2015 Lecture 5b. ADC: Analog to Digital Conversion Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut Email: {vandijk, syed.haider}@engr.uconn.edu

More information

EXPERIMENT 8: Introduction to Universal Serial Asynchronous Receive Transmit (USART)

EXPERIMENT 8: Introduction to Universal Serial Asynchronous Receive Transmit (USART) EXPERIMENT 8: Introduction to Universal Serial Asynchronous Receive Transmit (USART) Objective: Introduction To understand and apply USART command for sending and receiving data Universal Serial Asynchronous

More information

Embedded Software TI2726 B. 4. Interrupts. Koen Langendoen. Embedded Software Group

Embedded Software TI2726 B. 4. Interrupts. Koen Langendoen. Embedded Software Group Embedded Software 4. Interrupts TI2726 B Koen Langendoen Embedded Software Group What is an Interrupt? Asynchronous signal from hardware Synchronous signal from software Indicates the need for attention

More information

NCSU - ECE 306- Exam 2 March 27, 2003

NCSU - ECE 306- Exam 2 March 27, 2003 NCSU - ECE 306- Exam 2 March 27, 2003 Name: User ID Question 1-15 16-22 23-Algo 23-code Total Score /45 /60 /15 /30 /150 You are permitted 75 minutes to take this test, no more. This is an open book/open

More information

Interrupts and Serial Communication on the PIC18F8520

Interrupts and Serial Communication on the PIC18F8520 Interrupts and Serial Communication on the PIC18F8520 Kyle Persohn COEN 4720 Fall 2011 Marquette University 6 October 2011 Outline 1 Background Serial Communication PIC18 Interrupt System 2 Customizing

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 29, 2018 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab

By the end of Class. Outline. Homework 5. C8051F020 Block Diagram (pg 18) Pseudo-code for Lab 1-2 due as part of prelab By the end of Class Pseudo-code for Lab 1-2 due as part of prelab Homework #5 on website due before next class Outline Introduce Lab 1-2 Counting Timers on C8051 Interrupts Laboratory Worksheet #05 Copy

More information

USART. USART stands for Universal Synchronous Asynchronous Receiver Transmitter. Full-duplex NRZ asynchronous serial data transmission

USART. USART stands for Universal Synchronous Asynchronous Receiver Transmitter. Full-duplex NRZ asynchronous serial data transmission USART 1 USART USART stands for Universal Synchronous Asynchronous Receiver Transmitter Full-duplex NRZ asynchronous serial data transmission Offer wide ranges of baud rate 2 Serial communication Can support

More information

Amarjeet Singh. January 30, 2012

Amarjeet Singh. January 30, 2012 Amarjeet Singh January 30, 2012 Website updated - https://sites.google.com/a/iiitd.ac.in/emsys2012/ Lecture slides, audio from last class Assignment-2 How many of you have already finished it? Final deadline

More information

4Serial SIK BINDER //77

4Serial SIK BINDER //77 4Serial SIK BINDER //77 SIK BINDER //78 Serial Communication Serial is used to communicate between your computer and the RedBoard as well as between RedBoard boards and other devices. Serial uses a serial

More information

Newbie s Guide to AVR Interrupts

Newbie s Guide to AVR Interrupts Newbie s Guide to AVR Interrupts Dean Camera March 15, 2015 ********** Text Dean Camera, 2013. All rights reserved. This document may be freely distributed without payment to the author, provided that

More information

An SPI interface for the 65(C)02 family of microprocessors

An SPI interface for the 65(C)02 family of microprocessors Rev 4/B Dec 30, 2011 65SPI/B An SPI interface for the 65(C)02 family of microprocessors This device was created to provide a basic SPI interface for the 65xx family of microprocessors. Currently, the only

More information

In Class Assignment 2

In Class Assignment 2 In Class Assignment 2 Name: UMBC ID: Academic Integrity Statement: "Integrity of scholarship is essential for an academic community. The University expects that students will honor this. By signing this,

More information

Universal Asynchronous Receiver / Transmitter (UART)

Universal Asynchronous Receiver / Transmitter (UART) Universal Asynchronous Receiver / Transmitter (UART) MSP432 UART 2 tj MSP432 UART ARM (AMBA Compliant) Asynchronous operation 7/8 bit transmission Master/Slave LSB/MSB first Separate RX/TX registers 4

More information

Lesson I2C. I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver

Lesson I2C. I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver Lesson I2C I²C (Inter-Integrated Circuit) Lab Assignment: I2C Slave Driver I²C (Inter-Integrated Circuit) What is I 2 C I2C is pronounced "eye-squared see". It is also known as "TWI" because of the initial

More information

Maxim > Design Support > Technical Documents > Application Notes > Microcontrollers > APP 4465

Maxim > Design Support > Technical Documents > Application Notes > Microcontrollers > APP 4465 Maxim > Design Support > Technical Documents > Application Notes > Microcontrollers > APP 4465 Keywords: MAXQ, MAXQ610, UART, USART, serial, serial port APPLICATION NOTE 4465 Using the Serial Port on the

More information

Dotstack Porting Guide.

Dotstack Porting Guide. dotstack TM Dotstack Porting Guide. dotstack Bluetooth stack is a C library and several external interfaces that needs to be implemented in the integration layer to run the stack on a concrete platform.

More information

ECGR 4101/5101, Fall 2015: Lab 7 Digital Oscilloscope

ECGR 4101/5101, Fall 2015: Lab 7 Digital Oscilloscope ECGR 4101/5101, Fall 2015: Lab 7 Digital Oscilloscope Objective: Assignment: In this lab, we will create a digital oscilloscope using the RX63N s timers and the ADC. Analog voltage values ranging from

More information

SquareWear Programming Reference 1.0 Oct 10, 2012

SquareWear Programming Reference 1.0 Oct 10, 2012 Content: 1. Overview 2. Basic Data Types 3. Pin Functions 4. main() and initsquarewear() 5. Digital Input/Output 6. Analog Input/PWM Output 7. Timing, Delay, Reset, and Sleep 8. USB Serial Functions 9.

More information

Design UART Loopback with Interrupts

Design UART Loopback with Interrupts Once the E is displayed, will the 0 reappear if you return the DIP switch to its OFF position and re-establish the loopback path? Usually not. When you break the loopback path, it will most likely truncate

More information

Interrupts Peter Rounce - room 6.18

Interrupts Peter Rounce - room 6.18 Interrupts Peter Rounce - room 6.18 P.Rounce@cs.ucl.ac.uk 20/11/2006 1001 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has

More information

CODE TIME TECHNOLOGIES. Abassi RTOS. I2C Support

CODE TIME TECHNOLOGIES. Abassi RTOS. I2C Support CODE TIME TECHNOLOGIES Abassi RTOS I2C Support Copyright Information This document is copyright Code Time Technologies Inc. 2015-2018 All rights reserved. No part of this document may be reproduced or

More information

Informatics for industrial applications

Informatics for industrial applications Informatics for industrial applications Lecture 5 - Peripherals: USART and DMA Martino Migliavacca martino.migliavacca@gmail.com October 20, 2011 Outline 1 Introduction to USART Introduction Synchronous

More information

Engineer-to-Engineer Note

Engineer-to-Engineer Note Engineer-to-Engineer Note EE-391 Technical notes on using Analog Devices products and development tools Visit our Web resources http://www.analog.com/ee-notes and http://www.analog.com/processors or e-mail

More information

Using the Z8051 MCU s USI Peripheral as an SPI Interface

Using the Z8051 MCU s USI Peripheral as an SPI Interface Using the Z8051 MCU s USI Peripheral as an SPI Interface AN035901-0513 Abstract This document describes how to configure Zilog s Z8051 Universal Serial Interface (USI) peripheral to operate as Serial Peripheral

More information

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features

Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features Hello, and welcome to this presentation of the STM32 Universal Synchronous/Asynchronous Receiver/Transmitter Interface. It covers the main features of this USART interface, which is widely used for serial

More information

CoE3DJ4 Digital Systems Design. Chapter 5: Serial Port Operation

CoE3DJ4 Digital Systems Design. Chapter 5: Serial Port Operation CoE3DJ4 Digital Systems Design Chapter 5: Serial Port Operation Serial port 8051 includes an on-chip serial port Hardware access to the port is through TXD and RXD (Port 3 bits 1 and 0) Serial port is

More information

AN Multifunction Serial Interface of FM MCU. Contents. 1 Introduction

AN Multifunction Serial Interface of FM MCU. Contents. 1 Introduction AN99218 Author: Edison Zhang Associated Part Family: FM0+, FM3, FM4 Associated Code Examples: None Related Application Notes: None AN99218 explains the various modes of the multifunction serial (MFS) interface.

More information

Using printf with an AVR

Using printf with an AVR Using printf with an AVR Based on : http://efundies.com/avr/avr_printf.htm Required Functions You should keep all of the functions that you need from the previous guide: usart_init() usart_getchar() usart_purchar()

More information

An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal)

An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal) An Interrupt is either a Hardware generated CALL (externally derived from a hardware signal) OR A Software-generated CALL (internally derived from the execution of an instruction or by some other internal

More information

UART (Universal Asynchronous Receiver-Transmitter)

UART (Universal Asynchronous Receiver-Transmitter) UART (Universal Asynchronous Receiver-Transmitter) Objective The objective of this lesson is to understand UART, and use two boards and setup UART communication between them. UART Figure 1. UART connection

More information

Lab 4 - Asynchronous Serial Communications

Lab 4 - Asynchronous Serial Communications Lab 4 - Asynchronous Serial Communications Part 1 - Software Loopback In serial communications one of the important tools we have that allows us to verify the communications channel is working properly

More information

Lab Overview. Lab Details. ECEN 4613/5613 Embedded System Design Week #7 Spring 2005 Lab #4 2/23/2005

Lab Overview. Lab Details. ECEN 4613/5613 Embedded System Design Week #7 Spring 2005 Lab #4 2/23/2005 ECEN 4613/5613 Embedded System Design Week #7 Spring 2005 Lab #4 2/23/2005 Lab Overview In this lab assignment, you will do the following: Add a serial EEPROM and an LCD to the hardware developed in Labs

More information

Embedded Programming with ARM Cortex-M3 Basic Experiments 1

Embedded Programming with ARM Cortex-M3 Basic Experiments 1 Embedded Programming with ARM Cortex-M3 Basic Experiments 1 Alan Xiao, Ph.D Handheld Scientific, Inc. qiwei@handheldsci.com Today s Topics Basics (with the Discovery board): 1. General Input/Output (GPIO)

More information

VORAGO VA108x0 I 2 C programming application note

VORAGO VA108x0 I 2 C programming application note AN1208 VORAGO VA108x0 I 2 C programming application note MARCH 14, 2017 Version 1.1 VA10800/VA10820 Abstract There are hundreds of peripheral devices utilizing the I 2 C protocol. Most of these require

More information

Serial Communications

Serial Communications 1 Serial Interfaces 2 Embedded systems often use a serial interface to communicate with other devices. Serial Communications Serial implies that it sends or receives one bit at a time. Serial Interfaces

More information

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14

CS 134. Operating Systems. April 8, 2013 Lecture 20. Input/Output. Instructor: Neil Rhodes. Monday, April 7, 14 CS 134 Operating Systems April 8, 2013 Lecture 20 Input/Output Instructor: Neil Rhodes Hardware How hardware works Operating system layer What the kernel does API What the programmer does Overview 2 kinds

More information

Lab 3b: Scheduling Multithreaded Applications with RTX & uvision

Lab 3b: Scheduling Multithreaded Applications with RTX & uvision COE718: Embedded System Design Lab 3b: Scheduling Multithreaded Applications with RTX & uvision 1. Objectives The purpose of this lab is to introduce students to RTX based multithreaded applications using

More information

PS Telematik-Projekt: Wireless Embedded Systems

PS Telematik-Projekt: Wireless Embedded Systems 19589 - PS Telematik-Projekt: Wireless Embedded Systems First Steps Bastian Blywis, Dr. Achim Liers Department of Mathematics and Computer Science Institute of Computer Science 08. October, 2008 Institute

More information

Experiment 3. Interrupts. Hazem Selmi, Ahmad Khayyat

Experiment 3. Interrupts. Hazem Selmi, Ahmad Khayyat Experiment 3 Interrupts Hazem Selmi, Ahmad Khayyat Version 162, 24 February 2017 Table of Contents 1. Objectives........................................................................................

More information

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware

CSE 120. Overview. July 27, Day 8 Input/Output. Instructor: Neil Rhodes. Hardware. Hardware. Hardware CSE 120 July 27, 2006 Day 8 Input/Output Instructor: Neil Rhodes How hardware works Operating Systems Layer What the kernel does API What the programmer does Overview 2 Kinds Block devices: read/write

More information

17. I 2 C communication channel

17. I 2 C communication channel 17. I 2 C communication channel Sometimes sensors are distant to the microcontroller. In such case it might be impractical to send analog signal from the sensor to the ADC included in the microcontroller

More information

Laboratory 5 Communication Interfaces

Laboratory 5 Communication Interfaces Laboratory 5 Communication Interfaces Embedded electronics refers to the interconnection of circuits (micro-processors or other integrated circuits) with the goal of creating a unified system. In order

More information

BLE 1.4 SPI Driver Design Version 1.x (Draft)

BLE 1.4 SPI Driver Design Version 1.x (Draft) BLE 1.4 SPI Driver Design Version 1.x (Draft) Document Number: TBD TABLE OF CONTENTS 1. FUNCTIONAL OVERVIEW... 1 2. DEFINITIONS, ABBREVIATIONS, ACRONYMS... 2 3. REVISION HISTORY... 2 4. SPI INTERFACE...

More information

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives:

ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: ECGR 4101/5101, Fall 2016: Lab 1 First Embedded Systems Project Learning Objectives: This lab will introduce basic embedded systems programming concepts by familiarizing the user with an embedded programming

More information

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False

More information

3. When you process a largest recent earthquake query, you should print out:

3. When you process a largest recent earthquake query, you should print out: CS3114 (Fall 2013) PROGRAMMING ASSIGNMENT #1 Due Wednesday, September 18 @ 11:00 PM for 100 points Due Tuesday, September 17 @ 11:00 PM for 10 point bonus Updated: 9/11/2013 Assignment: This is the first

More information

RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards

RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards RN-131-PICTAIL & RN-171-PICTAIL Evaluation Boards 2012 Roving Networks. All rights reserved. RN-131/171-PICTAIL-UM Version 1.0 9/7/2012 USER MANUAL OVERVIEW The RN-131 and RN-171 WiFly radio modules are

More information

Software debouncing of buttons

Software debouncing of buttons Software debouncing of buttons snigelen February 5, 2015 1 Introduction Connecting a button as an input to a micro-controller is a relatively easy task, but there are some problems. The main problem is

More information

CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC

CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3. For Use With Analog Devices ADSP-BF70x Series Processors. Closed Loop Design, LLC CLD BF70x CDC Library v.1.3 Users Guide Users Guide Revision 1.3 For Use With Analog Devices ADSP-BF70x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

EE 352 Lab 3 The Search Is On

EE 352 Lab 3 The Search Is On EE 352 Lab 3 The Search Is On Introduction In this lab you will write a program to find a pathway through a maze using a simple (brute-force) recursive (depth-first) search algorithm. 2 What you will learn

More information

dotstack integration with STM32F4 & FreeRTOS.

dotstack integration with STM32F4 & FreeRTOS. dotstack TM dotstack integration with STM32F4 & FreeRTOS. Contents 1. Bluetooth Task... 3 2. Bluetooth controller UART driver... 4 3. Audio playback and recording... 6 3.1. Audio playback... 7 3.2. Audio

More information

Serial Peripheral Interface (SPI) Last updated 8/7/18

Serial Peripheral Interface (SPI) Last updated 8/7/18 Serial Peripheral Interface (SPI) Last updated 8/7/18 MSP432 SPI eusci = enhanced Universal Serial Communications Interface 2 tj MSP432 SPI ARM (AMBA Compliant) 7/8 bit transmission Master/Slave LSB/MSB

More information

Gertbot Advanced. Rev Jan.-2015

Gertbot Advanced. Rev Jan.-2015 Gertbot Advanced Rev-1.1, 25-Jan.-2015 The Gertbot is a motor controller board for the Raspberry-Pi. For details how to operate it read the Gertbot manual and/or the Gertbot GUI. This manual describes

More information

um-fpu Application Note 7 Developing a SPI Interface for um-fpu V2

um-fpu Application Note 7 Developing a SPI Interface for um-fpu V2 um-fpu Application Note 7 Developing a SPI Interface for um-fpu V2 This application note describes a suggested method of developing support software for connecting a microcontroller to the um-fpu V2 floating

More information

Politecnico di Milano FACOLTÀ DI INGEGNERIA DELL INFORMAZIONE. Advanced Operating Systems A.A Exam date: 18 December 2014

Politecnico di Milano FACOLTÀ DI INGEGNERIA DELL INFORMAZIONE. Advanced Operating Systems A.A Exam date: 18 December 2014 Politecnico di Milano FACOLTÀ DI INGEGNERIA DELL INFORMAZIONE Advanced Operating Systems A.A. 2014-2015 Exam date: 18 December 2014 Prof. William FORNACIARI Surname (readable)... Matr... Name (readable)...

More information

Interrupts Peter Rounce

Interrupts Peter Rounce Interrupts Peter Rounce P.Rounce@cs.ucl.ac.uk 22/11/2011 11-GC03 Interrupts 1 INTERRUPTS An interrupt is a signal to the CPU from hardware external to the CPU that indicates than some event has occured,

More information

YOU WILL NOT BE ALLOWED INTO YOUR LAB SECTION WITHOUT THE REQUIRED PRE-LAB.

YOU WILL NOT BE ALLOWED INTO YOUR LAB SECTION WITHOUT THE REQUIRED PRE-LAB. Page 1/5 Revision 3 OBJECTIVES Explore and understand microprocessor interrupts. In part A of this lab, you will use XMEGA external interrupt system. Learn how to utilize asynchronous serial communication.

More information

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

To be familiar with the USART (RS-232) protocol. To be familiar with one type of internal storage system in PIC (EEPROM). Lab # 6 Serial communications & EEPROM Objectives To be familiar with the USART (RS-232) protocol. To be familiar with one type of internal storage system in PIC (EEPROM). Serial Communications Serial

More information

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz III

UNIVERSITY OF CONNECTICUT. ECE 3411 Microprocessor Application Lab: Fall Quiz III Department of Electrical and Computing Engineering UNIVERSITY OF CONNECTICUT ECE 3411 Microprocessor Application Lab: Fall 2015 Quiz III There are 5 questions in this quiz. There are 11 pages in this quiz

More information

Keyboards. The PS/2 Protocol

Keyboards. The PS/2 Protocol Keyboards The PS/2 Protocol Debugging Always start from a known working state; stop in a working state. If it breaks, what changed? Take a simple small step, check it carefully, then take another small

More information

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC

CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision For Use With Analog Devices ADSP-SC58x Series Processors. Closed Loop Design, LLC CLD SC58x CDC Library v.1.00 Users Guide Users Guide Revision 1.00 For Use With Analog Devices ADSP-SC58x Series Processors Closed Loop Design, LLC 748 S MEADOWS PKWY STE A-9-202 Reno, NV 89521 support@cld-llc.com

More information

CMSC 412 Project 1: Keyboard and Screen Drivers

CMSC 412 Project 1: Keyboard and Screen Drivers Introduction CMSC 412 Project 1: Keyboard and Screen Drivers Due: February 11, 1998 (in recitation) Almost all computers need to operate with external devices. At the very least, you need to use the keyboard,

More information

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger

Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger C-SPY plugin Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger This document describes the IAR C-SPY Debugger plugin for the ThreadX RTOS. The ThreadX RTOS awareness

More information

DESERT CODE CAMP

DESERT CODE CAMP Implementing Multiple Serial Ports On An Arduino DESERT CODE CAMP 2011.2 Presented by Don Doerres Embedded Pro Guy don@azlaborlaw.com THE ARDUINO Arduino is Italian for Strong Friend The basic Arduino

More information