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

ksv198

Участник
  • Публикаций

    177
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ksv198

  • Звание
    Частый гость
  • День рождения 15.08.1970

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Ставрополь
  1. Доброго дня! Кто подскажет, как правильно это сделать? Дело в том, что корпус разъёма будет на корпусе устройства, который будет, в свою очередь, заземлён. В схеме помимо прочего, присутствует Ethernet, у которого экран разъёма соединён (в соответствии с референс - дизайном) с корпусом через конденсатор. Опять же USB тоже присутствует со своим соединением через параллельные резистор и конденсатор. Как правильно "приземлить" HDMI? В доступных мне референсах везде корпус HDMI сидит напрямую на сигнальной земле, но что-то мучают меня сомнения...
  2. Интерфейс QVGA 2.2 TFT SPI 320x240

    Цитата(Iptash @ Jan 29 2016, 14:57) Здравствуйте все. Есть данное устройство в наличии. Может есть у кого готовый интерфейс? Если не жалко и есть возможность поделитесь пожалуйста. У него контроллер ILI9341. Добрый день! посмотрите вот тут: ILI9341
  3. STM32F407 + камера OV2640

    Цитата(Влад Р. @ Dec 11 2015, 20:59) А можно только настройки DMA? Основной вопрос: какой установливать размер буфера? Вроде больше 65535 нельзя, а нужно. Добрый день! Вот: CODE /* DCMI configuration *******************************************************/ DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_SnapShot;//DCMI_CaptureMode_Continuous //DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hardware;//DCMI_SynchroMode_Hardware DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Rising;//DCMI_PCKPolarity_Falling DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low; //DCMI_VSPolarity_High DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low; //DCMI_HSPolarity_High DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_All_Frame;//DCMI_CaptureRate_All_Frame DCMI_InitStructure.DCMI_ExtendedDataMode = DCMI_ExtendedDataMode_8b; DCMI_Init(&DCMI_InitStructure); DCMI_JPEGCmd(ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); NVIC_InitStructure.NVIC_IRQChannel = DCMI_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* DCMI Interrupts config ***************************************************/ DCMI_ITConfig(DCMI_IT_FRAME, ENABLE); /* Configures the DMA2 to transfer Data from DCMI to the memory ****************/ /* Enable DMA2 clock */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE); /* DMA2 Stream1 Configuration */ DMA_DeInit(DMA2_Stream1); DMA_InitStructure.DMA_Channel = DMA_Channel_1; DMA_InitStructure.DMA_PeripheralBaseAddr = DCMI_DR_ADDRESS; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)Jbuff; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_BufferSize = 1024*8; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_Init(DMA2_Stream1, &DMA_InitStructure);
  4. STM32F407 + камера OV2640

    Цитата(Влад Р. @ Dec 11 2015, 16:02) Спасибо, сейчас посмотрю. А в чем была проблема в получении бОльших разрешений? Не могли бы Вы скинуть еще код снятия кадра? Проблемы не было, как не было и изображения :-) При попытке установить разрешение больше чем 1024х768 просто не отдаёт камера ничего. Правда, я работал только с режимом jpeg, возможно в RAW получится, но тут уже будут проблемы со скоростью перелопачивания потока, меня снапшоты мало интересовали. Получение кадра несложно: -настраиваем DCMI для работы с DMA; -запускаем получение снапшота; Как это сделано можно посмотреть в примерах от ST, мне из проекта тяжело сейчас вытянуть только эту часть.
  5. STM32F407 + камера OV2640

    Цитата(Влад Р. @ Dec 9 2015, 17:43) Здравствуйте! Использую контроллер STM32F407, захват картинки по DCMI. Пытаюсь настроить камеру в разрешение 640х480. Кто-нибудь может поделится настройками камеры? Добрый день! Вот: [attachment=97448:camera.zip] , пробуйте. У меня контроллер STM32F427 с внешней оперативкой. Максимально, что удалось с OV2640 получить, это 800х600 jpeg потоком и 1072х768 снапшот.
  6. STM32F429+DCMI

    Цитата(gazpar @ Nov 6 2015, 07:56) Здравствуйте. Подключаю камеру OV9655 по интерфейсу DCMI к STM32F429(сделали собственную печатную плату). Не получается захватить картинку. Вопрос,собственно, в описании темы. Какие должны быть уровни у сигналов HSYNC и VSYNC? PS: На осциллографе HSYNC(высокий уровень 3В, частота 7.2кГц ), VSYNC(высокий уровень 0.7В, частота 30 Гц). Это нормально? Добрый день! Нет, не нормально. Уровни должны быть в пределах логических для выбранного напряжения питания.
  7. Цитата(Fat Robot @ Sep 8 2015, 16:15) Стандарту 20 лет как-никак. Так что особой прожорливости ожидать не стоит. Я думаю, что в 4-6 mips вы уложитесь при аккуратной реализации. Референсные исходники и тестовые векторы есть на сайте ITU. Ваша задача: - выбросить из кодера все, что не относится к VAD. - заменить компилируемую библиотеку операций с фикс. точкой на "родные" операции и функции вашего целевого процессора. Спасибо, исходники смотрю уже, попробую, что получится.
  8. Цитата(Fat Robot @ Sep 8 2015, 15:05) Может взять готовый? Например из G.729 annex B. Там, я помню, был какой-то навороченный перечень условий для срабатывания. Слабо себе представляю, как его построить самостоятельно. Да уже подумывал об этом. А насколько он прожорлив, сколько процессорного времени ему надо, памяти, есть информация?
  9. Добрый день! Есть проблема с реализацией VAD (Voice Activity Detection). Пытаюсь реализовать на stm32f4xx; входной поток имеет умеренные параметры: 8000 Гц частота дискретизации/ 16 бит /моно (обычный не сжатый PCM). Сам сигнал имеет ограничение по полосе 0 - 4000 Гц (речь), спектр реального сигнала смотрел в Audacity. При применении наиболее распространённых критериев ZCD (zero crossing detector) и STE (short time energy) получается много (недопустимо) ложных срабатываний. Сработку вызывает, например, дыхание в микрофон, шум ветра. Кроме того, критерий ZCD довольно слабо отражает наличие/отсутствие речи. Как обрабатываю: поток принимается в буфер на 512 сэмплов (буферов несколько), режется на фреймы по 8 мс (64 сэмпла, впрочем пробовал и по 16 мс -128 сэмплов, результаты очень мало отличаются), затем считаю количество пересечений нуля и энергию. Пробовал с прямоугольным окном и окном Хэммминга, разница не очень ощутима. Вопрос собственно в чём - какой ещё способ (критерий) применить для VAD, для улучшения распознаваемости речи/паузы? Сигнал сам по себе не зашумлён, SNR больше 20 дБ. Начитался по этой теме уже довольно много, смущает несходимость теории в статьях с получаемым результатом. Кроме того есть непонятка с выбором фреймов - неперекрывающиеся или перекрывающиеся на полфрейма, что лучше? Вычислительных ресурсов вроде бы хватает, могу безболезненно выделить до 15% процессорного времени контроллера (168 МГц).
  10. Цитата(MikleV @ Jun 9 2015, 11:42) Разобрались со щелчками? В линейном кодировании насколько я помню ничего не надо вставлять. Из файла или буфера откусываете фреймы определенной длины и вставляете их в payload. Да, всё пошло, именно так. С толку сбивал Wireshark, он упорно пытается декодировать RTP пэйлоад по RFC, даже когда нет сжатия. В общем в этом случае надо, как Вы говорите, просто после RTP заголовка кусочек аудио данных вставлять и всё идет как надо, без щелчков.
  11. Доброго всем дня! Суть вопроса: пытаюсь разобраться как правильно передавать по сети пакеты RTP содержащие в себе аудио данные. Формат данных: PCM 8000 Hz 16 bit mono. Разобрался, что это payload type 11 (L16 linear PCM), но вот как по фэншую правильно сформировать RTP пакет не пойму. Вдумчивое чтение rfc2198 и других источников не помогает. Сейчас делаю так: после RTP заголовка вставляю байт BlockPT (тип 11 - 0x0b) со сброшенным в 0 старшим битом (primary block) и дальше непосредственно кусочек аудио данных. В таком виде VLC принимает поток и корректно его воспроизводит, я слышу то, что отправляю (использую осмысленный музыкальный фрагмент). Напрягает два момента: - при передаче пакетов, заполненных нулями слышу слабые щелчки; - при анализе пакетов Wireshark -ом сохранение потока в файл показывает, что щелчки эти происходят от того, что байт BlockPT тоже интерпретируется как аудио данные. Если кто знает, как правильно формировать для моего случая пакеты, пожалуйста, подскажите. P.S. rfc3551, rfc2586, rfc2198 и все причастные ответа не дали.
  12. Цитата(khomin @ Apr 12 2015, 17:58) Доброго времени суток. Собрал плату на Ksz8041, STM32F4 + LwIP. Подправил пример стека - "под себя". Столкнулся с тем, что через 100Мбитный хаб ничего не работает, а на прямую через сетевой switch все работает как должно. У PHY включен "Auto-Negotiation" внешней подтяжкой, пробовал так же программно, разницы нет. Link устанавливается, стек пакеты принимает (видно в буфере и по прерыванию Ethernet) и передает (заметна активность TXD0-1 CRS_DV), но wireshark ничего не видит. Увы не до конца понятен алгоритм с Auto-Negotiation, так же не ясно какой из регистров должен давать информацию (1,4 или 5) и нужно ли вручную конфигурировать PHY ? Кто сталкивался ..., отзовитесь пожалуйста ... пробовал вручную заполнять структуру ETH_InitStruct, ставил 10-100 Full-HalfDuplex, результата нет KSZ8041 не использовал, а вот KSZ8031 и KSZ8863 да, были проблемы с "Auto-Negotiation". Поборол так: - в структуре инициализации поставил "ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable;"; - в файле "stm32f4x7_eth.с" , в блоке условия проверки "if(ETH_InitStruct->ETH_AutoNegotiation != ETH_AutoNegotiation_Disable) { ....} else{.." поставил явно инициализацию физикса ETH_WritePHYRegister(PHYAddress, PHY_BCR, 0x2100); //FullDuplex 100M ETH_InitStruct->ETH_Speed = ETH_Speed_100M; ETH_InitStruct->ETH_Mode = ETH_Mode_FullDuplex; Значение PHY_BCR привёл для KSZ8031, у Вас может быть другое.
  13. Цитата(novartis @ Apr 13 2015, 12:23) Вот есть паблик камера rtsp://96.10.1.168/axis-media/media.amp?videocodec=jpg&resolution=640x480 Вот прям такой адрес ввожу в vlc и он мне показывает видео. В wireshark вижу только udp пакеты от камеры с mjpeg внутри. Сейчас нет возможности подцепиться, но дома когда мониторил трафик - я не видел там каких либо пакетов rtsp. Ну как же так, вот чего мой VLC в отладочной консоли пишет: Код Opening connection to 96.10.1.168, port 554... ...remote connection opened Sending request: OPTIONS rtsp://96.10.1.168/axis-media/media.amp?videocodec=jpg& resolution=640x480 RTSP/1.0 CSeq: 2 User-Agent: LibVLC/2.1.5 (LIVE555 Streaming Media v2014.05.27) Received 143 new bytes of response data. Received a complete OPTIONS response: RTSP/1.0 200 OK CSeq: 2 Public: DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET_PARAMETER, TEARDOWN Date: Wed, 26 Apr 2006 17:16:28 GMT Sending request: DESCRIBE rtsp://96.10.1.168/axis-media/media.amp?videocodec=jpg &resolution=640x480 RTSP/1.0 CSeq: 3 User-Agent: LibVLC/2.1.5 (LIVE555 Streaming Media v2014.05.27) Accept: application/sdp Received 74 new bytes of response data. Received a complete DESCRIBE response: RTSP/1.0 400 Bad Request CSeq: 3 Date: Wed, 26 Apr 2006 17:16:28 GMT Opening connection to 96.10.1.168, port 80... ...remote connection opened Requesting RTSP-over-HTTP tunneling (on port 80) Sending request: GET /axis-media/media.amp?videocodec=jpg&resolution=640x480 HTT P/1.1 CSeq: 1 User-Agent: LibVLC/2.1.5 (LIVE555 Streaming Media v2014.05.27) Host: 96.10.1.168 x-sessioncookie: 9d11a52afc98d2bb30a948b Accept: application/x-rtsp-tunnelled Pragma: no-cache Cache-Control: no-cache После чего говорит, что не может открыть коннект, но это может быть из-за файерволов. Так что вполне себе эта камера по RTSP отвечает
  14. Цитата(novartis @ Apr 13 2015, 09:44) Все еще пытаюсь реализовать задачу. ... Но vlc выдает теже ошибки, что и прежде. Подскажите, куда копать, что я делаю не так. Добрый день! В вашем случае порядок действий такой: -поднимаем TCP сервер для RTSP сессии на порту 554; слушаем его, отвечаем на запросы клиента по мере поступления; минимально нужно реализовать OPTIONS, DESCRIBE, SETUP, PLAY, TEARDOWN; -поднимаем UDP соединение для RTP потока mjpeg-ов (на каком порту договариваемся с клиентом на этапе SETUP); пример SDP описания (для этапа DESCRIBE): s=RTSP/RTP stream from MyServer\r\n\ i=N/A\r\n\ t=0 0\r\n\ a=type:unicast\r\n\ a=control:*\r\n\ m=video 0 RTP/AVP 26\r\n\ a=control:track1\r\n\ a=cliprect:0,0,600,800\r\n (изображение 800х600 тип mjpeg) -поднимаем UDP соединение для RTСP соединения (на каком порту договариваемся с клиентом на этапе SETUP), дабы обмениваться с клиентом репортами; -начинаем слать RTP пакеты с PayloadType=26, оформленные в соответствии с http://tools.ietf.org/html/rfc2435. Неплохая статья на Хабре, сильно помогла мне: http://habrahabr.ru/post/117735/ VLC удалось уговорить показывать mjpeg поток. А вот со звуком пока засада. Вроде бы всё просто -звук у меня не пожатый 16-разрядный PCM, тип 11, т.е.: m=audio 0 RTP/AVP 11\r\n\ a=control:track1\r\n\ a=rtpmap:11 L16/8000/1\r\n Оформляю RTP пакеты в соответствии с https://www.ietf.org/rfc/rfc2198.txt VLC жрёт и не ругается, но воспроизводит вместо звука шипение. При этом в меню "Информация о кодеке" всё совпадает, с тем, что хочу передать. Хотя если заграбить Wireshark - ом, то сборка RTP пакетов в файл и его последующее открывание в звуковом редакторе дает хороший результат - слышу то, что отсылал. Перечитал по кругу все касающиеся RFC уже раза 4, не помогает. Может быть кто сталкивался, на что обратить внимание ещё?
  15. Корректный запуск свитча Micrel

    Цитата(Log_in @ Jan 30 2014, 17:01) Может кто занимался подобным вопросом и имеет божественное знание :-) по этой ситуации. Добрый день! Никакого божественного знания. У свитча 3 порта - 1 RMII и 2 PHY. К MDIO регистрам доступ точно такой же, как к любому другому физиксу (однопортовому). Доступны 8 регистров - 6 стандартных и 2 дополнительных (см. страницу 34 даташита), уточнить надо только адрес (PHYADDR), он у RMII части 0х03 (у физиксов, соответственно 0х01 и 0х02). Для полного доступа ко всем регистрам (а их там чуть больше чем дофига) проще использовать SPI или I2C интерфейс. Ну или дописать свою функцию для общения через SMI интерфейс (на 35 странице в таблицах приведены отличия форматов побитно).