Подключение экрана и ad/da на один spi

Тема в разделе "Raspberry Pi", создана пользователем ambulatur, 28 май 2020.

  1. ambulatur

    ambulatur Нуб

    В общем в наличии имеется RPi 2B v1.1
    Сверху к нему подключен High-Precision AD/DA Board (Waveshare Electronics Ltd.)
    [​IMG]
    https://www.terraelectronica.ru/product/1931563
    А на этот AD/DA сверху закинул дисплей
    [​IMG]
    http://www.lcdwiki.com/3.5inch_RPi_Display

    На RPi написал софт который считывает с ad/da информацию (к примеру с потенциометра)[​IMG]
    Всё великолепно(через VNC или HDMI), но при подключении дисплея и установки
    драйверов https://github.com/waveshare/LCD-show -> запуска скрипта LCD35-show и последующей попытке чтения с AD/DA на дисплее в рандомных местах появляется линия с рандомными пикселями и экран до перезагрузки перестаёт отвечать.
    Что дисплей, что AD/DA общаются с RPi через SPI интерфейс, возможно ли их разделить что бы заставить работать вместе?
    Или может имеет ли место быть подключения Arduino/STM32 с дисплеем к RPi и выводить на него информацию с AD/DA если имеет, через какой интерфейс подключаться(SPI будет занят, может i2c?) ?
     
  2. parovoZZ

    parovoZZ Гуру

    Разделить можно и нужно. Смотреть, куда у кого подключены пины выбора кристалла (как правило, это CS)
     
  3. ambulatur

    ambulatur Нуб

    Т.е можно обойтись переключением CS пина на другой вывод AD/DA и всё?
    Но CS и так расположены на разных портах:
    upload_2020-5-28_19-57-10.png
    на AD/DA пины 15/16
    upload_2020-5-28_19-57-40.png
    Дисплей 24/26
    Распиновка RPi2
    upload_2020-5-28_19-59-5.png
     

    Вложения:

  4. parovoZZ

    parovoZZ Гуру

    Значит, кого-то надо вешать на другой SPI. Система многозадачная, а один скрипт вообще без понятия, что крутится другой скрипт. Вообще, ось должна блокировать множественный доступ к одному и тому же ресурсу. С UART именно так и происходит. Как с SPI я хз.
     
  5. ambulatur

    ambulatur Нуб

    [​IMG]
    У Raspberry pi 2а пина под SPI это 24 и 26 (SPI_CEX_N)
    которые используют и AD/DA и Дисплей, т.е подключить дисплей к разным портам нету возможности из за отсутствия других, как это решить?
     
  6. ambulatur

    ambulatur Нуб

  7. parovoZZ

    parovoZZ Гуру

    Второй SPI интерфейс висит на пинах 35, 38 и 40.
     
  8. ambulatur

    ambulatur Нуб

    Нашёл распиновку SPI, и действительно на RPi 2а SPI https://pinout.xyz/pinout/spi
    Плата расширения AD/DA установлена на прямую к RPi, теперь нужно подключить дисплей.
    При подключении по схеме :
    2к2, 3к3,
    4к4,6к6,
    18к18,
    19к19,
    21к21,
    23к23,
    24к24,26к26
    всё работает в штатном режиме (но при взаимодействии с AD/DA платой, экран выключается т.к они висят на одном SPI)
    [​IMG]
    если перебросить с экрана на GPIO AD/DA Board
    19 на 38
    21 на 35,
    23 на 40
    то экран просто не заводится, неправильно выбрал пины или RPi 2 b v1.1 не поддерживает 2а SPI уст-ва ?
     
  9. ambulatur

    ambulatur Нуб

    Нужно ли редактировать конфиг RPi при работе с двумя SPI что бы они заработали?