Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

50 minutes ago, aaarrr said:

Так посмотрите, есть ли на MCLK половина питания.

Замерил.   2,61V выходит.

Питание 3,32 V

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, aaarrr said:

Тогда вряд ли там есть тактовый сигнал.

Спасибо! Чуть позже продолжу копать.

 

P.S. Скорее всего клока нет потому что непроинициализированы регистры CSI: не включен модуль.  Хоть и клоки все включены.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, GenaSPB сказал:

Модно на плате попробовать завесить к +питания hold и wp

Не пробовал, но с MXIC на тот же объем все работает прекрасно. Скорее всего версия проги старая, надо будет как-то с новой проверить...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, repstosw said:

Спасибо! Чуть позже продолжу копать.

Причина была в том, что файл настройки пинов (GPIO) я забыл включить в пере-компиляцию.

В итоге, никакого CSI там не было, были старые настройки - для работы с LCD по RGB.

Теперь напряжение на выводе MCLK 1,66 В  и частотомер показывает правильно частоту.

Пробую теперь читать регистры камеры - вначале ногодрыгом, потом штатным SCCB.

 

 mclk.jpg.88738f28d59892d096205fcdcdd985fc.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Удалось считать регистры камеры через CCI  (ногодрыг не заработал, да и он уже не нужен). Действительно, если запретить MCLK (15-й бит регистра CSI1_CLK_REG ), то чтение регистров завершается ошибкой. Значит, регистры камеры синхронные.  А бывают и асинхронные, не требующие тактирования/

 

Только код вендора немного отличается - в даташите регистры 0xA и 0xB должны быть 0x26, 0x41, в моём случае  0x26, 0x42.  И некоторые регистры немного отличаются. Но большинство совпадают.

Quote

