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
pmod:pmodoledrgb:reference-manual [2021/05/14 23:03] – ↷ Page moved from reference:pmod:pmodoledrgb:reference-manual to pmod:pmodoledrgb:reference-manual Arthur Brownpmod:pmodoledrgb:reference-manual [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 48: Line 48:
 As a graphical display interface, users may light up any individual pixel on the %%OLED%%, display predefined characters, or even load bitmaps onto the screen. Each pixel can be set to one of the 65,535 colors that are available in a 5-6-5 bit RGB format. The %%OLED%% display has a specific power-up and power-down sequence to ensure the longevity of the device.  As a graphical display interface, users may light up any individual pixel on the %%OLED%%, display predefined characters, or even load bitmaps onto the screen. Each pixel can be set to one of the 65,535 colors that are available in a 5-6-5 bit RGB format. The %%OLED%% display has a specific power-up and power-down sequence to ensure the longevity of the device. 
  
-There are two field-effect transistors (FETs) that control the display’s two power supplies. The VCCEN control ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) toggles the positive voltage supply to the screen itself and the PMODEN control ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 10]]) toggles the power supply ground to the display. Users may turn off either one of these controls to reduce the power consumption of the Pmod OLEDrgb to approximately 200 nA. +There are two field-effect transistors (FETs) that control the display’s two power supplies. The VCCEN control ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) toggles the positive voltage supply to the screen itself and the PMODEN control ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 10]]) toggles the power supply ground to the display. Users may turn off either one of these controls to reduce the power consumption of the Pmod OLEDrgb to approximately 200 nA. 
  
 ==== Quick Data Acquisition ==== ==== Quick Data Acquisition ====
  
 **Power-on Sequence** where the bytes provided are in the format of (command, data) **Power-on Sequence** where the bytes provided are in the format of (command, data)
-  - Bring Data/Command control ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 7]]) logic low. +  - Bring Data/Command control ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 7]]) logic low. 
-  - Bring the Reset pin ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 8]]) logic high. +  - Bring the Reset pin ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 8]]) logic high. 
-  - Bring the Vcc Enable ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic low. +  - Bring the Vcc Enable ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic low. 
-  - Bring Pmod Enable ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 10]]) to logic high and delay 20 ms to allow the 3.3V rail to become stable. +  - Bring Pmod Enable ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 10]]) to logic high and delay 20 ms to allow the 3.3V rail to become stable. 
-  - Bring RES ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 8]]) logic low, wait for at least 3 us, and then bring it back to logic high to reset the display controller.+  - Bring RES ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 8]]) logic low, wait for at least 3 us, and then bring it back to logic high to reset the display controller.
   - Wait for the reset operation to complete; this takes a maximum of 3 us to complete.   - Wait for the reset operation to complete; this takes a maximum of 3 us to complete.
   - Enable the driver IC to accept commands by sending the unlock command over SPI (0xFD, 0x12).\\ <code>SpiWriteMultiple(2, 0xFD, 0x12); //Write two bytes-- the (un)lock commands register and the byte value to set the register to unlock command mode</code>   - Enable the driver IC to accept commands by sending the unlock command over SPI (0xFD, 0x12).\\ <code>SpiWriteMultiple(2, 0xFD, 0x12); //Write two bytes-- the (un)lock commands register and the byte value to set the register to unlock command mode</code>
Line 81: Line 81:
   - Disable Scrolling.\\ <code>SpiWrite(0x25E); //Write a single byte-- the disable scrolling command  </code>   - Disable Scrolling.\\ <code>SpiWrite(0x25E); //Write a single byte-- the disable scrolling command  </code>
   - Clear the screen by sending the clear command and the dimensions of the window to clear (top column, top row, bottom column, bottom row).\\ <code>SpiWriteMultiple(5, 0x25, 0x00, 0x00, 0x5F, 0x3F); //Write 5 bytes-- the clear command and the five bytes representing the area to clear </code>   - Clear the screen by sending the clear command and the dimensions of the window to clear (top column, top row, bottom column, bottom row).\\ <code>SpiWriteMultiple(5, 0x25, 0x00, 0x00, 0x5F, 0x3F); //Write 5 bytes-- the clear command and the five bytes representing the area to clear </code>
-  - Bring VCCEN ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic high and wait 25 ms.+  - Bring VCCEN ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic high and wait 25 ms.
   - Turn the display on.\\ <code>SpiWrite(0xAF); //Write a single byte-- the turn display on command</code>   - Turn the display on.\\ <code>SpiWrite(0xAF); //Write a single byte-- the turn display on command</code>
   - Wait at least 100 ms before further operation.   - Wait at least 100 ms before further operation.
Line 90: Line 90:
 **Power-off Sequence** **Power-off Sequence**
   - Turn the display off.\\ <code>SpiWrite(0xAE); //Write a single byte-- the turn display off command</code>   - Turn the display off.\\ <code>SpiWrite(0xAE); //Write a single byte-- the turn display off command</code>
