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/D | Tri-State | |
---|---|---|
Fall | tau=rc | tau=rc |
Rise | yau=RC | tau=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