"SERIAL PIC'n"
PIC Microcontroller Serial Communications

TABLE OF CONTENTS

1 PICmicro Serial Communications and This Book

1.1 Introduction to Serial Communications
1.2 About This Book
2 Asynchronous Serial Communications
2.1 Asynchronous Serial Overview
2.2 Asynchronous Serial Protocol
2.3 The Communications Channel and Flow Control
3 The RS-232 Standard
3.1 RS-232 Overview
3.2 Mechanical Interface
3.3 Functional Interface
3.4 Non-Standard RS-232 Applications
3.5 Electrical Interface
3.6 PIC to RS-232 Interface
4 The ASCII Character Code
4.1 Graphic Characters
4.2 Control Character Functions
5 Bit-Bang Asynchronous Communications
5.1     Bit-Bang Half-Duplex
5.1.1  Half-Duplex Receive and Transmit Services
          Bit-Bang Application
          12 Bit PICmicro Applications
          Bit-Bang 16C54 Application
5.1.2  Receive Timeouts
5.1.3  Interrupt Driven Receive
          Bit-Bang Interupt Driven Application
5.1.4  Automatic Bit Rate Detection
          Automatic Bit-Rate Application
5.1.5  Using the Section 5.1 Routines in Your Applications
5.2     Bit-Bang Full Duplex
5.2.1  Full-Duplex Receive and Transmit Tasks
          Bit-Bang Full-Duplex Application
5.2.2  Full-Duplex Receive and Transmit Tasks with In-Band Flow Control
          In-Band Flow Control Application
5.2.3  Using the Section 5.2 Routines in Your Applications
5.3     Interrupt Driven Bit-Bang Full Duplex
5.3.1  Bit-Bang Full-Duplex Application
5.3.2  Using the Section 5.3 Routines in Your Applications
6 On-Chip UART
6.1     Using The On-Chip USART
6.2     UART Full-Duplex Receive and Transmit Services
6.2.1  UART Transmit
6.2.2  UART Receive
6.2.3  A simple Full-Duplex Application
6.2.4  Using the Section 6.2 Routines in Your Applications
6.3     UART Applications
6.3.1  Half-Duplex Block Data Transfer
          Block Transfer Application
6.3.2  Packet Data Transfer
          Packet Data Transfer Application
6.3.3  Using the Section 6.3 Routines in Your Applications
7 Synchronous Serial Communications
7.1 Synchronous Serial Overview
7.2 Embedded Systems and Synchronous Serial Communications
7.3 Synchronous Serial Protocol
7.4 Synchronous Serial Peripheral Devices
7.5 Three Synchronous Serial Communications Standards
      I2C Bus
      SPI Bus
      Microwire Interface
8 The I2C Serial Bus
8.1 I2C Bus Specifications
8.2 The PIC as a Bit-Bang I2C Master
8.2.1 I2C Bit-Bang Master Bus Services
8.2.2 I2C Bit-Bang Master Bus Services Using FET Drivers
8.2.3 Bit-Banging the I2C Bus with the 12 Bit PICmicro Family
8.2.4 Using the Section 8.2 Routines in Your Applications
8.3 The PICmicro as a Bit-Bang I2C Slave
8.3.1 I2C Bit-Bang Slave Bus Services
8.3.2 Using the Section 8.3 Routines in Your Applications
8.4 Communicating With an I2C Serial EEPROM
8.4.1 Bit-Banging the 24C32 EEPROM
8.4.2 Bit-Banging the 24C32 EEPROM with the 12 Bit PICmicro Family
8.4.3 I2C Bit-Bang EEPROM Application
8.4.4 Using the Section 8.4 Routines in Your Applications
8.5 The I2C Bus and Serial Analog to Digital Converters
8.5.1 Using an SPI/Microwire A/D on the I2C Bit-Bang Bus
8.5.2 I2C Bit-Bang A/D Application
8.5.3 I2C Bit-Bang A/D and EEPROM Application
8.5.4 Using the Section 8.5 Routines in Your Application
8.6 I2C Bit-Bang Slave Applications
8.6.1 I2C Bit-Bang Slave Application
         I2C Master Application
8.6.2 I2C Bit-Bang Slave Application with ACK Polling
         I2C Bit-Bang Master Application
9 The SPI Serial Bus
9.1 SPI Bus Specifications
9.2 The PICmicro as a Bit-Bang SPI Master and Slave
9.2.1 SPI Bit-Bang Master Bus Services
9.2.2 SPI Bit-Bang Slave Bus Services
9.2.3 Using the Section 9.2 Routines in Your Applications
9.3 SPI Analog to Digital Converter
9.4 SPI Display Driver
9.4.1 SPI Bit-Bang A/D and Display Application
9.5 Communicating with SPI Serial EEPROMS
9.5.1 SPI EEPROM Bit-Bang Communications Services
9.5.2 Using the Section 9.5 Routines in Your Applications
9.6 Putting It All Together: A Data Logger Application Using the Bit-Bang SPI Master and Slave services, the A/D services and the EEPROM Services
9.6.1 Bit-Bang SPI Data Logger Master Application
9.6.2 Bit-Bang SPI Slave LCD Display
9.7 Using a Microwire EEPROM on the SPI Bit-Bang Bus
9.8 An SPI Bit-Bang Slave Port Expander Application
9.8.1 SPI Bit-Bang Slave Port Expander
9.8.2 Using the Port Expander in Your Applications
9.9 On-Chip SPI Hardware
9.9.1 Using the On-Chip SSP Based SPI Hardware
9.9.2 SSP Hardware SPI Serial EEPROM Communications
9.9.3 SSP Hardware SPI A/D and Display Application
9.9.4 SSP Hardware SPI Slave Application
9.9.5 Using the Section 9.8 Routines in Your Applications SSP and BSSP
9.10 Daisy Chaining SPI devices
10 The Microwire Serial Interface
10.1 The Microwire Interface Specification (As a PICmicro Bit-Bang Master)
10.2 Microwire Bit-Bang Master and Slave Interface Services
10.2.1 Microwire Bit-Bang Master Interface Services
10.2.2 Microwire Bit-Bang Slave Interface Services
10.2.3 Using the Section 10.2 Routines in Your Applications
10.3 Communicating with Microwire Serial EEPROMS
10.3.1 Microwire EEPROM Bit-Bang Communications Services
10.3.2 Using the Section 10.3 Routines in your Application
10.4 Microwire Analog to Digital Converters
10.4.1 Communicating with a Microwire A/D Converter
10.4.2 A Microwire A/D, Microwire EEPROM and Microwire to SPI Display Application
10.4.3 Using the Section 10.4 Routines in Your Applications
10.5 Microwire Bit-Bang Slave Applications
10.5.1 A Microwire Slave Parallel Port Application
11 The Dallas 1-Wire Bus
11.1 The Dallas 1-Wire Bus Specification
11.1.1 Time-Slot Specifications
11.1.2 Communications Protocol
11.1.3 Hardware Specifications
11.2 The PICmicro as a 1-Wire Bit-Bang Master and Slave
11.2.1 1-Wire Bit-Bang Master Bus Services
11.2.2 1-Wire Bit-Bang Slave Bus Services
11.2.3 Using the Section 11.2 Routines in Your Applications
11.3 Communicating with a 1-Wire Digital Thermometer
11.3.1 Parasite Power
11.3.2 A 1-Wire Bit-Bang DS1820 Thermometer Application
11.4 A 1-Wire Bit-Bang Slave Application
11.4.1 A 1-Wire Slave Parallel Port
[an error occurred while processing this directive]