Software associated with a device Device drivers consist of:

  • Data structures
    • Vars need to access registers and state
  • Initialization functions
    • Device initialization
    • Synchronization initialization
  • I/O functions
    • Functions to input or read from the device
  • Interrupt Service Routines (ISR)

Hardware Drivers

Open-Drain and Passive Pull-up Drivers

A passive pull-up driver can be used to eliminate transistors that connect the shared bus line to the power supply voltage.

Open Drain Output Drivers with a Passive Pull-up

|

Can handle multiple drivers driving the same active value, but not multiple drivers driving different active values.

Tri-State Output Driver

Can output three different values.
Also see 2 Tri-State drivers from lecture section IV.

Driver Resistances


When conducting, the resistance of a transistor is denoted as r where r << R

O/DTri-State
Falltau=rctau=rc
Riseyau=RCtau=rc

Tri-states makes things much faster!

Driver Edge Timing

When R is small, large (slow) transistors are needed to handle the current
When R is large, the bus charges and discharges slowly

Driver Conflict Resolution Summary

Conflicts between active pull-ups and active pull-downs always result in unknown bus values. Active pull-ups dominate passive pull-downs resulting in a value of 1.
Active pull-downs win against passive pull-ups resulting in a value of 1.

A larger summary is available in Types of Output Drivers within Section VI.

O/D and O/S

For open drains, replace all output 1’s with Z’s and for open source, replace all output 0’s with Z’s