Test LCD 12864 with ST7920 in parallel and SPI mode and use adapter MCP23017 for I2C convert

2 Просмотры
Издатель
Often you need to use a larger display, but the OLED is too expensive. That's why LCD technology can be used. It's not as good as OLED, but it will do the job. I tested the LCD 12864, which is a standard backlit LCD and a ST7920 chipset. There are text mode with 4 rows with 16 characters (8 Chinese alphabets) per row, 128x64 graphics mode, and mixed mode of text and graphics. There is a built-in character generator with the Latin and Chinese alphabets, so working with this display is in 16 bit mode (HIGH byte and LOW byte). If you want to use another alphabet, you will need to work in graphics mode.
Chipset ST7920 supports parallel mode and serial SPI connection mode. The switching is done via the PSB pin. If you want to use an I2C connection it is necessary to use an I2C converting adapter to a parallel connection via the MCP23017 chip. MCP23017 is an I/O expander with 2 ports of 8 bits each. MCP23017 is a 2-port I/O expander with 8 bits each and operating frequencies 100 kHz, 400 kHz and 1.7 MHz.
My libraries for LCD 12864 support:
1. Parallel connection - unbuffered mode (only used the memory of the display - it works too slowly, because each operation must first read the corresponding word /16 bits/ to perform the manipulation on it and be saved again in the display);
2. Parallel connection - buffered mode (works with buffer memory in the microcontroller and periodically updated to the display - fast enough for animation);
3. SPI connection - only buffered mode (SPI on the chipset is not readable so the connection is one-way - in the demo the frequency is 2 MHz);
4. I2C connection - unbuffered mode (using adapter MCP23017 - too slow refresh, try with microcontroller supporting 1.7 MHz on I2C);
5. I2C connection - buffered mode (should try with microcontroller supporting 1.7 MHz on I2C);
Libraries are for PIC32 and MPLAB-Harmony.


Често се налага да се използва по-голям дисплей, но OLED е твърде скъп. Затова може да се използва LCD технологията. Не е качествена както OLED, но ще ви свърши работа. Направих тестове с LCD 12864, който представлява стандартен LCD с подсветка и чипсет ST7920. Има текстов режим 4 реда по 16 символа (8 китайски), графичен режим 128 по 64 и смесен режим изобразяващ едновременно текст и графика. Има вграден знаков генератор с латинската и китайската азбука, затова работата с този дисплей е в 16 битов режим (старши байт и младши байт). Ако искате за използвате друга азбука, ще трябва да работите в графичен режим.
Чипсет ST7920 поддържа паралелен режим и сериен SPI режим на връзка. Превключването се извършва чрез извод PSB. Ако искате да използвате I2C връзка е необходимо изпозването на адаптер конвертиращ I2C към паралелна връзка чрез чип MCP23017. MCP23017 представлява I/О експандер с 2 порта по 8 бита всеки и работни честоти 100 kHz, 400 kHz и 1.7 MHz.
Моите библиотеки за LCD 12864 поддържат:
1. Паралелна връзка - небуфериран режим (използва се само паметта на дисплея - работи твърде бавно, защото при всяка операция трябва първо да се прочете съответната дума /16 бита/ да се извърши манипулацията върху нея и да се запише отново в дисплея);
2. Паралелна връзка - буфериран режим (работи се с буферна памет в микроконтролера и периодично се обновява към дисплея - достатъчно бързо за анимация);
3. SPI връзка - само буфериран режим (при SPI в чипсета не е предвидено четене затова връзката е еднопосочна - в демото честотата е 2 MHz);
4. I2C връзка - небуфериран режим (използва се адаптер MCP23017 - твърде бавно опресняване, трябва да се опита с микроконтролер поддъжащ 1.7 MHz на I2C);
5. I2C връзка - буфериран режим (трябва да се опита с микроконтролер поддъжащ 1.7 MHz на I2C);
Библиотеките са за PIC32 и MPLAB-Harmony.
Комментариев нет.