OV2640 registers(DSP):
[0x0] = 0x0
[0x1] = 0x0
[0x2] = 0x0
[0x3] = 0x0
[0x4] = 0x0
[0x5] = 0x1
[0x6] = 0x0
[0x7] = 0x0
[0x8] = 0x0
[0x9] = 0x0
[0xA] = 0x0
[0xB] = 0x0
[0xC] = 0x0
[0xD] = 0x0
[0xE] = 0x0
[0xF] = 0x0
[0x10] = 0x0
[0x11] = 0x0
[0x12] = 0x0
[0x13] = 0x0
[0x14] = 0x0
[0x15] = 0x0
[0x16] = 0x0
[0x17] = 0x0
[0x18] = 0x0
[0x19] = 0x0
[0x1A] = 0x0
[0x1B] = 0x0
[0x1C] = 0x0
[0x1D] = 0x0
[0x1E] = 0x0
[0x1F] = 0x0
[0x20] = 0x0
[0x21] = 0x0
[0x22] = 0x0
[0x23] = 0x0
[0x24] = 0x0
[0x25] = 0x0
[0x26] = 0x0
[0x27] = 0x0
[0x28] = 0xFF
[0x29] = 0xFF
[0x2A] = 0x0
[0x2B] = 0x92
[0x2C] = 0x0
[0x2D] = 0x0
[0x2E] = 0x0
[0x2F] = 0x0
[0x30] = 0x0
[0x31] = 0x0
[0x32] = 0x0
[0x33] = 0xF8
[0x34] = 0x0
[0x35] = 0x0
[0x36] = 0x0
[0x37] = 0x0
[0x38] = 0x0
[0x39] = 0x0
[0x3A] = 0x0
[0x3B] = 0x0
[0x3C] = 0x0
[0x3D] = 0x0
[0x3E] = 0x0
[0x3F] = 0x0
[0x40] = 0x33
[0x41] = 0x24
[0x42] = 0x40
[0x43] = 0x40
[0x44] = 0xC
[0x45] = 0xFF
[0x46] = 0x0
[0x47] = 0x80
[0x48] = 0x2
[0x49] = 0xE0
[0x4A] = 0x1
[0x4B] = 0x0
[0x4C] = 0x0
[0x4D] = 0x0
[0x4E] = 0x0
[0x4F] = 0x0
[0x50] = 0x0
[0x51] = 0x40
[0x52] = 0xF0
[0x53] = 0x0
[0x54] = 0x0
[0x55] = 0x8
[0x56] = 0x0
[0x57] = 0x0
[0x58] = 0x0
[0x59] = 0x0
[0x5A] = 0x58
[0x5B] = 0x48
[0x5C] = 0x0
[0x5D] = 0x0
[0x5E] = 0x0
[0x5F] = 0x0
[0x60] = 0xF
[0x61] = 0x0
[0x62] = 0x0
[0x63] = 0x0
[0x64] = 0x0
[0x65] = 0x0
[0x66] = 0x0
[0x67] = 0x0
[0x68] = 0x0
[0x69] = 0x0
[0x6A] = 0x0
[0x6B] = 0x0
[0x6C] = 0x0
[0x6D] = 0x0
[0x6E] = 0x0
[0x6F] = 0x0
[0x70] = 0x0
[0x71] = 0x0
[0x72] = 0x0
[0x73] = 0x0
[0x74] = 0x0
[0x75] = 0x0
[0x76] = 0xD
[0x77] = 0x0
[0x78] = 0x80
[0x79] = 0x2
[0x7A] = 0x0
[0x7B] = 0x0
[0x7C] = 0x0
[0x7D] = 0x0
[0x7E] = 0x0
[0x7F] = 0x0
[0x80] = 0x0
[0x81] = 0x0
[0x82] = 0x0
[0x83] = 0x0
[0x84] = 0x0
[0x85] = 0x0
[0x86] = 0xD
[0x87] = 0x50
[0x88] = 0xB
[0x89] = 0xFF
[0x8A] = 0x0
[0x8B] = 0x34
[0x8C] = 0x0
[0x8D] = 0x0
[0x8E] = 0x0
[0x8F] = 0x0
[0x90] = 0x0
[0x91] = 0x2
[0x92] = 0x0
[0x93] = 0x1B
[0x94] = 0x0
[0x95] = 0x0
[0x96] = 0x0
[0x97] = 0x9
[0x98] = 0x0
[0x99] = 0x0
[0x9A] = 0x0
[0x9B] = 0x0
[0x9C] = 0x0
[0x9D] = 0x0
[0x9E] = 0x0
[0x9F] = 0x0
[0xA0] = 0x0
[0xA1] = 0x0
[0xA2] = 0x0
[0xA3] = 0x0
[0xA4] = 0x0
[0xA5] = 0x0
[0xA6] = 0x0
[0xA7] = 0x20
[0xA8] = 0x0
[0xA9] = 0x0
[0xAA] = 0x0
[0xAB] = 0x0
[0xAC] = 0x0
[0xAD] = 0x0
[0xAE] = 0x0
[0xAF] = 0x0
[0xB0] = 0x80
[0xB1] = 0x80
[0xB2] = 0x3F
[0xB3] = 0x0
[0xB4] = 0x0
[0xB5] = 0xFF
[0xB6] = 0x0
[0xB7] = 0x0
[0xB8] = 0x40
[0xB9] = 0x40
[0xBA] = 0xFF
[0xBB] = 0x0
[0xBC] = 0xF0
[0xBD] = 0xF0
[0xBE] = 0xF0
[0xBF] = 0x80
[0xC0] = 0xC8
[0xC1] = 0x96
[0xC2] = 0xC
[0xC3] = 0xFF
[0xC4] = 0x5C
[0xC5] = 0x11
[0xC6] = 0x55
[0xC7] = 0x10
[0xC8] = 0x0
[0xC9] = 0xC
[0xCA] = 0x0
[0xCB] = 0x10
[0xCC] = 0x80
[0xCD] = 0x80
[0xCE] = 0x80
[0xCF] = 0x8
[0xD0] = 0x82
[0xD1] = 0x0
[0xD2] = 0xA0
[0xD3] = 0x82
[0xD4] = 0x0
[0xD5] = 0x2
[0xD6] = 0x0
[0xD7] = 0x0
[0xD8] = 0x1
[0xD9] = 0x20
[0xDA] = 0x0
[0xDB] = 0x0
[0xDC] = 0x0
[0xDD] = 0xFF
[0xDE] = 0x0
[0xDF] = 0x2
[0xE0] = 0x4
[0xE1] = 0xE7
[0xE2] = 0x32
[0xE3] = 0x2
[0xE4] = 0x0
[0xE5] = 0x3F
[0xE6] = 0x0
[0xE7] = 0x0
[0xE8] = 0x0
[0xE9] = 0x45
[0xEA] = 0x10
[0xEB] = 0x10
[0xEC] = 0x82
[0xED] = 0x1F
[0xEE] = 0x0
[0xEF] = 0x0
[0xF0] = 0x4
[0xF1] = 0x60
[0xF2] = 0x5A
[0xF3] = 0xF1
[0xF4] = 0x0
[0xF5] = 0x0
[0xF6] = 0x0
[0xF7] = 0x60
[0xF8] = 0x0
[0xF9] = 0x40
[0xFA] = 0x0
[0xFB] = 0x0
[0xFC] = 0x0
[0xFD] = 0x0
[0xFE] = 0x7B
[0xFF] = 0x0

