227-1042-00L Electronics for Physicists II (Digital)
|Semester||Spring Semester 2016|
|Periodicity||yearly recurring course|
|Language of instruction||English|
|Comment||Number of participants limited to 30.|
|Abstract||This 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.|
|Objective||The basic aim is to remove the fear of starting and offer the students a first experience at many levels of design.|
|Content||The 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.|
Introduction and organization
Microcontroller architectures and programming
Architecture (registers and hardware)
Reading a datasheet
Demonstration of programming and using
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.
Analog to Digital (ADC) - flash, single slope, sigma-delta
Digital to Analog (DAC)
Time to Digital
Use the ADC to convert an analog input and display value using LED brightness as output
USB interfacing to PC using USB library
Continue ADC project to send values to PC for display
PCB schematics / gate symbols
Power supply decoupling / separation
PCB design continued
Start to design daughterboard for AVR32 which adds analog components.
Draw schematic of daughterboard.
Binary representations of numbers
2s complement notation for signed binary numbers
Floating point representation
Make footprints / symbols for PCB parts.
Start PCB daughterboard layout.
Boolean logic NOT AND OR
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)
Karnaugh maps and optimization of combinational logic
Finish PCB layout and design check. PCB panel assembled and sent for fabrication.
Parts list ready for order.
Sequential logic with state machines
Representation of states and state transitions, state transition actions
Install FPGA tools, synthesize and run example
Introduction to using reconfigurable logic (FPGAs, CPLDs, etc)
Introduction to HDLs
Another FPGA example. PCBs back from fabrication.
Clocks / clock distribution / one shots
Latches / Flip flops- SR, D, level sensitive, edge triggered, master/slave, clocked / un-clocked
Counters - ripple, Johnson
HDL exercise - design a wiggling light bar
Logic analog circuits
PLLs/DLLs = Phase locked loops, Delay locked loops
Level converters, low to high and high to low
Memory - SRAM, DRAM, embedded
Soldering PCBs, testing PCB projects
Project demos from students
|Prerequisites / Notice||The 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.