-  - Bring Vcc Enable ([[:reference:pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic low.+  - Bring Vcc Enable ([[pmod:pmodoledrgb:reference-manual#pinout_description_table|pin 9]]) logic low.
   - Delay 400 ms.   - Delay 400 ms.
   - Disconnect the positive voltage supply to the Pmod OLEDrgb.   - Disconnect the positive voltage supply to the Pmod OLEDrgb.
  
 **Graphics funtions** **Graphics funtions**
-The SSD1331 display controller comes with a number of predefined graphical commands for the user to take advantage of and Digilent provides a few additional graphics functions (such as the displaying of ASCII characters and setting the cursor location) for use. The commands and associated parameters for the predefined functions are nicely outlined on pages 28 through 33 of the [[https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.pdf|datasheet]] with further description of the functions available starting on page 35. The Digilent made commands can be found under Example Projects in the [[reference:pmod:pmodoledrgb:start#example_projects|Pmod OLEDrgb Resource Center]].+The SSD1331 display controller comes with a number of predefined graphical commands for the user to take advantage of and Digilent provides a few additional graphics functions (such as the displaying of ASCII characters and setting the cursor location) for use. The commands and associated parameters for the predefined functions are nicely outlined on pages 28 through 33 of the [[https://cdn-shop.adafruit.com/datasheets/SSD1331_1.2.pdf|datasheet]] with further description of the functions available starting on page 35. The Digilent made commands can be found under Example Projects in the [[pmod:pmodoledrgb:start#example_projects|Pmod OLEDrgb Resource Center]].
  
 ==== Pinout Description Table ==== ==== Pinout Description Table ====
Line 107: Line 107:
 |  6    |  VCC     |  Power Supply (3.3V)  |:::|  12   |  VCC     |  Power Supply (3.3V)           | |  6    |  VCC     |  Power Supply (3.3V)  |:::|  12   |  VCC     |  Power Supply (3.3V)           |
  
-Although users are welcome to create their own interface code for the Pmod OLEDrgb if they so desire, pre-constructed libraries that provide functions for initializing the display and rendering simple text and graphics onto the screen exist. They are available on the %%Pmod OLEDrgb%% [[reference:pmod:pmodoledrgb:start#example_projects|Resource Center]] and can be used as-is or as a starting point for a more sophisticated graphics library.+Although users are welcome to create their own interface code for the Pmod OLEDrgb if they so desire, pre-constructed libraries that provide functions for initializing the display and rendering simple text and graphics onto the screen exist. They are available on the %%Pmod OLEDrgb%% [[pmod:pmodoledrgb:start#example_projects|Resource Center]] and can be used as-is or as a starting point for a more sophisticated graphics library.
  
 Any external power applied to the %%Pmod OLEDrgb%% must be within 2.7V and 3.5V; however, it is recommended that Pmod is operated at 3.3V. Any external power applied to the %%Pmod OLEDrgb%% must be within 2.7V and 3.5V; however, it is recommended that Pmod is operated at 3.3V.
Line 117: Line 117:
 The schematics of the %%Pmod OLEDrgb%% are available {{reference:pmod:pmodoledrgb:pmodoledrgb_sch.pdf|here}}. Additional information about the %%display controller%% including communication modes and specific timings of the chip can be found by checking out its datasheet [[http://www.adafruit.com/datasheets/SSD1331_1.2.pdf|here]]. Similarly, the datasheet for the display can be found [[http://www.adafruit.com/datasheets/UG-9664HDDAG01.pdf|here]]. The schematics of the %%Pmod OLEDrgb%% are available {{reference:pmod:pmodoledrgb:pmodoledrgb_sch.pdf|here}}. Additional information about the %%display controller%% including communication modes and specific timings of the chip can be found by checking out its datasheet [[http://www.adafruit.com/datasheets/SSD1331_1.2.pdf|here]]. Similarly, the datasheet for the display can be found [[http://www.adafruit.com/datasheets/UG-9664HDDAG01.pdf|here]].
  
-Example code demonstrating how to get information from the %%Pmod OLEDrgb%% can be found [[reference:pmod:pmodOLEDrgb:start#example_projects|here]]. +Example code demonstrating how to get information from the %%Pmod OLEDrgb%% can be found [[pmod:pmodoledrgb:start#example_projects|here]]. 
  
 If you have any questions or comments about the %%Pmod OLEDrgb%%, feel free to post them under the appropriate section ("Add-on Boards") of the [[https://forum.digilentinc.com/|Digilent Forum]]. If you have any questions or comments about the %%Pmod OLEDrgb%%, feel free to post them under the appropriate section ("Add-on Boards") of the [[https://forum.digilentinc.com/|Digilent Forum]].