OV2640 registers(Sensor):
[0x0] = 0x3D
[0x1] = 0x0
[0x2] = 0x0
[0x3] = 0xF
[0x4] = 0x23
[0x5] = 0x0
[0x6] = 0x0
[0x7] = 0x0
[0x8] = 0x40
[0x9] = 0x0
[0xA] = 0x26
[0xB] = 0x42
[0xC] = 0x38
[0xD] = 0x7
[0xE] = 0x11
[0xF] = 0x43
[0x10] = 0x37
[0x11] = 0x0
[0x12] = 0x0
[0x13] = 0xC7
[0x14] = 0x50
[0x15] = 0x0
[0x16] = 0x0
[0x17] = 0x11
[0x18] = 0x75
[0x19] = 0x1
[0x1A] = 0x97
[0x1B] = 0x0
[0x1C] = 0x7F
[0x1D] = 0xA2
[0x1E] = 0x8
[0x1F] = 0x0
[0x20] = 0x0
[0x21] = 0x0
[0x22] = 0x0
[0x23] = 0x0
[0x24] = 0x78
[0x25] = 0x68
[0x26] = 0xD4
[0x27] = 0x4
[0x28] = 0x10
[0x29] = 0x0
[0x2A] = 0x0
[0x2B] = 0x0
[0x2C] = 0x0
[0x2D] = 0x0
[0x2E] = 0x0
[0x2F] = 0x1B
[0x30] = 0x8
[0x31] = 0x30
[0x32] = 0x36
[0x33] = 0x8
[0x34] = 0x20
[0x35] = 0xC8
[0x36] = 0x0
[0x37] = 0x41
[0x38] = 0xA4
[0x39] = 0x2
[0x3A] = 0x39
[0x3B] = 0xF9
[0x3C] = 0x37
[0x3D] = 0x34
[0x3E] = 0x80
[0x3F] = 0x1
[0x40] = 0x0
[0x41] = 0x0
[0x42] = 0x83
[0x43] = 0x0
[0x44] = 0x0
[0x45] = 0x1
[0x46] = 0x0
[0x47] = 0x0
[0x48] = 0x0
[0x49] = 0x0
[0x4A] = 0x1
[0x4B] = 0x20
[0x4C] = 0x9
[0x4D] = 0x11
[0x4E] = 0x0
[0x4F] = 0xCA
[0x50] = 0xA8
[0x51] = 0x1
[0x52] = 0x1
[0x53] = 0x10
[0x54] = 0x40
[0x55] = 0x40
[0x56] = 0x20
[0x57] = 0x0
[0x58] = 0x0
[0x59] = 0x0
[0x5A] = 0x0
[0x5B] = 0x0
[0x5C] = 0x0
[0x5D] = 0x55
[0x5E] = 0x55
[0x5F] = 0x55
[0x60] = 0x55
[0x61] = 0x80
[0x62] = 0x90
[0x63] = 0x0
[0x64] = 0x7F
[0x65] = 0x7F
[0x66] = 0x7F
[0x67] = 0x7F
[0x68] = 0x7F
[0x69] = 0x7F
[0x6A] = 0x44
[0x6B] = 0x5E
[0x6C] = 0x80
[0x6D] = 0x0
[0x6E] = 0x0
[0x6F] = 0xC0
[0x70] = 0x2
[0x71] = 0x94
[0x72] = 0x4
[0x73] = 0x81
[0x74] = 0x20
[0x75] = 0xD0
[0x76] = 0xD0
[0x77] = 0xF0
[0x78] = 0x90
[0x79] = 0xE5
[0x7A] = 0xE3
[0x7B] = 0x4
[0x7C] = 0x85
[0x7D] = 0x1F
[0x7E] = 0x0

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запустил CSI и камеру OV2640. :sun_bespectacled: Пока в QCIF режиме 176x144  и RGB565.

