227-1042-00L  Electronics for Physicists II (Digital)

SemesterSpring Semester 2016
LecturersT. Delbrück
Periodicityyearly course
Language of instructionEnglish
CommentNumber of participants limited to 30.


AbstractThis course will teach the basics of digital electronics, to give students hands-on experience with using COTS (Commodity Off The Shelf) components to build their own systems. It covers embedded microcontroller programming, logic design on FPGAs, PCB design and assembly.
ObjectiveThe basic aim is to remove the fear of starting and offer the students a first experience at many levels of design.
ContentThe course consists of short lectures on theory and exercises using two different hardware platforms - a microcontroller board with Universal Serial Bus (USB) interface, and a Field Programmable Gate Array (FPGA) board. In addition the course includes exercises in printed circuit board (PCB) design and PCB surface mount assembly. Students will complete a project of their own design which they can take with them after the course ends.

Week 1
Lecture:
Introduction and organization
Microcontroller architectures and programming
Architecture (registers and hardware)
Reading a datasheet
Demonstration of programming and using
Exercise:
Install USB board IDE and compiler, compile and run Blink LED program.
Start to design, program, and compile a chaotic attractor to control the PWM output to modulate the LED in an analog, random manner.

Week 2
Lecture:
Data Converters
Analog to Digital (ADC) - flash, single slope, sigma-delta
Digital to Analog (DAC)
Time to Digital
Exercise:
Use the ADC to convert an analog input and display value using LED brightness as output

Week 3
Lecture:
USB interfacing to PC using USB library
Exercise:
Continue ADC project to send values to PC for display

Week 4
Lecture:
PCB design
PCB schematics / gate symbols
PCB footprints
Power supply decoupling / separation
Power planes
PCB design continued
Optocouplers
Power supplies
Decoupling
Components
Exercise:
Start to design daughterboard for AVR32 which adds analog components.
Draw schematic of daughterboard.

Week 5
Lecture:
Binary representations of numbers
Binary arithmetic
2s complement notation for signed binary numbers
Binary addition/subtraction
Parity
Gray codes
Floating point representation
Exercise:
Make footprints / symbols for PCB parts.
Start PCB daughterboard layout.

Week 6
Lecture:
Boolean logic NOT AND OR
Venn diagrams
de Morgan's theorems - exchange AND/OR, complement each term, complement whole
Canonical forms - minterm (sum of products, AND-OR), maxterm (product of sums, OR-AND)
Truth tables
Karnaugh maps and optimization of combinational logic
Exercise:
Finish PCB layout and design check. PCB panel assembled and sent for fabrication.
Parts list ready for order.

Week 7
Lecture:
Sequential logic with state machines
Representation of states and state transitions, state transition actions
Exercise:
Install FPGA tools, synthesize and run example

Week 8
Lecture:
Introduction to using reconfigurable logic (FPGAs, CPLDs, etc)
Introduction to HDLs
Exercise:
Another FPGA example. PCBs back from fabrication.

Week 9
Lecture:
Logic Circuits
Clocks / clock distribution / one shots
Latches / Flip flops- SR, D, level sensitive, edge triggered, master/slave, clocked / un-clocked
Shift registers
Ring oscillator
Counters - ripple, Johnson
Adders
Multipliers
Exercise:
HDL exercise - design a wiggling light bar

Week 10
Lecture:
Logic analog circuits
PLLs/DLLs = Phase locked loops, Delay locked loops
LVDS tranceivers
Level converters, low to high and high to low
Timing diagrams
Exercise:
Soldering PCBs

Week 11
Lecture:
Memory - SRAM, DRAM, embedded
Exercise:
Soldering PCBs, testing PCB projects

Week 12
Testing projects

Week 13
Project demos from students
Prerequisites / NoticeThe course is meant to complement the analog course by teaching how to build systems that convert and process analog information.

Students should have taken Analog Electronics for Physicists or equivalent and should have had some programming experience, preferably with C. Students (or at least each group of 2 / 3 students) need a laptop computer, preferably Windows or Linux. Windows (real or virtual) is required for the FPGA part of the course.