====== Pmod CLS Reference Manual ====== The Digilent Pmod CLS (Revision E) is a 16×2 character LCD module driven by Atmel's ATmega48 microcontroller. {{Digilent Image Gallery | image = {{:reference:pmod:pmodcls:pmodcls-0.png?direct |}} | image = {{ :reference:pmod:pmodcls:pmodcls-1.png?direct |}} | image = {{ :reference:pmod:pmodcls:pmodcls-2.png?direct |}} | image = {{ :reference:pmod:pmodcls:pmodcls-3.png?direct |}} }} == Download This Reference Manual == * {{:reference:pmod:pmodcls:pmodcls_rm.pdf| PDF}} ---- ===== Features ===== * 16×2 liquid crystal character display * Wide range of instruction functions * Up to 32 user definable characters * Multiple communication options including UART, SPI, and I²C * Small PCB size for flexible designs 1.8" × 3.8" (4.6 cm × 9.7 cm) * Two 1×6-pin Pmod ports with SPI and UART interfaces ---- =====Functional Description ===== The Pmod CLS module can be used to display important information during program development or as a user interface after the project has been completed. The module is ideally suited for microcontroller boards but can also be used in projects using a FPGA board. The module is capable of executing a variety of instructions such as erasing specific characters, setting different display modes, scrolling, and displaying user-defined characters. These instructions are specified using escape sequences to send commands to the board’s embedded [[http://www.atmel.com/images/doc2545.pdf|Atmel ATmega48]] microcontroller. The display on the module is driven by this AVR and controls all of the features of the board. ---- ===== Interfacing with the Pmod===== The Pmod CLS can communicate with the host board through the [[pmod:communication_protocols:spi|SPI]], [[pmod:communication_protocols:i2c|I²C]], and [[pmod:communication_protocols:uart|UART]] protocols. Through these protocol standards users are able to set the cursor location and send other instructions by sending escape sequences. An escape sequence is specified by first sending the escape character (0x1B) followed by a left square bracket ‘[‘ (0x5B), and then one or more numeric parameters followed by the command character for the specific command. Check out our [[pmod:pmodcls:user-guide]] for a complete list of instruction commands or feel free to use our provided [[pmod:pmodcls:start#example_projects|example code]] in the Pmod CLS Resource Center. {{ :pmod:pmod:cls:temp2.png?250|Pmod CLS Block Diagram}} ==== Pinout Description Table ==== ^ Header J1 ||| ^ Header J2 ||| ^ Pin ^ Signal ^ Description |:::^ Pin ^ Signal ^ Description | | 1 | SS | Slave Select |:::| 1 | SCL | Serial Clock | | 2 | MOSI | Master-Out-Slave-In |:::| 2 | SDA | Serial Data | | 3 | MISO | Master-In-Slave-Out |:::| 3 | TXD | Transmit Data | | 4 | SCK | Serial Clock |:::| 4 | RXD | Receive Data | | 5 | GND | Power Supply Ground |:::| 5 | GND | Power Supply Ground | | 6 | VCC | Positive Power Supply (3.3V) |:::| 6 | VCC | Positive Power Supply (3.3V) | ^ Jumper JP1 || ||||| ^ State ^ Description |:::||||| | SS | Slave select pin connected to the Pmod CLS |:::||||| | RST | Reset pin connected to the Pmod CLS |:::||||| ==== Communication Protocol Selection ==== You can set the boards communication method by setting the mode jumpers MD0, MD1, and MD2 on the board. Possible mode jumper configurations are listed in the table below. For Rev D boards, a missing jumper is represented by 0 and a connected jumper is represented by 1. For Rev E boards, a missing jumper is represented by 1 and a connected jumper is represented by 0. ^ MD2, MD1, MD0 ^ Protocol ^ Details ^ | 0,0,0 | UART | 2400 baud | | 0,0,1 | UART | 4800 baud | | 0,1,0 | UART | 9600 baud | | 0,1,1 | UART | baud rate in EEPROM | | 1,0,0 | TWI | address: 0x48 | | 1,0,1 | TWI | address in EEPROM | | 1,1,0 | SPI | | | 1,1,1 | specified in EEPROM | specified in EEPROM | Any external power applied to the Pmod CLS must be within 2.7V and 5.5V; if you are powering the Pmod from its VCC pin, you must operate the Pmod at 3.3V in order for the on-board step-up switching regulator to work correctly. ---- ===== Physical Dimensions ===== The pins on the pin header are spaced 100 mil apart. The PCB is 1.8 inches long on the sides parallel to the pins on the pin header and 3.8 inches long on the sides perpendicular to the pin header. ---- ===== Additional Information ===== The schematics of the Pmod CLS are available {{reference:pmod:pmodcls:pmodcls_sch.pdf|here}}. Additional information about the ATmega48 including communication modes and specific timings of the chip can be found by checking out its datasheet [[http://www.atmel.com/images/doc2545.pdf|here]]. Similarly, the datasheet for the LCD screen can be found [[https://www.sparkfun.com/datasheets/LCD/HD44780.pdf|here]]. Information about how to communicate via I²C to the on-board Serial EEPROM can be found by checking out the EEPROM's datasheet [[http://ww1.microchip.com/downloads/en/devicedoc/21203m.pdf|here]]. More specific information about how to use the Pmod CLS can be found by checking out our [[pmod:pmodcls:start#additional_resources|user guide]]. Example code demonstrating how to get information from the Pmod CLS can be found [[pmod:pmodcls:start#example_projects|here]]. If you have any questions or comments about the Pmod CLS, feel free to post them under the appropriate section ("Add-on Boards") of the [[https://forum.digilent.com/|Digilent Forum]].