Делал серию кадров, периодически появляются горизонтальные полосы по экрану.

Скорее всего из-за грязного питания на аналоговой части (разделения питания на Lichee Zero нет от слова "совсем").

Освещение в комнате очень тусклое.

image.png.ef7a7d2fbae55d827ef26fd044e184ed.png image.png.92370df813c081a67e8488c2cfae1d9f.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не поднимал ли кто Audio Codec в T113? Данные в FIFO поступают, из FIFO исчезают, далее должны попадать в DAP, а затем в DAC и затем на HPOUT. После инициализации слышен слабый щёлк и всё. DAP вроде bypass, платка Mango Dual. В отличии от D1, у T113 линейного выхода нет, а на HP замутили какую-то систему  детекции подключения, с которой я пока не разобрался. Может кто-то понял, как это работает? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, embig said:

А не поднимал ли кто Audio Codec в T113? Данные в FIFO поступают, из FIFO исчезают, далее должны попадать в DAP, а затем в DAC и затем на HPOUT. После инициализации слышен слабый щёлк и всё. DAP вроде bypass, платка Mango Dual. В отличии от D1, у T113 линейного выхода нет, а на HP замутили какую-то систему  детекции подключения, с которой я пока не разобрался. Может кто-то понял, как это работает? 

Я уже давно его поднял (и на чтение и на запись) на прошлых страницах форума.  И на T113-s3 и на V3s.

Связка: DMA + FIFO + прерывания. Процессор отдыхает.

 -------

 

Чёто я не понял.  Эта камера OV2640 может больше чем на 15 FPS давать кадр?  Тактирую её MCLK=24 МГц,  входное окно в исходнике Линукса ставится 1600x1200,  выходное у меня 176x144. И всё-равно 15 FPS?   Как сделать хотя бы 30 FPS ?   Входной размер попробовал уменьшить камере - не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, repstosw said:

Делал серию кадров, периодически появляются горизонтальные полосы по экрану.

Скорее всего из-за грязного питания на аналоговой части (разделения питания на Lichee Zero нет от слова "совсем").

Предположение подтвердилось. На плате Lichee Zero  зачем-то запитали аналоговым питанием цифровую часть камеры, отвечающую за порты ввода-вывода. По-хорошему, туда нужно 3,3V.

А вот на плате WaveShare правильно сделано: на цифровую часть 3,3V, на аналоговую 2,8V, на ядро 1,2V.

