Dr. Baruch Zoltan Francisc
Professor

Input/Output Systems and
Peripheral Devices

Homeworks - Applications (2013/2014)



1. Transfer of data to a printer using the USB interface

  • Programming in the C language

2. Implementation of API functions for the ATA interface

  • PIO transfer mode
  • Programming in the C language
  • Application to exemplify the use of functions

3. Implementation of API functions for the ATAPI interface

  • PIO transfer mode
  • Programming in the C language
  • Application to exemplify the use of functions

4. Implementation of SCSI commands for magnetic disk drives

  • Using the ASPI programming interface for Win32
  • Programming in the C language

5. Implementation of SCSI commands for optical disc drives

  • Using the ASPI programming interface for Win32
  • Programming in the C language

6. Application for compact disc audio playback

  • Programming in the C language

7. Connecting a 3x4 keyboard to the CP-JR ARM7 USB-LPC2148 development board

  • Program for scanning the keyboard
  • Programming in the ARM assembly language

8. Connecting a liquid crystal display to the CP-JR ARM7 USB-LPC2148 development board

  • LCD02 display of 20x4 characters
  • Communication via the I2C bus
  • Programming in the C language

9. Connecting a liquid crystal display to the CP-JR ARM7 USB-LPC2148 development board

  • LCD02 display of 20x4 characters
  • Communication via the I2C bus
  • Programming in the ARM assembly language

10. Emulation of a USB printer with the CP-JR ARM7 USB-LPC2148 development board

  • Displaying texts on the LCD02 display of 20x4 characters
  • Communication with the computer via the USB interface
  • Programming in the C language

11. Communication with the CP-JR ARM7 USB-LPC2148 development board using the USB HID model

  • Reading the status of buttons
  • Controlling the LEDs
  • Communication with the computer via the USB interface
  • Programming in the C language
  • Windows application on the computer

12. Debugging applications for the ARM microcontroller using a USB-JTAG adapter

  • Using the OpenOCD debugger
  • Using the CP-JR ARM7 USB-LPC2148 development board

Resources

The Parallel Port

Craig Peacock, Interfacing the Standard Parallel Port, Beyond Logic, 2005
http://www.beyondlogic.org/spp/parallel.htm
parallel.pdf

Craig Peacock, Interfacing the Enhanced Parallel Port, Beyond Logic, 2005
http://www.beyondlogic.org/epp/epp.htm
epp.pdf

Craig Peacock, Interfacing the Extended Capabilities Port, Beyond Logic, 2005
http://www.beyondlogic.org/ecp/ecp.htm
ecp.pdf

Specifications of the ECP port, version 1.06, Microsoft Corp., 1995
ecp_reg.pdf

The Serial Port

Craig Peacock, Interfacing the Serial / RS232 Port, V5.0, Beyond Logic, 2005
http://www.beyondlogic.org/serial/serial.htm
http://www.beyondlogic.org/serial/serial1.htm
serial.pdf

The PS/2 Interface for Keyboard and Mouse

Adam Chapweske, The PS/2 Keyboard Interface, 2004,
http://www.computer-engineering.org/ps2keyboard/
PS-2_Keyboard_Interface.htm

Adam Chapweske, The PS/2 Mouse Interface, 2004,
http://www.computer-engineering.org/ps2mouse/
PS-2_Mouse_Interface.htm

The ATA/ATAPI Interface

T13 Technical Committee of Accredited Standards Committee NCITS, AT Attachment with Packet Interface - 6,
T13 1410D, Revision 3b, 2002, http://www.t10.org/t13/docs2002/d1410r3b.pdf .
d1410r3b-ATA-ATAPI-6.pdf

American National Standard of Accredited Standards Committee INCITS, AT Attachment with Packet Interface - 7,
Volume 1 - Register Delivered Command Set, Logical Register Set
, T13 Project 1532D Volume 1, Revision 4b, 2004,
http://www.t10.org/t13/docs2004/d1532v1r4b-ATA-ATAPI-7.pdf .
d1532v1r4b-ATA-ATAPI-7.pdf

American National Standard of Accredited Standards Committee INCITS, AT Attachment with Packet Interface - 7,
Volume 2 - Parallel Transport Protocols and Physical Interconnect
, T13 Project 1532D Volume 2, Revision 4b, 2004,
http://www.t10.org/t13/docs2004/d1532v2r4b-ATA-ATAPI-7.pdf .
d1532v2r4b-ATA-ATAPI-7.pdf

American National Standard of Accredited Standards Committee INCITS, AT Attachment with Packet Interface - 7,
Volume 3 - Serial Transport Protocols and Physical Interconnect
, T13 Project 1532D Volume 3, Revision 4b, 2004,
http://www.t10.org/t13/docs2004/d1532v3r4b-ATA-ATAPI-7.pdf .
d1532v3r4b-ATA-ATAPI-7.pdf

