Digital Interface Design and Application - Product Image

Digital Interface Design and Application

  • ID: 3327637
  • Book
  • 208 Pages
  • John Wiley and Sons Ltd
1 of 4

Many computer applications require microprocessors to reliably interconnect and communicate with other peripherals in order to perform their intended functions. Interface design, which includes the development of the methods and processes by which two or more components communicate, is a crucial step in the deployment of microprocessors in an embedded computing environment. ARM–based microprocessors are a leading technology in this field, offering a wide range of performance for different applications.

This book provides a comprehensive treatment of interface design from basic logical and theoretical principles to practical implementation on an ARM–based microprocessor, addressing both hardware and software considerations.  The microprocessor s high level of complexity is carefully analysed in the text to provide clear guidance for the reader in the design of new applications, resulting in an invaluable reference resource for graduates and engineers involved in the design of electronic products and systems.

Key Features:

  • Brings together aspects of digital hardware, interface design and software integration in a single text to make clear the link between low and high level languages for interface control
  • Categorises interface techniques into easily distinguished chapters, progressively involving greater complexity, enabling the reader to quickly find relevant material for a particular application
  • Provides many practical C–coded examples showing both the preparation and use of complex programmable subsystems implemented in a typical commercial product
  • Presents in each chapter an introduction to the essential theoretical aspects and the development of simple interface designs using basic logical building blocks
Note: Product cover images may vary from those shown
2 of 4

List of Figures x

List of Tables xiii

Preface xv

1 Review of Digital Electronics and Computer Architecture 1

1.1 Embedded Systems 1

1.1.1 Processor Architecture (Revision) 2

1.1.2 Interface Subsystem 3

1.2 Software Architecture 4

1.3 Essential Basic Logic Elements 5

1.3.1 The Basic Flip/Flop 5

1.3.2 The Edge–Triggered D–Type Flip/Flop (Latch) 7

1.3.3 Edge–Triggered Latch with Enable 8

1.3.4 Multi–Bit Registers 9

1.4 Output Configuration Options 10

1.4 1 Open Drain Configuration 10

1.5 The Address Decode 11

1.5.1 Partial Address Decode 12

1.6 ARM Architecture 14

1.7 Interface Software Development 14

1.7.1 Software Development for Embedded Systems 18

1.8 C Programming Revision 19

1.8.1 Arrays 19

1.8.2 Structures and typedef 21

1.8.3 Header Files 21

1.9 Conclusion 22

References 23

Further Reading 23

2 Simple Input and Output Functions 24

2.1 Introduction 24

2.2 Computer Structure 25

2.3 Simple Interface Circuit Concepts 26

2.3.1 An Output Interface 26

2.3.2 Address Decode for Output 28

2.3.3 A Simple Input Interface 29

2.3.4 Address Decode for Input 29

2.4 Activation of I/O Circuits 30

2.4.1 Programming an Output 30

2.4.2 Programming an Input 31

2.5 Universal I/O Circuits 31

2.5.1 Combined I/O Address Decode 32

2.6 Practical I/O Circuits 33

2.6.1 STM32F4 Address Decoding 35

2.7 A Typical I/O Programme 35

2.7.1 Example GPIO Application 37

2.7.2 A Summary of Alternative I/O Operations 40

2.7.3 Programming I/O in Assembler Language 41

2.8 Suggested Design Challenge 41

2.9 Conclusion 43

References 44

Further Reading 44

3 Timer Subsystems 45

3.1 Timer Subsystems 45

3.2 Basic Timer Configuration 46

3.3 The STM32F4 Timers 47

3.3.1 The Individual Timers 50

3.4 Programming the STM32F4 Timers 51

3.5 Timer Triggering 55

3.5.1 Setting up the Time–Base 55

3.5.2 Using the Timer for an Input Measurement 56

3.6 Basic Timers 58

3.7 PWM Applications 61

3.8 Programming Challenge 63

3.9 Conclusion 64

References 65

4 Analogue Interface Subsystems 66

4.1 Analogue Interfaces 66

4.2 Digital to Analogue 67

4.2.1 The STM32F4 DAC 69

