jenya7 0 19 сентября, 2022 Опубликовано 19 сентября, 2022 · Жалоба Насколько совместима Orange Pi с Raspberry Pi? В частности на Raspberry Pi я пользовался LGPIO для SPI/UART/GPIO. Будет эта библиотека работать на Orange Pi? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 сентября, 2022 Опубликовано 19 сентября, 2022 · Жалоба Вроде как она универсальная, а не RPi-specific. Так что должна работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 19 сентября, 2022 Опубликовано 19 сентября, 2022 (изменено) · Жалоба On 9/19/2022 at 1:12 PM, aaarrr said: Вроде как она универсальная, а не RPi-specific. Так что должна работать. на малинке (Debian) я устанавливал так wget http://abyz.me.uk/lg/lg.zip unzip lg.zip cd lg make sudo make install на Orange Pi (Ubuntu) ругается - не видит http://abyz.me.uk/lg/lg.zip файл. изменился репозиторий? в Windows с браузера я могу скачать файл. Изменено 19 сентября, 2022 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 сентября, 2022 Опубликовано 19 сентября, 2022 · Жалоба 24 minutes ago, jenya7 said: изменился репозиторий? в Windows с браузера я могу скачать файл. Очевидно, не изменился, если на ПК доступен. А вот как настроена и работает сеть на OPi - вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 19 сентября, 2022 Опубликовано 19 сентября, 2022 (изменено) · Жалоба On 9/19/2022 at 1:52 PM, aaarrr said: Очевидно, не изменился, если на ПК доступен. А вот как настроена и работает сеть на OPi - вопрос. ок. скачал и распаковал вручную. cd /root/lg - OK make - OK sudo make install - тут ругается - command not found - что то не так? блин. открыл текстовый файл в либре офис а он какие то чары невидимые вставляет. всё нужно вводить вручную. Изменено 19 сентября, 2022 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 сентября, 2022 Опубликовано 19 сентября, 2022 · Жалоба 2 minutes ago, jenya7 said: что то не так? Определенно чего-то не хватает, sudo, например. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 19 сентября, 2022 Опубликовано 19 сентября, 2022 · Жалоба On 9/19/2022 at 1:57 PM, aaarrr said: Определенно чего-то не хватает, sudo, например. библиотека работает на апельсинке, по крайней мере SPI конфигурируется и получает дескриптор. правда не пишет в шилд расширения портов. буду копать дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба On 9/19/2022 at 2:49 PM, jenya7 said: библиотека работает на апельсинке, по крайней мере SPI конфигурируется и получает дескриптор. правда не пишет в шилд расширения портов. буду копать дальше. Не пойму почему не работает #include "io_board.h" #include "mcp23s17.h" static int spi_handle_1; //CS0 static int spi_handle_2; //CS1 int IO_BOARD_Setup() { //open handle for each chip select spi_handle_1 = lgSpiOpen(0, 0, 4000000, 0); spi_handle_2 = lgSpiOpen(0, 0, 4000000, 0); IO_BOARD_PinConfig(); return spi_handle_1; } void IO_BOARD_PinConfig() { uint8_t tx_data[3]; uint8_t rx_data[3]; tx_data [0] = static_cast<uint8_t>(CMD_WRITE); tx_data [1] = MCP23x17_IODIRA; tx_data [2] = 0; //clear bits for all outputs IO_BOARD_Xfer(spi_handle_1, reinterpret_cast<char *>(tx_data), reinterpret_cast<char *>(rx_data), 3); tx_data [1] = MCP23x17_IODIRB; IO_BOARD_Xfer(spi_handle_2, reinterpret_cast<char *>(tx_data), reinterpret_cast<char *>(rx_data), 3); } void IO_BOARD_Xfer(int spi_handle, char *tx_buf, char *rx_buf, int count) { lgSpiXfer(spi_handle, tx_buf, rx_buf, count); } void IO_BOARD_PortWrite(uint8_t chip, uint8_t port, uint8_t value) { uint8_t tx_data[3]; uint8_t rx_data[3]; int spi_handle; if (chip == 1) spi_handle = spi_handle_1; else if (chip == 2) spi_handle = spi_handle_2; else return; tx_data [0] = static_cast<uint8_t>(CMD_WRITE); tx_data [1] = port; tx_data [2] = value; IO_BOARD_Xfer(spi_handle, reinterpret_cast<char *>(tx_data), reinterpret_cast<char *>(rx_data), 3); } проверяю uint32_t COMMANDS::Out(uint32_t argc, char** args) { if (argc < 1) return MSG_MIS_ARG; char *subcom = ToLower(args[1]); if (strcmp (subcom,"set") == 0) { IO_BOARD_Setup(); } else if (strcmp (subcom,"write") == 0) { if (argc < 3) return MSG_MIS_ARG; int ival = atoi(args[2]); uint8_t chip = static_cast<uint8_t>(ival); ival = atoi(args[3]); uint8_t val = static_cast<uint8_t>(ival); IO_BOARD_PortWrite(chip, MCP23x17_GPIOA, val); } return MSG_OK; } На малинке этот код работает, на апельсинке нет. Ни там ни там я не конфигурирую пины, полагаю они прописаны в каком нибудь dtb но у них полная совместимость по пинам так что код должен работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба 13 minutes ago, jenya7 said: полагаю они прописаны в каком нибудь dtb Могли и "забыть". Да и результаты вызовов стоит проверить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasa 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба Нужен совет гуру - обсуждаемая библиотека и bcm2835.... какая получше будет для малинки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба On 9/20/2022 at 8:12 AM, aaarrr said: Могли и "забыть". Да и результаты вызовов стоит проверить. не поленился достал скоп - не генерируется клок при вызове. смотрю ls -l /dev вижу spidev0.0 в файле armbianEnv.txt overlays=spi-spidev param_spidev_spi_bus=0 вроде всё честно On 9/20/2022 at 8:32 AM, Pasa said: Нужен совет гуру - обсуждаемая библиотека и bcm2835.... какая получше будет для малинки? обсуждаемая библиотека работает на малинке 100%. проверенно. я подключил bcm2835 библиотеку но не проверял ещё. в принципе она должна быть гораздо функциональней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasa 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба 10 minutes ago, jenya7 said: она должна быть гораздо функциональней. эээээ.... bcm2835 более? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 (изменено) · Жалоба On 9/20/2022 at 8:48 AM, Pasa said: эээээ.... bcm2835 более? для сравнения настройка с bcm2835 if (!bcm2835_init()) return -1; if (!bcm2835_spi_begin()) return -1; bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST); // The default bcm2835_spi_setDataMode(BCM2835_SPI_MODE0); // The default bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_65536); // The default bcm2835_spi_chipSelect(BCM2835_SPI_CS0); // The default bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, LOW); // the default кроме того библиотека даёт доступ ко всей периферии, таймерам например. Изменено 20 сентября, 2022 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pasa 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба значит буду ориентироваться на bcm2835 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 сентября, 2022 Опубликовано 20 сентября, 2022 · Жалоба On 9/20/2022 at 9:14 AM, Pasa said: значит буду ориентироваться на bcm2835 я думаю это правильное решение Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться