Raspberry Pi 3 (RaspbianOS) и OLED дисплей 3,12 дюйма (SSD1322) - проверка работоспособности.

Приветствую читающих!

        Хочу поделиться с вами информацией, как после покупки на AliExpress настал момент проверки работоспособности OLED дисплея 3,12 дюйма дюйма (256*64 25664 точек) на Raspberry Pi 3.

        На тот момент у продавца была одна из самых приятных цен, но напрочь отсутствовала какая-то информация, решил, что разберусь по факту.


        Пока дисплей ехал с Китая, начал более детально анализировать варианты его подключения, но уже в первой статье рекомендовали, сверять варианты подключения с даташитом, но информацию продавец не мог предоставить.

     Так же, в разных даташитах и примерах была и соответственно и такая же информация по подключению дисплея с к питанию: только +3,3В, только +5В или от +3,3В ... +5В.

 

        Дополнительно, встречал информацию о том, что выходы 7, 8, 9, 10, 11, 12, 13 у OLED дисплея должны быть подключены на общую землю GND.


         И так, дисплей приехал, подготавливаем его к работе в режиме 4SPI, для этого резистор-перемычку перемещаем с R6 на R5, R8 оставляем без изменений.

 

        За основу проверки работоспособности дисплея - беру информацию из сайта Blue 3.2 inch Arduino,Raspberry Pi OLED Display Module 256x64 SPI, т.к. там есть следующие примеры:

        Открываю файл Interfacing 4-Wire SPI OLED Display Module to Raspberry Pi смотрю схему подключения,  а здесь рекомендуют комбинацию подключений из приведенных выше, а именно - записать от +3,3В, но и выходы 7, 8, 9, 10, 11, 12, 13 подключить на общую землю GND.

        Принимаю решение, подключать как показано на схеме ниже, т.е. к +3,3В и только линии управления дисплеем. 

         Забегая наперёд скажу, что заработало и без подключения выводов 7, 8, 9, 10, 11, 12, 13 к GND, но если у вас не запускается дисплей, рекомендую все же подключить, т.к. видел информацию, что это помогало.

       Далее будет пример кода, который взял из Raspberry Pi Library and Example и актуализировал насколько позволяли знания, и исходя из своей платформы  Raspberry Pi 3  (2021-05-07-raspios-buster-armhf):

  == Hardware connection ==   
 Note:The module needs to be jumpered to an SPI interface.
Unused signal pin Recommended to connect to GND
      OLED   =>    Raspberry Pi
  *1. GND    ->    GND
  *2. VCC    ->    3.3
  *4. SCL    ->    SCK
  *5. SDI    ->    MOSI
  *14. DC     ->    18 (Physical, BCM: 24)
  *15. RES    ->    22 (Physical, BCM: 25)
  *16. CS     ->    24 (Physical, BCM: CE0, 8)
 
  == How to use ==

sudo apt-get update -y

1. install the C libraries of bcm2835, see: http://www.airspayce.com/mikem/bcm2835/
===
You also need to do these steps on the host once, to support libcap and not-root read/write access to /dev/mem:
Install libcap support

      
sudo apt-get install libcap2 libcap-dev

2. Add current user to kmem group

\code
sudo adduser $USER kmem

 
Allow write access to /dev/mem by members of kmem group
 
echo 'SUBSYSTEM=="mem", KERNEL=="mem", GROUP="kmem", MODE="0660"' | sudo tee /etc/udev/rules.d/98-mem.rules
 
sudo reboot
 
3. Installation

This library consists of a single non-shared library and header file, which will be installed in the usual places by make install
# download the latest version of the library, say bcm2835-1.xx.tar.gz, then:

cd

wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.69.tar.gz

// If Pi can't figure out this URL wget http://67.192.60.197/mikem/bcm2835/bcm2835-1.69.tar.gz

tar xvfz bcm2835-1.69.tar.gz

cd bcm2835-1.69

./configure

make

sudo make check

sudo make install

4. Change the current directory to where the Makefile and oled.c file located.  
 
cd

sudo wget https://www.buydisplay.com/Raspberry_Pi/ER-OLEDM032-1_Raspberry_Pi_Tutorial.zip

4.1. Now create a temporary folder
sudo mkdir ./SSD1322

4.2. Unzip the previously downloaded file

sudo apt-get install -y minizip

sudo miniunzip ER-OLEDM032-1_Raspberry_Pi_Tutorial.zip -d ./SSD1322

4.3. Go to this folder
cd ./SSD1322/ER-OLEDM032-1_Raspberry_Pi_Tutorial/SPI_Interface
 
4.4. Compile the file with:  
sudo make
 
4.5. Run the demo with: 
sudo ./oled

  == Note ==
  * If the characters are shown in wrong condition, you could try other parameters in
    bcm2835_spi_setClockDivider(uint16_t )
    like bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_2048);
  */

Результат запуска на моёй платформе показан на видео:

UPDATE: продолжение с запуском на Volumio








Комментарии

Популярные сообщения из этого блога

Install OpenWRT on a PC

Youtube api credentials for OSMC / LibreElec (Raspberry Pi Zero W)

Raspberry Pi 3 (Volumio) и OLED дисплей 3,12 дюйма (SSD1322) - проверка работоспособности.