The SCSI Interface

The Official SCSI FAQ, Ed. Gary Field, http://www.scsifaq.org

Adaptec, Inc., ASPI for Win32 Technical Reference, 2001, http://www.zianet.com/jgray/dat/files/ASPI32.pdf.
ASPI32.pdf

The WNASPI32.DLL library and definition files for the ASPI programming interface
WNASPI32.zip

American National Standard of X3T10 Technical Committee of Accredited Standards Committee X3,
SCSI-3 Primary Commands, X3T10 995D, Revision 10, 1996.
SPC-R10.PDF

American National Standard of X3T10 Technical Committee of Accredited Standards Committee X3,
Information Technology - SCSI-3 Multimedia Commands, X3T10 1048D, Revision 10A, 1997.
MMC-R10A.PDF

The Infrared Communication Interface

IrDA Specifications, http://www.irda.org

IrCOMM - Emulating the serial and parallel port through the IrDA interface, version 1.0, 1995
(© Infrared Data Association, http://www.irda.org )
ircomm10.pdf

The LCD02 I2C/Serial Liquid Crystal Display

LCD02 - I2C/Serial LCD Technical Documentation, Crownhill Associates Ltd., 2005,
http://www.robot-electronics.co.uk/htm/Lcd02tech.htm
I2C-display.mht

The CP-JR ARM7 USB-LPC2148 Development Board

User manual (© ETT CO., LTD, 2006)
Manual_CP_JR_ARM7_USB_LPC2148.pdf

Example of using the USB interface (© ETT CO., LTD, 2006)
Testing_USB_of_CP_JR_ARM7_USB_LPC2148.pdf

Example of using Keil uVision3 to create project file for Keil-CARM (© ETT CO., LTD, 2006)
Example_of_Using_LPC2148_with_KEIL-CARM.pdf

NXP Semiconductors, LPC2141/42/44/46/48 Product Data Sheet, Rev. 03, 19 October 2007 (© NXP B.V., 2007)
LPC2141_42_44_46_48_3.pdf

Philips Semiconductors, UM10139 Volume 1: LPC214x User Manual, Rev. 02, 25 July 2006
(© Koninklijke Philips Electronics N.V., 2006)
user.manual.lpc2148.pdf

Hitex Development Tools, The Insider's Guide to the Philips ARM7-Based Microcontrollers, 2006,
http://www.hitex.co.uk/arm/lpc2000book/

Philips Semiconductors, Initialization Code/Hints for the LPC2000 Family, Application Note
AN10404, Rev. 01, 1 November 2005 (© Koninklijke Philips Electronics N.V., 2005)
AN10404_1.pdf

Philips Semiconductors, Using the Philips LPC2000 Flash Utility with the Keil MCB2100 and IAR LPC210x Kickstart
Evaluation Boards
, Application Note AN10302, Rev. 03, 10 June 2004 (© Koninklijke Philips Electronics N.V., 2004)
AN10302_3.pdf

Philips Semiconductors LPC2000 Flash Utility, Version 2.2.3 (© Philips Semiconductors, 2003)
flash.isp.utility.lpc2000.zip

Keil™, An ARM® Company, MDK-ARM Microcontroller Development Kit, http://www.keil.com/arm/mdk.asp

YAGARTO - Yet Another GNU ARM Toolchain, http://www.yagarto.de/

James P. Lynch, ARM Cross Development with Eclipse, Revision 4 Draft, 2006
ARM_Cross_Development_with_Eclipse_Revision_4_Draft.pdf

James P. Lynch, Using Open Source Tools for AT91SAM7S Cross Development, Revision C, 2007
Using_Open_Source_Tools_for_AT91SAM7S_Cross_Development_revision_C.pdf

The Open On-Chip Debugger

Open On-Chip Debugger, http://openocd.berlios.de/web/

Hubert Hgl, OOCD Starter, 2008, http://www.hs-augsburg.de/~hhoegl/proj/oocd-starter/index.html

OpenOCD User's Guide for Release 0.3.0-dev, http://openocd.berlios.de/doc/pdf/openocd.pdf

OpenOCD Reference Manual, http://openocd.berlios.de/doc/doxygen/index.html

Dominic Rath, Open On-Chip Debugger, Diploma Thesis, University of Applied Sciences Augsburg,
Department of Computer Science, 2005, http://openocd.berlios.de/thesis.pdf

Freddie Chopin, OpenOCD Windows installer based on the libftdi and libusb-win32 libraries,
http://www.freddiechopin.info/index.php/en/download/category/4-openocd

USB - JTAG Adapters

Hubert Hgl, USB to JTAG Interface, 2007, http://www.hs-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html

Embedded Projects GmbH, OpenOCD USB: ARM-Mikrocontroller Anwendungen entwickeln,
http://www.embedded-projects.net/index.php?page_id=255




Updated: September 28, 2013