Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| learn:courses:unit-3:start [2017/05/12 18:39] – [Unit 3: Parallel I/O and Handshaking for LCD Control] Talesa Bleything | learn:courses:unit-3:start [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Unit 3: Parallel I/O and Handshaking for LCD Control ====== | ====== Unit 3: Parallel I/O and Handshaking for LCD Control ====== | ||
| - | [[{}/learn/courses/unit-2/start|Back to Unit 2]] | + | [[:learn:courses:unit-2:start|Back to Unit 2]] |
| === Unit 3 Labs === | === Unit 3 Labs === | ||
| - | * [[https:// | + | * [[/ |
| - | * [[https:// | + | * [[/ |
| === Download This Document === | === Download This Document === | ||
| Line 10: | Line 10: | ||
| ===== 1. Introduction ===== | ===== 1. Introduction ===== | ||
| - | Throughout Unit 3 and Labs [[https:// | + | Throughout Unit 3 and Labs [[/ |
| You will experiment with the mechanisms required to synchronize asynchronous systems using hardware and software handshaking, | You will experiment with the mechanisms required to synchronize asynchronous systems using hardware and software handshaking, | ||
| Line 20: | Line 20: | ||
| - Identify the PIC32 processor pins used for the LCD interface. | - Identify the PIC32 processor pins used for the LCD interface. | ||
| - Write a library of functions, providing the general capability to display strings of text, characters, and numbers at specified positions on the LCD display. All of these functions have strict timing requirements. | - Write a library of functions, providing the general capability to display strings of text, characters, and numbers at specified positions on the LCD display. All of these functions have strict timing requirements. | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - Display static and dynamic text on the LCD. | - Display static and dynamic text on the LCD. | ||
| - Verify that the timing of the handshaking meets the specified minimums. | - Verify that the timing of the handshaking meets the specified minimums. | ||
| Line 44: | Line 44: | ||
| ===== 4. Unit Equipment List ===== | ===== 4. Unit Equipment List ===== | ||
| ==== 4.1. Hardware ==== | ==== 4.1. Hardware ==== | ||
| - | | + | |
| * The 2X16 LCD included on the Basys MX3 processor board can display 16 characters on each of its two lines. The display can be more easily viewed if the LCD backlight is switched on using the slide switch SW9. | * The 2X16 LCD included on the Basys MX3 processor board can display 16 characters on each of its two lines. The display can be more easily viewed if the LCD backlight is switched on using the slide switch SW9. | ||
| - | | + | |
| - | | + | |
| In addition, we suggest the following instruments: | In addition, we suggest the following instruments: | ||
| - | | + | |
| * Note: Fig. B.1 through Fig. B.4 in Appendix B shows an Analog discovery 2 connected directly to the LCD data pins and the three handshaking and control pins: RS, R/W, and EN. This custom modification was made to enable testing during software development. It is not required to make this modification in order to complete Lab 3a and Lab 3b. This is further explained in Appendix B. | * Note: Fig. B.1 through Fig. B.4 in Appendix B shows an Analog discovery 2 connected directly to the LCD data pins and the three handshaking and control pins: RS, R/W, and EN. This custom modification was made to enable testing during software development. It is not required to make this modification in order to complete Lab 3a and Lab 3b. This is further explained in Appendix B. | ||
| Line 57: | Line 57: | ||
| ==== 4.2. Software ==== | ==== 4.2. Software ==== | ||
| The following programs must be installed on your development work station: | The following programs must be installed on your development work station: | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| Line 308: | Line 308: | ||
| //Figure 7.17. The PMP timing diagram for the beginning, middle, and end wait periods.// | //Figure 7.17. The PMP timing diagram for the beginning, middle, and end wait periods.// | ||
| - | The minimum settings for the three PMP WAIT intervals can be determined by dividing the value for t< | + | The minimum settings for the three PMP WAIT intervals can be determined by dividing the value for t< |
| + | |||
| + | < | ||
| + | (1) $[B+(M+1)+E] * T_PB$ | ||
| + | |||
| + | (2) $[B+(M+1)+E] * T_PB = (5) * 100 ns = 500 ns$ | ||
| + | < | ||
| Since the PMP is clocked from the peripheral bus clock, it is likely that the PMP cycle is slower than the core CPU, which means that the PMP also has a busy flag that must be polled before writing or reading the next byte. With the PMP interrupt disabled, the only way to determine if the PMP is ready for the next read or write cycle is to poll the PMP flag. The // | Since the PMP is clocked from the peripheral bus clock, it is likely that the PMP cycle is slower than the core CPU, which means that the PMP also has a busy flag that must be polled before writing or reading the next byte. With the PMP interrupt disabled, the only way to determine if the PMP is ready for the next read or write cycle is to poll the PMP flag. The // | ||
| + | |||
| Line 409: | Line 416: | ||
| ==== Listing C.1. Steps to Program Graphical Characters ===== | ==== Listing C.1. Steps to Program Graphical Characters ===== | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| ---- | ---- | ||
| - | [[{}/learn/courses/unit-2/start|Back to Unit 2]] | + | * [[:learn:courses:unit-2:start|Back to Unit 2]] |
| - | [[{}/learn/courses/unit-3-lab3a/start|Go to Lab 3a]] | + | |
| - | [[{}/learn/courses/unit-3-lab3b/start|Go to Lab 3b]] | + | |
| - | [[{}/learn/courses/unit-4-1/start|Go to Unit 4 Part 1]] | + | |
| {{tag> | {{tag> | ||