4.3 Analogue to Digital Conversion 69

4.3.1 Sampling 70

4.3.2 Switched Capacitor Converter 72

4.3.3 The Software Interface 73

4.3.4 The STM32F4 ADC 74

4.4 Software Control of DAC 75

4.4.1 Waveform Generation 76

4.4.2 Waveform Timing 77

4.4.3 DAC Using DMA 79

4.5 Software Control of ADC 83

4.5.1 ADC Interface Using Timer and DMA 85

4.6 Programming Challenge 88

4.7 Conclusion 89

References 89

Further Reading 89

5 Serial Interface Subsystems 90

5.1 Introduction 90

5.2 RS232 Universal Asynchronous Receiver/Transmitter (UART) Communications 91

5.3 The I2C Interface 95

5.3.1 Using the Touch Screen with an I2C Interface 96

5.4 SPI Interface 101

5.4.1 SPI Interface to an Analogue to Digital Converter 103

5.5 HDLC Serial Communication 105

5.6 The Universal Serial Bus (USB) 107

5.6.1 Hand ]shake Packets 109

5.6.2 Token Packets 109

5.6.3 Data Packets 109

5.6.4 USB Protocol 110

5.7 Programming Challenge 110

5.8 Conclusion 111

References 111

6 Advanced Functions 112

6.1 Advanced Functions 112

6.2 Interrupts 112

6.2.1 Interrupts in the STM32F4 114

6.2.2 The Nested Vector Interrupt Controller (NVIC) 115

6.2.3 Exceptions 117

6.3 Direct Memory Access (DMA) 118

6.3.1 The STM32F4 DMA System 118

6.3.2 DMA Request Mapping 119

6.3.3 DMA Management 119

6.4 The LCD Display Module 121

6.4.1 Character Generation 125

6.4.2 Parallel Interface 127

6.4.3 Touch Screen 128

6.5 The Wireless Interface Module 131

6.6 Digital Camera Interface 133

6.7 Conclusion 134

Further Reading 134

7 Application Case Study Examples 135

7.1 An Open–Loop Digital Compass 135

7.1.1 Program Design 136

7.1.2 Setting up the MAG3110 136

7.1.3 Programming Challenge: A 360° Servo 140

7.2 The MSF Time Decoder 140

7.2.1 MSF Receiver Circuit Arrangement 141

7.2.2 Program Design 141

7.2.3 Setting up for an Interrupt 142

7.2.4 Acquiring the Data Bits 143

7.2.5 Decoding the MSF Data 147

7.2.6 Displaying the MSF Time Data 150

7.3 Decoding GPS Signals 153

7.3.1 Acquiring the GPS Message 154

7.3.2 Decoding the GPS Message 155

7.3.3 Selecting the Massage Stream 158

7.4 Conclusion 159

References 160

Appendix A: uVision IDE Notes 161

A.1 Getting Started 161

A.2 Help 162

A.3 Project Development 162

A.4 Debug Facilities 164

A.5 Conclusion 167

Appendix B: STM Discovery Examples Library 168

B.1 Peripheral Examples 168

B.2 Example Application 171

Appendix C: DAC and ADC Support Software 175

C.1 DAC Peripheral Features 175

C.2 How to Use the DAC Driver 176

C.3 ADC Peripheral Features 177

C.4 How to Use the ADC driver 177

C.5 Files for Reference 178

Appendix D: Example Keyboard Interface 179

Index 185

Note: Product cover images may vary from those shown
3 of 4

Loading
LOADING...

4 of 4
Jonathan A. Dell, Department of Electronics; University of York, UK
Jonathan Dell is currently a lecturer in the Department of Electronics at the University of York where for the past 25 years, he has regularly taught courses and laboratory classes using material covered in this book. His areas of expertise include: Computer Aided Design, Microprocessor Design, Signal Processing, Digital Electronics, Microprocessor Systems, Instrumentation Systems, TV & Video Engineering. He has previously co–authored the bookEssence C For Electronic Engineers (Prentice Hall; 1998).
Note: Product cover images may vary from those shown
5 of 4
Note: Product cover images may vary from those shown
Adroll
adroll