Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:courses:unit-2-lab2a:start [2017/02/09 21:58] – [Appendix A: Basys MX3 Schematic Drawings] Marthalearn:courses:unit-2-lab2a:start [2021/10/13 22:20] (current) Arthur Brown
Line 1: Line 1:
-====== Lab 2a: Dynamic Real-time Systems, Part A ======+====== Lab 2a: Dynamic Real-time Systems ====== 
 +[[{}/learn/courses/unit-2/start|Back to Unit 2]]
 == Download This Document == == Download This Document ==
-  * {{ :learn:courses:microprocessor-io-lab-1a:lab_1a.pdf |Lab 1a PDF}}+{{ :learn:courses:unit-2-lab2a:lab_2a.pdf |Lab 2a PDF}}
  
  
Line 23: Line 24:
 ===== 3. Equipment List ===== ===== 3. Equipment List =====
 ==== 3.1. Hardware ==== ==== 3.1. Hardware ====
-  - Work station computer running Windows 10 or higher, MAC OS, or Linux. +  - [[https://digilent.com/shop/basys-mx3-pic32mx-trainer-board-for-embedded-systems-courses/|Basys MX3 trainer board]] 
-  - Basys MX3 processor board with [[http://www.microchip.com/wwwproducts/en/PIC32MX370F512L|PIC32MX370F512L]] processor. +  - [[https://digilent.com/shop/usb-a-to-micro-b-cable/|Micro USB cable]] 
-  - Micro USB cable. +  - Workstation computer running Windows 10 or higher, MAC OS, or Linux 
-  - Digilent [[http://store.digilentinc.com/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply/|Analog Discovery 2]].+ 
 +In addition, we suggest the following instruments: 
 + 
 +  - [[http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,842,1018&Prod=ANALOG-DISCOVERY|Digilent Analog Discovery 2]]
  
  
Line 33: Line 37:
   - [[http://www.microchip.com/xcdemo/xcpluspromo.aspx|XC32 Cross Compiler]].   - [[http://www.microchip.com/xcdemo/xcpluspromo.aspx|XC32 Cross Compiler]].
   - [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]].   - [[http://www.microchip.com/SWLibraryWeb/product.aspx?product=PIC32%20Peripheral%20Library|PLIB Peripheral Library]].
-  - [[http://store.digilentinc.com/waveforms-2015-download-only/|WaveForms 2015]].+  - [[https://digilent.com/shop/software/digilent-waveforms/|WaveForms]].
  
  
 ---- ----
  
-===== 4. Takeaways =====+===== 4. Project Takeaways =====
   - How to set the period of a PIC32 Timer.   - How to set the period of a PIC32 Timer.
   - How to write a software state machine.   - How to write a software state machine.
Line 47: Line 51:
  
 ===== 5. Fundamental Concepts ===== ===== 5. Fundamental Concepts =====
-Microprocessor based systems that we use today, such as coffee makers and microwave ovens, require a [[https://www.techopedia.com/definition/12829/human-machine-interface-hmi|human-machine interface]] (HMI). HMI inputs are implemented with some type of electromechanical device such as touch pads, push buttons, toggles, and rotary switches. Such devices rarely produce clean (noise free) logical signals to the inputs of high speed digital electronics. Special software and/or hardware is required to reduce or entirely eliminate the noise from these signals.+Microprocessor-based systems that we use today, such as coffee makers and microwave ovens, require a [[https://www.techopedia.com/definition/12829/human-machine-interface-hmi|human-machine interface]] (HMI). HMI inputs are implemented with some type of electromechanical device such as touch pads, push buttons, toggles, and rotary switches. Such devices rarely produce clean (noise free) logical signals to the inputs of high speed digital electronics. Special software and/or hardware is required to reduce or entirely eliminate the noise from these signals.
  
 ---- ----
Line 64: Line 68:
  
 ===== 7. Background Information ===== ===== 7. Background Information =====
-Digital logic can be classified as [[https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Seq/diff.html|combinational or sequential]]. Combinational circuits are logic circuits whose outputs respond immediately to the current inputs, as was presented in Lab 1a. No memory circuits are required for combinational logic circuits. In a sequential logic circuit, the outputs depend on the current inputs plus state, requiring some form of memory. In hardware, memory is provided by __flip-flops____latches__, and __counters__. [[https://www2.southeastern.edu/Academics/Faculty/kyang/2006/Spring/CMPS375/ClassNotes/CMPS375ClassNotesChap01.pdf|Principle of Equivalence of Hardware and Software]]: Anything that can be done with software can also be done with hardware, and anything that can be done with hardware can also be done with software. The exception to this principle is speed of implementation. Hardware has considerably faster time response. This is true of discrete logical electronic devices but even more so with modern [[https://en.wikipedia.org/wiki/Field-programmable_gate_array|FPGAs]].+Digital logic can be classified as [[https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Seq/diff.html|combinational or sequential]]. Combinational circuits are logic circuits whose outputs respond immediately to the current inputs, as was presented in Lab 1a. No memory circuits are required for combinational logic circuits. In a sequential logic circuit, the outputs depend on the current inputs plus state, requiring some form of memory. In hardware, memory is provided by [[https://en.wikipedia.org/wiki/Flip-flop_(electronics)|flip-flops]]latches, and [[https://en.wikipedia.org/wiki/Counter_(digital)|counters]]. [[https://www2.southeastern.edu/Academics/Faculty/kyang/2006/Spring/CMPS375/ClassNotes/CMPS375ClassNotesChap01.pdf|Principle of Equivalence of Hardware and Software]]: Anything that can be done with software can also be done with hardware, and anything that can be done with hardware can also be done with software. The exception to this principle is speed of implementation. Hardware has considerably faster time response. This is true of discrete logical electronic devices but even more so with modern [[https://en.wikipedia.org/wiki/Field-programmable_gate_array|FPGAs]].
  
-Momentary contact switches have one stable state, that being when the switch is in the relaxed condition. A push-on/push-off switch is a type of a mechanical toggle switch that has two stable states. The common approach to implementing a push-on/push-off operation with a momentary contact push button is to provide some type of memory which is usually electronic in nature, such as a flip-flop or latch. Section VIII.of Unit 2 presents a state machine implementation of the push-on/push-off toggle switch. Since we want to detect the push button operations using change notification interrupts that detect both openings and closings, the state machine presented in Unit 2 has four stable states.  +Momentary contact switches have one stable state, that being when the switch is in the relaxed condition. A push-on/push-off switch is a type of a mechanical toggle switch that has two stable states. The common approach to implementing a push-on/push-off operation with a momentary contact push button is to provide some type of memory which is usually electronic in nature, such as a flip-flop or latch. Section 7.of Unit 2 presents a state machine implementation of the push-on/push-off toggle switch. Since we want to detect the push button operations using change notification interrupts that detect both openings and closings, the state machine presented in Unit 2 has four stable states.  
  
 Electromechanical devices, such as switches and [[https://en.wikipedia.org/wiki/Relay|relays]] that are commonly used for microprocessor inputs, are mass-spring devices that will result in [[http://www.ganssle.com/debouncing.htm|contact bounce]] when opening and closing. Combinational logic circuits will see the multiple contact closures and openings as multiple events unless signal conditioning circuits are used. Usually some type of delay after the initial contact operation is implemented so subsequent operations are ignored for a period of time. The delay can be implemented [[http://www.ganssle.com/debouncing-pt2.htm|using an analog low-pass circuit]] with a resistor and capacitor in addition to electronic devices. Such circuits are costly in terms of circuit board real-estate. As an alternative, there are [[https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX16054.html|specialty electronic circuits]] as well as [[http://www.ni.com/example/31251/en/|FPGA designs]] that can be used to remove contact bounce.  Electromechanical devices, such as switches and [[https://en.wikipedia.org/wiki/Relay|relays]] that are commonly used for microprocessor inputs, are mass-spring devices that will result in [[http://www.ganssle.com/debouncing.htm|contact bounce]] when opening and closing. Combinational logic circuits will see the multiple contact closures and openings as multiple events unless signal conditioning circuits are used. Usually some type of delay after the initial contact operation is implemented so subsequent operations are ignored for a period of time. The delay can be implemented [[http://www.ganssle.com/debouncing-pt2.htm|using an analog low-pass circuit]] with a resistor and capacitor in addition to electronic devices. Such circuits are costly in terms of circuit board real-estate. As an alternative, there are [[https://www.maximintegrated.com/en/products/power/supervisors-voltage-monitors-sequencers/MAX16054.html|specialty electronic circuits]] as well as [[http://www.ni.com/example/31251/en/|FPGA designs]] that can be used to remove contact bounce. 
Line 135: Line 139:
  
 ===== 10. References ===== ===== 10. References =====
-  - PIC32MX330/350/370/430/450/470 Family Data Sheet+  - [[http://ww1.microchip.com/downloads/en/DeviceDoc/60001185E.pdf|PIC32MX330/350/370/430/450/470]] Family Data Sheet
   - Basys MX3 Reference Manual    - Basys MX3 Reference Manual 
  
Line 142: Line 146:
  
 ===== Appendix A: Basys MX3 Schematic Drawings ===== ===== Appendix A: Basys MX3 Schematic Drawings =====
-{{ :learn:courses:unit-2-lab2a:figure-a-1.png?nolink |Figure A.1. Push button schematic diagram.}}+{{ :learn:courses:unit-2-lab2a:lab_2a_fig_a_1.jpg?nolink&700 |Figure A.1. Push button schematic diagram.}}
 //Figure A.1. Push button schematic diagram.// //Figure A.1. Push button schematic diagram.//
  
-{{ :learn:courses:unit-2-lab2a:figure-a-2.png?nolink |Figure A.2. Basys MX3 schematic diagram for LED0 through LED8.}}+{{ :learn:courses:unit-2-lab2a:lab_2a_fig_a_2.jpg?nolink&200 |Figure A.2. Basys MX3 schematic diagram for LED0 through LED8.}}
 //Figure A.2. Basys MX3 schematic diagram for LED0 through LED8.// //Figure A.2. Basys MX3 schematic diagram for LED0 through LED8.//
  
  
 +----
 +
 +[[{}/learn/courses/unit-2/start|Back to Unit 2]]
 +[[{}/learn/courses/unit-2-lab2b/start|Go to Lab 2b]]