Для сравнения. Плата Lichee Zero:

1.jpg.96a9c5c08e5682fd29cd2a3caedc31f6.jpg

 

Плата WaveShare:

2.thumb.jpg.61088ce6eba03764e1206d6c274a627f.jpg

 

Получились вот такие макароны:

3.jpg.fa490205a1269146c00815a4d31f1fea.jpg

 

Картинка (без полос):

image.png.839d2db01780f1b2b59fb961bad9b757.png

 

12 hours ago, repstosw said:

Как сделать хотя бы 30 FPS ?

Вопрос в силе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, repstosw сказал:

Вопрос в силе.

Так я понял, что и разрешение в данный момент явно не то, что нужно)))

Хотя, как по мне, так я этими камерами б не занимался вообще, лучше сразу бы USB-AVC начал курить, ибо более применябельно это, ИМХО)))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

33 minutes ago, mantech said:

Так я понял, что и разрешение в данный момент явно не то, что нужно)))

На выходе разрешение может быть любое, но если входное разрешение не менять, то все выходные будут  с 15 FPS.

Дело в том, что эта камера позволяет выбрать одно из трёх возможных входных разрешений видео-сенсора со своим FPS:

1600x1200 15 FPS => UXGA

800x600 30 FPS => SVGA

352x288 60 FPS => CIF

Выходное разрешение выдаваемой картинки на шину CSI может быть любым (вплоть до 40x30).

И всё бы ничего, НО:  по умолчанию задан входной формат сенсора 1600x1200 15 FPS.  И я пробовал его изменить на 800x600 чтобы получить 30FPS.  В итоге, на выходе камеры изображения нет, захвата нет. Захват идёт только, если входной размер уставновлен 1600x1200.

В интернете ищутся примеры именно для входного разрешения 1600x1200.   А нужно хотя бы 30 FPS.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, mantech said:

Хотя, как по мне, так я этими камерами б не занимался вообще, лучше сразу бы USB-AVC начал курить, ибо более применябельно это, ИМХО)))

Мне это не интересно )))

И USB в режиме хоста мне тоже неинтересен )))

6 hours ago, repstosw said:

На плате Lichee Zero  зачем-то запитали аналоговым питанием цифровую часть камеры, отвечающую за порты ввода-вывода. По-хорошему, туда нужно 3,3V.

И я знаю зачем они так сделали.  Далеко не каждая камера может питать свои порты напряжением 3,3V.  Часто ограничивают до 3 V.   Но камера OV2640 может!

Китайцы просто решили сэкономить на одном LDO - завели на питание портов питание для аналоговой части.  Прямо жалко 3 детали было поставить: LDO + 2 конденсатора :ireful1:

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, repstosw said:

И всё бы ничего, НО:  по умолчанию задан входной формат сенсора 1600x1200 15 FPS.  И я пробовал его изменить на 800x600 чтобы получить 30FPS.  В итоге, на выходе камеры изображения нет, захвата нет. Захват идёт только, если входной размер уставновлен 1600x1200.

В интернете ищутся примеры именно для входного разрешения 1600x1200.   А нужно хотя бы 30 FPS.

Вопрос решён.

QCIF 176x144 захватывается с 70 FPS при MCLK=24 МГц. :dance4:

Помогло вот это: https://github.com/espressif/esp32-camera/blob/master/sensors/ov2640.c

До этого попадались урезаные версии библиотек.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перевёл камеру в режим YUV422, а CSI может захватывать и конвертировать это в формат YUV420SP(NV12), который нужен для кодера H264.

Подружил захват камеры с H264-кодером Cedrus. Впечатления хорошие! На выходе - файл h264.

 

Новая проблема: не могу заставить происходить прерывание от CSI - оно не работает. Все смежные вектора перебрал - жизни нет.  Прерывания от других источников работают. Что-то опять китайцы намудрили :biggrin: Пока делаю программный опрос регистра статуса и очищаю его.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...