repstosw 18 28 августа, 2022 Опубликовано 28 августа, 2022 (изменено) · Жалоба 43 minutes ago, aaarrr said: Я и не писал, что вручную. Будьте внимательны. Но исходя из вашего контекста повествования, именно это вы имели ввиду! 21 minutes ago, sasamy said: готовый архив исходников Спасибо! Изменено 28 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 августа, 2022 Опубликовано 28 августа, 2022 · Жалоба 5 minutes ago, repstosw said: Но исходя из вашего контекста повествования, именно это вы имели ввиду! Не стоит утруждать себя додумыванием того, чего не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 42 28 августа, 2022 Опубликовано 28 августа, 2022 (изменено) · Жалоба 7 часов назад, repstosw сказал: Сталкивались ли вы с нехваткой пинов на интерфейсы? Если честно - нет. Много лет назад, когда начинал работу с IMX6 и выбрал такую плату, на которой было 4 уарта, в чипе был 5й, но разработчик платы решил, что лучше задублирует разъем усб дважды, но 5й уарт не разведет, а нужно было 5 штук (5й только прием), ну вот пришлось делать программный... В остальных случаях либо выбирал процы, либо оптимизировал свои хотелки))) 6 часов назад, aaarrr сказал: Бравирование незнанием и неумением смотрится так себе. Вот для примера, если я не линуксоид, зачем мне все это знать? Чтоб забить голову ненужной, кроме 1го случая инфой? Сомнительное занятие, не находите? 7 часов назад, repstosw сказал: Разработчиков V3s можно уже убить хотя бы потому, что: Да ладно уж таки))) Они ж сделали возможность MIPI камеры совместно с RGB... ЗЫ. Как по мне, уже давно пора отказываться от всего параллельного, дисплеев, камер и т.п. Ног занимает кучу, а скорости ниже. Изменено 28 августа, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 августа, 2022 Опубликовано 28 августа, 2022 · Жалоба 20 minutes ago, mantech said: Вот для примера, если я не линуксоид, зачем мне все это знать? Чтоб забить голову ненужной, кроме 1го случая инфой? Сомнительное занятие, не находите? Умение пользоваться общпринятой ныне системой контроля версий лишнее? Или способность разобраться с элементарной утилитой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 42 28 августа, 2022 Опубликовано 28 августа, 2022 · Жалоба 38 минут назад, aaarrr сказал: Умение пользоваться общпринятой ныне системой контроля версий лишнее? Не специалист по гитхабу, но никогда не было проблем что-то взять оттуда или скачать целиком. 39 минут назад, aaarrr сказал: Или способность разобраться с элементарной утилитой? И что за утилита? Скорей всего работает только под линуксом, и в командной строке? Предлагаете ради этого все это хозяйство установить на комп? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 августа, 2022 Опубликовано 28 августа, 2022 · Жалоба 28 minutes ago, mantech said: И что за утилита? patch. Конечно, есть и под win. А можно git am, раз уж нет проблем с git'ом (хотя уровень владения взять-скачать все же немного не то). Но нет: On 8/27/2022 at 1:23 PM, repstosw said: Так эти патчи... наматываются на линукс Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 29 августа, 2022 Опубликовано 29 августа, 2022 (изменено) · Жалоба 12 hours ago, aaarrr said: Не стоит утруждать себя додумыванием того, чего не было. Вы не правы в том, что самостоятельное изучение как работать с GIT и сопутствующими ему утилитами (для накладки патчей) - займёт у меня меньше времени, чем ручное разделение исходников в тексте бравады о патчах + применение Notepad++ в режиме пакетной замены. На самостоятельное освоение того, что расписал уважаемый sasamy , я бы потратил несколько часов. Тот же результат я получил всего через несколько минут ручным разделением. Но в будущем, теперь я знаю как накладывать патчи на сорцы. Спасибо за подробную инструкцию, sasamy ! 7 hours ago, mantech said: Да ладно уж таки))) Они ж сделали возможность MIPI камеры совместно с RGB... ЗЫ. Как по мне, уже давно пора отказываться от всего параллельного, дисплеев, камер и т.п. Ног занимает кучу, а скорости ниже. В камерах с MIPI CSI есть нездоровая тенденция делать "сырые" форматы без пост-обработки. Полагая, что этим должен заниматься набортный модуль в контроллере. Не всегда это удобно, особенно когда периферия закрыта(в случае с allwinner). Также MIPI обычно ставят там, где требуются большие разрешения. Большинство камер с малыми разрешениями не имеют MIPI. Камера OV5640 - исключение. Назовём её камерой-переростком (аморфное, среднее состояние): когда есть MIPI CSI, но ещё сохраняется возможность получить RGB/YUV и маленькие размеры кадра. Касаемо MIPI DSI... Полагаю, что дисплея 160x128 с MIPI DSI - НЕ существует. По аналогичной причине: MIPI ставят, где нужны большие скорости передачи данных (большие разрешения экрана) и на большие расстояния (вынос камеры или дисплея - до 15 м ?). Изменено 29 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 29 августа, 2022 Опубликовано 29 августа, 2022 · Жалоба 15 minutes ago, repstosw said: я бы потратил несколько часов Не верю. Но даже если и так, пользы было бы больше. 18 minutes ago, repstosw said: теперь я знаю как накладывать патчи на сорцы Не-а :) 20 minutes ago, repstosw said: большие расстояния (вынос камеры или дисплея - до 15 м ?). MIPI - это точно не про большие расстояния. Вот совсем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 29 августа, 2022 Опубликовано 29 августа, 2022 (изменено) · Жалоба 1 hour ago, aaarrr said: MIPI - это точно не про большие расстояния. Вот совсем. Зачем он (MIPI) тогда нужен? Помехозащищённость хорошо выходит и на печатной плате. И не надо диф-пары в воздухе крутить. Уменьшить число линий соединения? Тоже неубедительно: два лейна на данные и один на тактовый сигнал: уже 6 проводов + ещё пара (питание/земля). 8 линий вместо 14 как в DVP. Не очень большой выигрыш, чтобы ради этого ещё одну "матрёшку" делать (заворачивать DVP в MIPI на стороне камеры и обратно де-сериализировать MIPI обратно в DVP). Изменено 29 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 42 29 августа, 2022 Опубликовано 29 августа, 2022 (изменено) · Жалоба 3 часа назад, repstosw сказал: Зачем он (MIPI) тогда нужен? Не знаю, зачем нужен именно MIPI, полагаю, что они хорошо проплатили производителям, чтобы те использовали этот полузакрытый формат, но про дифпары - это гораздо лучше, чем параллельные ТТЛ уровни, чисто с т.з. физики передачи сигналов. На счет расстояния - тут вопрос шире, ибо нужны мощные дифф. передатчики, как это делается в эзернете, в видеоинтерфейсах такую дальность можно получить только высококачественными кабелями, типа HDMI, поэтому в MIPI вы такую дальность не получите, только те же 20-30см... 3 часа назад, repstosw сказал: Помехозащищённость хорошо выходит и на печатной плате. Ну если плата размером с коробок спичек, то да, на ней и параллельный хорошо работает, только вот кол-во сигналов, особенно в случае с RGB как-то не радует. Для сравнения RGB 24 бита - 28 ног LVDS (DSI) 8 или 10 ног. Но честь и хвала аллвиннеру, что все эти видеорежимы можно на тех же линиях порта D настроить. Изменено 29 августа, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба Подключил модуль LoRa1278F30 к V3s через SPI. Обнаружил подводный камень SPI: после установки 31-го бита в регистре SPI_TCR (запускает передачу SPI), нужно дождаться, пока этот бит сбросится, а потом работать с SPI дальше (читать из SPI). Если этого не делать, то SPI намертво повисает с LoRa1278F30 (а с NOR Flash не висло). Оригинальный код из x-boot этого НЕ учитывает. Ниже корректный вариант: int spi_transfer(void * txbuf, void * rxbuf, int len) { int count = len; u8 * tx = txbuf; u8 * rx = rxbuf; u8 val; int n, i; while(count > 0) { n = (count <= 64) ? count : 64; write32(SPI_MBC, n); spi_write_txbuf(tx, n); write32(SPI_TCR, read32(SPI_TCR) | (1 << 31)); while(read32(SPI_TCR)&(1<<31)); //необходимо ждать пока бит сбросится while((read32(SPI_FSR) & 0xff) < n); for(i = 0; i < n; i++) { val = read8(SPI_RXD); if(rx) *rx++ = val; } if(tx) tx += n; count -= n; } return len; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба Представьте себе... это написано в даташите Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 42 31 августа, 2022 Опубликовано 31 августа, 2022 · Жалоба 32 минуты назад, GenaSPB сказал: Представьте себе... это написано в даташите Как у вас, что-то с усб-хост стеком сдвинулось с места? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 31 августа, 2022 Опубликовано 31 августа, 2022 (изменено) · Жалоба Хост-стек ST с контроллером EHCI работает много недель уже... На основе SDK от repstosw делается USB DEVICE со стеком от ST - пока не сильно продвинулся. Только отдаю свои дескрипторы. Изменено 31 августа, 2022 пользователем GenaSPB Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 31 августа, 2022 Опубликовано 31 августа, 2022 (изменено) · Жалоба 57 minutes ago, GenaSPB said: Представьте себе... это написано в даташите Представьте себе, это не учтено в коде x-boot, который по моим соображениям, был написан авторитетными в этой области людьми. Из другого репозитория: всё тоже самое - опрос бита не учтён в коде: https://github.com/xboot/xboot/blob/master/src/arch/arm32/mach-v3s/driver/spi-v3s.c static int v3s_spi_xfer(struct spi_v3s_pdata_t * pdat, struct spi_msg_t * msg) { int count = msg->len * msg->bits / 8; u8_t * tx = msg->txbuf; u8_t * rx = msg->rxbuf; u8_t val; int n, i; while(count > 0) { n = (count <= 64) ? count : 64; write32(pdat->virt + SPI_MBC, n); v3s_spi_write_txbuf(pdat, tx, n); write32(pdat->virt + SPI_TCR, read32(pdat->virt + SPI_TCR) | (1 << 31)); while((read32(pdat->virt + SPI_FSR) & 0xff) < n); ....... А даташЫту я смотрю, когда столкнулся с реальной проблемой вроде этой. Хотя честно признаюсь, исходя из своего опыта, понял что именно там не хватало. Аналогичных регистров с такими битами повстречал уже довольно много. Изменено 31 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться