-
Постов
2 582 -
Зарегистрирован
-
Победитель дней
2
Сообщения, опубликованные repstosw
-
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
1 hour ago, vervs said:Но в Вашем случае ПМСМ достаточно на вход УНЧ поставить обычный ОУ в дифференциальном включении (прямо на той же плате где УНЧ). На прямой вход подать звук, на инверсный землю от источника звука, резистор в землю УНЧ, лучше резисторы взять 0,1% .
Так и сделано:
Но в случае с этой платой CPU, шум не убирается.
Остаётся попробовать сделать противофазные сигналы программно: стерео, один из каналов - инверсия второго.
-
2 minutes ago, mantech said:
Так к слову, не знаете, где взять оригинальный исходник, о котором написано в RTOS_G2D_Development_Guide.pdf
Не знаю.
Мне достаточно было Linux-исходников.
Вот ещё что подумалось: если высота кадра всего 1080, то повернутый прямоугольник 1920x1080 не влезет полность в экран, срежется снизу. Скорее всего G2D не умеет отсечение. Поэтому область задавать надо 1920x1920.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
1 hour ago, mantech said:Да, когда писал, что вывелся квадрат 1080 1080, в windowY указывал 741, видимо из расчета 1920-1080+1. Но как заставить выводить высотой не 1080, а 1920 пока х.з.((
С ходу так не определить... Для своих случаев я рисовал картинку на бумаге и арифметически рассчитывал.
В первом приближении - представить исходный прямоугольник с начальными координатами левого верхнего угла, затем его повернуть. И рассчитать новое положение этого угла - в координатах дисплея (дисплейного буфера)
1 hour ago, mantech said:Но 2й фрейм не повернут))
Он повёрнут. Просто камера одного из собеседников(слева) не была повёрнута на 90 градусов.
1 hour ago, GenaSPB said:Вопрос по координате выходного окна.
Правильно ди я понимаю, что при повороте надо указать пиксель, соответствующий начальной координате (левая-верхняя точка входного)?Очевидно, что да.
1 hour ago, GenaSPB said:Еще, при повороте на 180 например, координата находится внутри выходного прямоугольника или на один пиксель правее-ниже?
Эксперименты покажут.
Для начала я бы всё-таки попытался вывести не 1920x1080, а в 10 раз меньше 192x108 в центр экрана. Тогда никаких вылетов за пределы видеопамяти не будет.
Затем нашёл бы формулу нахождения координат при нужном угле.
А потом -вернулся к 1920x1080
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
45 minutes ago, vervs said:Более радикально использовать диф. сигнал (можно ДУ перед входом УНЧ), трансформаторную развязку или что-то наподобие MS3121
Имеется два выхода - левый и правый каналы. К сожалению, они не могут работать в противофазе, как это мог делать чип-предшественник(V3s). Поэтому вопрос остается открытым - как сделать дифференциальный выход из однополярного?
Пробовал полевой транзистор с двумя резисторами - в цепи стока и истока, и с резисторов снимал два сигнала. Но выигрыша в помехозащищённости это не дало, так как всё крутится вокруг грязной земли.
Ситуацию ухудшает источник тока для подсветки (на фотах не показан) - мощный светодиод с током 300 мА, который диммируется ШИМ: если заполнение импульса не равно 0 или 100%, то я слышу также гудение этого преобразователя (источник тока на базе микросхемы DC/DC).
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
15 hours ago, HardEgor said:Как обычно запитать прямо от АКБ...
15 hours ago, HardEgor said:Идеально унч запитать напрямую от АКБ отдельными проводами.
А вот и нифига... Взял внешний УНЧ класса D, запитал его напрямую от аккумулятора. Также запитал плату MangoPi напрямую. Плюс и минус питания: разветвляются на УНЧ и на CPU-плату.
В наушниках отчётливо слышу чирикание при загрузке программы с SD-карты. Фото ниже:
Потом попробовал перекинуть GND УНЧ на другие пины на плате CPU. Нашёл положение с "чистой" землёй.
При таком положении чирикание SD-карты в наушниках пропало.
Земля очень уязвима - вход УНЧ относительно высокоомный.
Плюс на питание УНЧ поставил ФНЧ из резистора 47 Ом и конденсатора 470 мкФ (керамика также присутствует) - для того, чтобы убрать одиночные потрескивания иногда.
Фото ниже:
Ну, и.... Какие выводы напрашиваются?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
14 hours ago, mantech said:Жалко нет аналога на НЕОНе, каждый раз мозги выпаривать с этими корками...
Но это не означает, что его нельзя написать самому, переложив на SIMD.
В TMS320C6745 самостоятельно делал поворот видеобуфера на 90 градусов (потому что дисплей был с портретной ориентацией развёртки, нужна была отрисовка соосная с ходом луча для VSYNC) :
void Rot_Buffer(void) { for(int y=0;y<(SCREEN_HEIGHT<<1);y+=8) { u64 * __restrict vc=(u64*)(VIDEO_CACHE+y); u64 * __restrict vb0=(u64*)&VRAMBuffer[((SCREEN_WIDTH-4)<<1)+(SCREEN_WIDTH*y)]; u64 * __restrict vb1=vb0+(SCREEN_WIDTH>>2); u64 * __restrict vb2=vb1+(SCREEN_WIDTH>>2); u64 * __restrict vb3=vb2+(SCREEN_WIDTH>>2); for(int x=0;x<(SCREEN_WIDTH>>2);x++) { _amem8(&vc[(3*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16) _amem8(&vb0[-x]) ))|((u64)((u16) _amem8(&vb1[-x]) )<<16)|((u64)((u16) _amem8(&vb2[-x]) )<<32)|((u64)((u16) _amem8(&vb3[-x]) )<<48); _amem8(&vc[(2*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>16)))|((u64)((u16)(_amem8(&vb1[-x])>>16))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>16))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>16))<<48); _amem8(&vc[(1*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>32)))|((u64)((u16)(_amem8(&vb1[-x])>>32))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>32))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>32))<<48); _amem8(&vc[(0*(SCREEN_HEIGHT>>2))+(SCREEN_HEIGHT*x)])=((u64)((u16)(_amem8(&vb0[-x])>>48)))|((u64)((u16)(_amem8(&vb1[-x])>>48))<<16)|((u64)((u16)(_amem8(&vb2[-x])>>48))<<32)|((u64)((u16)(_amem8(&vb3[-x])>>48))<<48); } } }
Так вот, оно очень хорошо запараллелилось.
10 hours ago, mantech said:Пробовал, все полосит и вообще мусор не экране, иногда в хардфаулт вылетает, видимо лезет за пределы экранного буфера.
Проблема в некорректном указании координат вывода финального изображения. Там будет не (0,0). А с учётом поворота.
14 hours ago, mantech said:может он вообще только квадратные объекты поворачивает?
Прямоугольные тоже поворачивает. Рисую на экран 320x240 пару фреймов 160x240 повёрнутые на 270 градусов.
Координаты вывода такие:
#define BUFFER_WIDTH 320 #define BUFFER_HEIGHT 240 #define WINDOW0_WIDTH 240 #define WINDOW0_HEIGHT 160 #define WINDOW1_WIDTH WINDOW0_WIDTH #define WINDOW1_HEIGHT WINDOW0_HEIGHT #define WINDOW0_X (((3*BUFFER_WIDTH)/4)-(WINDOW0_HEIGHT/2)) #define WINDOW0_Y ((BUFFER_HEIGHT-WINDOW0_WIDTH)/2) #define WINDOW1_X ((BUFFER_WIDTH/4)-(WINDOW1_HEIGHT/2)) #define WINDOW1_Y ((BUFFER_HEIGHT-WINDOW1_WIDTH)/2) //... G2D_Rot.dst_x=WINDOW0_X; //координаты вывода левого фрейма G2D_Rot.dst_y=WINDOW0_Y; G2D_Rot.dst_x=WINDOW1_X; //координаты вывода правого фрейма G2D_Rot.dst_y=WINDOW1_Y;
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
35 minutes ago, HardEgor said:Какая длина проводов будет? Идеально унч запитать напрямую от АКБ отдельными проводами.
Не будет питающих проводов. Будет 4-слойная печатная плата с внутренними сплошными плейнами земли и питания.
Но на модуле платы с процессором - источник звука с землёй, которая соединяется с цифровой не совсем правильно. Потому что китайцы.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
53 minutes ago, vervs said:Подавление пульсации у 8301 не очень высокое, лучше запитать от АКБ, если мощности мало взять более низкоомный динамик, но с землями (точками подключения АКБ, УНЧ, источника сигнала) аккуратно
Мой опыт показал, что он вообще не подавляет пульсации. Поэтому я опасаюсь, что если его запитать от аккумулятора напрямую, то я услышу писк и треск от ШИМ'ов преобразователей - в аудиотракте УНЧ - в наушниках/в динамике, питающихся с этого аккумулятора и питающих другие узлы:
1) ядро процессора 0,95 V
2) DDR память 1,5 V
3) Порты ввода-вывода 3,3 V
4) Подсветка дисплея 12 V (источник тока 20 мА)
5) Подсветка камеры в темное время суток - 6V (источник тока 300 мА )
6) Трансивер 435 МГц - 5..6 V ( ток при передачи 500 мА)
Тоесть: основная цель - не допустить появления помех в аудио-тракте УНЧ , от работы ШИМ конвертеров и цифровых узлов
-
27 minutes ago, aaarrr said:
Корректно. А если потребители позволяют, то можно не зацикливаться на 3.3, а установить 3.0 или 2.7, например.
У меня один потребитель требует 5...6 В. Как правильно сделать:
1) запитать все потребители от выхода повышающего преобразователя 5V, в том числе и плату с t113-s3 у которой вышеупомянутый EA3036C ?
2) запитать от 5V только потребитель, требующий питания 5V, а остальное от литий-ионки ?
Плюс есть УНЧ PAM8301 - как правильно сделать его питание? Чтобы в отстутствии сигналов не было треска. LDO поставить? На какое напряжение? И откуда брать первичное питание - с повышающего DC/DC или с литий-ионки?
-
Насколько правильно получить выходное напряжение 3.3V из одной литий-ионки (4,2...3,7V), используя понижающий DC/DC конвертер типа EA3036C ?
Даташит на микросхему DC/DC: https://datasheet.lcsc.com/lcsc/2005300208_Everanalog-IC-design-EA3036CQBR_C570857.pdf
Запитал плату MangoPi с T113-s3 от литий-ионки: напряжение 3.3V присутствует. Ток потребления - до 0.3A.
Насколько корректно?
Два аккумулятора последовательно ставить - не хочу.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
2 hours ago, mantech said:Данные могут приходить от программного PNG декодера, поэтому сброс кэша нужен, и выходной поток тоже может быть использован в постобработке.
В таком случае, использую инвалидацию кеша, когда процессор использует данные от декодера. И сброс с кеша, когда процессор готовит данные для энкодера.
2 hours ago, mantech said:Вот тут чет затупил, что это такое? first_dimension - это ширина источника, или что? Или это высота*ширину источника?
Длина и ширина источника.
2 hours ago, mantech said:Вот здесь, я так понял, что нужно поставить G2D_FMT_ABGR_AVUY8888, т.к. плоскость RGB ?
Да. Константа с нужным порядком следования компонент RGB.
2 hours ago, mantech said:Тут как понимаю 2 адреса из-за плоскости Y\C в RGB нужен только первый?
Да. Для RGB нужен только с индексом [0]. остальные не нужны.
2 hours ago, mantech said:Ну и вот тут бы пояснительную бригаду)))
Это координаты левого верхнего угла вывода изображения в финальном видеобуфере.
-
14 hours ago, Aner said:
берете nanoVNA и померив получаете все ответы на ваши вопросы в конкретных цифрах. ... Куда проще не знаю.
Интересно, как VNA может помочь ответить на вопрос 1):
16 hours ago, repstosw said:1) Какое из переключений лучшее в плане помехозащищённости (для приёмника) ?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
1) Поворот и масштабирование не могут одновременно выполняться
2) Поворот и конверсия цветов не могут одновременно выполянться
3) Инвалидация кеша вызывается другой функцией
4) Если процессор не участвует в обработке данных, то инвалидация(invalidate) и сброс с кеша(flush/clean) не нужны (цепочка: Декодер => G2D) .
Ниже - рабочий поворот на 270 градусов:
void G2D_Run(struct pipeline_dev *pd) { g2d_blt G2D_Rot; G2D_Rot.flag=G2D_BLT_ROTATE270; G2D_Rot.src_image.w=pd->rm->first_dimension; G2D_Rot.src_image.h=pd->rm->second_dimension; G2D_Rot.src_rect.w=pd->rm->first_dimension; G2D_Rot.src_rect.h=pd->rm->second_dimension; G2D_Rot.src_image.format=G2D_FMT_PYUV420UVC; G2D_Rot.src_image.pixel_seq=G2D_SEQ_NORMAL; G2D_Rot.src_image.addr[0]=(u32)((u8*)pd->rm->address+(((pd->rm->first_dimension*pd->rm->second_dimension)/2)*(((pd->swap^1)*3)+0))); //Y G2D_Rot.src_image.addr[1]=(u32)((u8*)pd->rm->address+(((pd->rm->first_dimension*pd->rm->second_dimension)/2)*(((pd->swap^1)*3)+2))); //UV G2D_Rot.src_rect.x=0; G2D_Rot.src_rect.y=0; G2D_Rot.dst_image.addr[0]=(u32)((u8*)pd->wm->address+(((pd->wm->first_dimension*pd->wm->second_dimension)/2)*((pd->swap*3)+0))); //Y G2D_Rot.dst_image.addr[1]=(u32)((u8*)pd->wm->address+(((pd->wm->first_dimension*pd->wm->second_dimension)/2)*((pd->swap*3)+2))); //UV G2D_Rot.dst_image.w=pd->wm->first_dimension; G2D_Rot.dst_image.h=pd->wm->second_dimension; G2D_Rot.dst_image.format=G2D_FMT_PYUV420UVC; G2D_Rot.dst_image.pixel_seq=G2D_SEQ_NORMAL; G2D_Rot.dst_x=WINDOW0_X; G2D_Rot.dst_y=WINDOW0_Y; G2D_Rot.color=0x000000; G2D_Rot.alpha=0xFF; g2d_blit(&G2D_Rot); //... }
-
Модуль RF4463F30, основнанный на RFIC Si4463 подвергся изменениям (в версии 3.0) - появились pin-диоды вместо SPDT-ключа:
Ранее был ключ (версия 1.0 или 2.0):
Вопросы:
1) Какое из переключений лучшее в плане помехозащищённости (для приёмника) ?
2) Какое из переключений лучшее в минимизации потерьмощности передачи ?
3) Сравнить надёжность обоих способов - через Pin-диоды и через SPDT-ключ: каковы достоинства, недостатки?
Частоты: 430 ... 440 МГц. Мощность 1 Вт. Манипуляция: 2/4 (G)FSK. Битрейт 1 Мбит/c.
-
On 2/8/2024 at 11:56 AM, repstosw said:
Вот и закрались у меня сомнения, сможет ли этот модуль(фоты ниже) дать хотя бы 4.95V при токе 0.75A ?
Вопрос закрыт. Напряжение практически не падает при токе потребления ~ 1 A.
-
-
Здесь пробегало решение на белых светодиодах.
Как раз есть шилд от этой камеры с двумя сверх-яркими светодиодами белой подсветки:
Но смотреть на это - неприятно, особенно в темноте. Есть ли светодиоды белые с рассеивателями? Или рассеиватель только сделать можно внешним?
Не ухудшит ли рассеиватель параметры освещения лица перед камерой?
9 hours ago, EdgeAligned said:Когда используете не предназначенные для заданной цели инструменты, это всегда будет "наугад". Если возьмете специализированную камеру для ИК, тогда можно будет снизить мощность ИК-светодиодов. Скупой платит дважды.
Изначально я не ставил таких требований к устройству: ночная съёмка. Это появилось уже после, как купил модуль камеры. Склонен впадать в бесконечный перфекционизм.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Вопрос всем тем, кто постит инфу о демонтаже ИК-фильтра: где вы тут видите ИК фильтр?
Камера эта в нуль-посте приведена.
18 minutes ago, niXto said:Я бы рекомендовал купить нормальную камеру, которой достаточно света от монитора, а не натягивать костыли на костыли, ради мнимой экономии рискуя здоровьем.
От какого монитора? Речь не о ПК и не о вёбке. Речь о портативном видео-чате размером с ладонь. Фотка макета устройства на предыдущей странице форума.
Нужно, чтобы камера снимала лицо собеседника в среде без внешних источников света в абсолютной темноте.
Если это не получится без нанесения ущерба для здоровья, значит я отменю идею съёмки в темноте, буду довольствоваться работой устройства при внешнем освещении.
P.S. У меня одного такое впечатление, что большинство ответов похожи на ответы от ботов? Ибо настолько поверхностное ознакомление с темой, что можно отсеять сразу 90% .
-
11 minutes ago, AlexMI said:
ИК фильтр это такая стекляшка прозрачная на просвет, но бликующая красным,
Есть такая камера с красным объективом: OV2640.
В случае камеры, которая в нуль-посте (OV5640AF) - красное стекло отсутствует. Стекло бело-серого цвета
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
42 minutes ago, iva-nil said:а у вас на камере случаем нет ИК-фильтра ? на малом расстоянии и одного обычного диода хватает.
Честно говоря, не знаю. Камера OV5640AF - с автофокусом. Линза бегает туда-сюда, слышно как щёлкает.
Этот ИК фильтр - визуально как должен выглядеть? Или он программный?
Как я писал выше, чудес в ночном видении от 3-мм светодиода 940 нм при токе 20 мА не произошло. Камера видит только точку - светящийся кристал диода. Окружающие предметы как были в темноте - так и остаются
37 minutes ago, HardEgor said:Читать не умеет? Тогда ищите СанПиН.
Это всё очень страшно написано. И я не могу соотнести свои вводные данные к этому описанию. Многое непонятно. В частности, непонятно, какая доля мощности попадёт на роговицу глаза и дальше. И насколько это опасно.
И если визуально это будет тусклый рубиновый цвет, по ощущениям никакого дискомфорта не будет если на него смотреть - то значит ли это то, что смотреть безопасно? Или есть невидимые для глаза составляющие от ИК светодиода, которые никак не ощущаются, но очень опасны для зрения?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
51 minutes ago, EdgeAligned said:2. Вот не скажу за камеру OV5640 и за то, как она ведет себя в ИК-диапазоне, но 6 Вт мощности ИК-диодов на расстоянии 20 см - это просто овер-дофига. ИК-подсветки камер делаются на обычных 5-мм светодиодах, и этого достаточно для такого малого расстояния. Ну и как бы когда камера в 20 см от лица, это лицо будет выглядеть ужасно по пропорциям. Нужна будет программная коррекция искажений.
Нет никаких ощутимых искажений:
Могу один светодиод поставить 3-х ваттный. Так даже проще будет. Вместо двух.
Я пробовал поставить обычный ИК светодиод на 940 нм диаметром 3 мм, с током 20 мА всего. Не помогает. Всё темно. Но камера видит, что светодиод горит - в виде крохотной точки всего... Надеюсь, 3 Вт будет достаточно для освещения лица. И главное роговицу и сетчатку не повредить!
1 hour ago, HardEgor said:Слишком всё в общих чертах. И не указаны мощности.
Конкретно в моём случае - светодиод 3 Вт с 850 нанометрами, с углом 120 градусов, на расстоянии не менее 20 см от лица/глаз - могут что-то плохое с глазами сделать или нет?
2 hours ago, EdgeAligned said:3. Да, виден. Воспринимается как глубокий темно-рубиновый цвет небольшой яркости.
Будет ли он вреден для глаз, если смотреть на него на расстоянии 20 см?
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Планирую использовать мощный светодиод для подсветки камеры, чтобы собеседник видел моё лицо, и чтобы я видел лицо собеседника - в темноте.
Мощность 3 Вт, ток 0,7 А, длина волны 850 нм. Угол 120 градусов.
Сам диод вот такой:
Камера вот такая:
Итак, вопросы:
1) Насколько опасно будет смотреть в камеру и на рядом расположенный с ней светодиод (планирую поставить 1 или 2 таких светодиода) ? Можно ли испортить зрение?
2) Второй вопрос: насколько будет эффективной такая ИК подсветка, из 1-2 светодиодов? Камера должна снимать лицо собеседника на максимальном расстоянии всего до 20 см.
3) Будет ли виден свет от таких светодиодов человеческому глазу? (850 нм, 3 Вт, 120 градусов).
-
1 hour ago, mantech said:
Так вроде задумано было, что линукс сидит только на кортексах, а ДСП работает в бареметал, ибо линукс на него не поставить в принципе
Под ADSP BlackFin есть μClinux. При этом у Blackfin нет даже MMU.
-
Опубликовано · Изменено пользователем repstosw · Пожаловаться
16 minutes ago, mantech said:Ну да, по уму производитель должен предоставить еще и SDK для этого, чтоб не оставлять покупателя один на один с непонятным чудом, ИМХО...
В свое время для IMX6 производитель предоставлял кроме линукса и вполне неплохой SDK бареметал - очень хороший пример заботы об потребителях из не только линуксового сообщества
Для сосременных мощных камней - мэйнстрим - это Linux. Поэтому все SDK производителя будут крутиться вокруг Линукса.
Xtensa - не исключение. Производитель предлагает использовать и писать программы под FREERTOS.
На планете найдутся не так много
извращенцевлюбителей писать код в BareMetal: я, вы, Геннадий и может ещё пара человек с форума. Всё.QuoteВ свое время для IMX6 производитель предоставлял кроме линукса и вполне неплохой SDK бареметал
В своё время интересовался IMX6. Но к тому времени, они уже убрали с сайта фирменный SDK. Нашёл только любительский SDK, в котором было не всё.
Получить 3.3V с понижающего DC/DC и входного напряжения 3.7V
в В помощь начинающему
Опубликовано · Изменено пользователем repstosw · Пожаловаться
Сделал два противофазных сигнала с каналов Left/Right. Работает. Посторонних звуков теперь нет. Даже при работающем источнике тока для подсветки.
Вывод А1 микросхемы - резистор отлепил от GND и подключил ко второму каналу.