Задать вопрос
  • Какой дизайн сайта сейчас впереди?

    Sanes
    @Sanes
    Заметил, что в последнее время делают баннер на весь экран а дальше крути колесо до посинения. О каком тут удобстве речь, ума не приложу. Но модно.
    Ответ написан
    2 комментария
  • Какой дизайн сайта сейчас впереди?

    @2bastu3
    дизайн для пользователей. а пользователи хотят делать привычные вещи привычным способом. в начале века у пользователей было меньше привычек. они только формировались. в конце концов в Web X.0 все везде будет одинаковым. эффектиков не будет. они будут вызывать панику
    Ответ написан
    Комментировать
  • Какое напряжение на выходе STM?

    love_energy
    @love_energy
    Если STM32 то 3,3 В.
    Ответ написан
    Комментировать
  • Как узнать, подходит ли определенный модуль для микроконтроллера?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Открываете даташиты на контроллер и модуль.
    Ищите в даташите на модуль тип интерфейса - SPI, I2C, UART, и так далее.
    Ищите в даташите на контроллер этот же тип интерфейса. Если есть поддержка на аппаратном уровне - хорошо, нет поддержки - решаете вопрос с эмуляцией.

    Сравниваете логические уровни - TTL это или CMOS, совпадают ли напряжения питания.

    Если одна из CMOS-микросхем например на 5V, а другая - на 3.3, у второй должно быть указано, толерантна ли она к 5V на своих входах, или потребуется преобразователь уровней.

    Сравниваете скорости работы интерфейсов - контроллер желательно брать в несколько раз быстрее модуля.

    Хорошая книжка - Пей Ан, "Сопряжение ПК со внешними устройствами."
    1005533046.jpg
    Ответ написан
    Комментировать
  • Возможно ли подключить дисплей от iphone 4 к stm32?

    Нет, нельзя. Спецификация закрыта, система команд неизвестна.

    Что в вашем понимании "экран для раработки"?
    Ответ написан
    Комментировать
  • Есть ли будущее у программиста микроконтроллеров?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Конечно есть! Куча вакансий на эмбеддер-девелоперов, начиная от совсем простых пиков и заканчивая sparc/mips/arm. А если будете знать что-то из мира RTOS типа VxWorks, QNX и компанию - работу найдете всегда.
    Куча железа делается, на которое портируется как существующее ПО/ОС, так и пишется много нового, от чайников/кофеварок до автомотива/аэро.
    Только у нас в бизнесцентре компаний 5 лично знаю, свои разработки и ПО.
    И это не считая ВПК (и около), который тоже лично знаю где и что.
    Зарплаты везде разные (и очень высокие и средние и низкие) и всё зависит как от квалификации, так и от фирмы.
    Ответ написан
    Комментировать
  • Есть ли будущее у программиста микроконтроллеров?

    @onepavel
    Консультация и разработка мобильных приложений
    Сейчас как никогда есть будущее. Учитывая западные санкции на высокотехнологичное оборудование для ВПК. Экс коллега работает в гос компании, где пишут на си и джава для встраеваемых систем. Большие зарплаты и много заказов.
    Ответ написан
    1 комментарий
  • Как подключить HDMI к stm32?

    @Catethysis
    Как подключить схемотехникчески? Проводами, я думаю.

    Вы задачу нормально опишите, что нужно получать, как обрабатывать. Думается мне, что даже если завести сигнал HDMI в STM32 - ну, сигнал разрешением 320*240 у вас может быть и получится принять, но на даже самую слабую обработку ресурсов не хватит. Налицо неверный выбор инструмента и/или задачи. По вашему вопросу непохоже что у вас получится каким-то образом решить все задачи ввода и обработки. Тем более ещё тег Ардуино, ну постеснялись бы уж, право слово :)

    Окей, я закончил плеваться ядом. Теперь по сути. Очевидно что это только ПЛИС и ничего больше.
    Во-первых, ввод сигнала. Как известно, в HDMI применяется LVDS сигнал, чтобы из него получить TTL-уровни, вам потребуется приёмник LVDS. Более того, стандарт последовательный и высокоскоростной, значит потребуется как-то распараллелить обработку. Всё это делают специальные микросхемы-десериализаторы, первое что приходит в голову - микросхема TMDS341. У максимки тоже есть несколько таких микросхем, например MAX9264. Из них выходит достаточно удобный интерфейс: от 18 до 24 бит цвета плюс несколько клоков (пиксельный клок и вертикальная/горизонтальная синхронизация). Это уже можно напрямую втыкать в ПЛИС, но кстати можно найти и ПЛИС с LVDS-входами, правда это выйдет дороже в сумме. Если нужно после обработки снова сделать HDMI - берёте похожую микросхему-сериализатор, вроде MAX9263.

    Как раз похожая задача, приём видео с HDMI и выделение в нём цветов на границах картинки для создания Ambilight: tqfp.org/Perfer/fonovaya-podsvetka-hdmi-fpga-led-c... Похоже, проект ещё не закончен, но думаю что с этого можно начать.

    Во-вторых, обработка. Честно, не знаю что сказать. Если вам нужно как-то по локти ковыряться в принятом видео, типа сжимать его или что-нибудь там распознавать - бросьте это всё, и возьмите просто компьютер с платой видеоввода. Вручную вы это всё не сделаете.
    В принципе, можно поискать компьютеры-на-плате вроде https://www.toradex.com/ru/products/colibri-arm-co... но вам потребуется как-то запихнуть в неё этот сигнал (понятно что не через GPIO, так как требуется прямой доступ к шине памяти), и написать драйвер для обработки этого дела.
    Кажется, на выставках я видел подобный комп с входом HDMI, но надо понимать что это крайне невостребованная фича, и найти такое будет огромной удачей.
    Если же вам нужно, к примеру, просто наложить на видео текст (это называется OSD, on-screen display), то в принципе всё решается прям внутри ПЛИС - вы закрашиваете в нужный момент пиксель белым цветом, и всё. Это чуть ли не единственная задача в железной обработке видео, которая решается более-менее просто.

    Готовых схем не найдёте, слишком уж специфичная задача. Инженеры, самостоятельно сделавшие такое, предпочтут продавать это решение, чем делиться им.

    Ну и всегда остаётся простой путь, сконвертировать hdmi в композит/компонент, а их уже легче ввести в любой компьютер или компьютерный модуль.
    Ответ написан
    4 комментария
  • Почему не происходит ошибки при объявлении переменной в .h файле?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Так можно делать в С, это tentative definition, объект обявленный таким образом попадает в область общих данных. При линковке одноимённые объекты в этой области становятся одним объектом.
    В С++ так делать нельзя.

    Правильно в хедере писать extern int var, а объявление делать в каком-либо .с файле

    extern int var -- это и есть объявление. Правильно определение делать в одном .c файле.
    Ответ написан
    Комментировать
  • STM32 External Programmable Flash Memory - существует ли внешняя программируемая флешка для STM32?

    @YDR
    Еще можно глянуть на всякие последовательные флешки с интерфейсом I2C или SPI. Если планируемое число перезаписей невелико и нужно хранить какие-то ресурсы, можно вытащить 25F160 с какой-нибудь нерабочей материнки. Можно прикрутить и SD/microSD-карту. Преимущества этого решения - используется 3-5 ножек процессора, тогда как FSMC использует существенно больше.
    Ответ написан
    Комментировать
  • STM32 External Programmable Flash Memory - существует ли внешняя программируемая флешка для STM32?

    Здравствуйте! Можно! В принципе флеш внутри мк ничем не отличается от внешней. Для работы с внешней памятью и сделан периферийный модуль fsmc ( Flexible static memory controller), который связывает память и шину данных (AHB). Внутренняя память организована аналогично: Flash -> FLITF (flash memory interface) -> AHB data bus. Разница в контроллерах памяти только в том, что у fsmc больше настроек ( что очевидно из названия ). Интерфейс fsmc подключается по параллельному интерфейсу.
    Действительно для хранения программ или данных, к которым нужен частый доступ лучше подойдет NOR память ( более высокая скорость чтения/записи по сравнению с NAND, но у второй большая плотность). Так же существую внешние SRAM. Ну а если Вам хочется всего сразу а еще и пониженного потребления да и чтобы количество циклов перезаписи была бесконечно, то можете обратить внимание на FRAM память. Правда у нее тоже есть ряд недостатков, но они связаны не с реализацией, а с технологией производства.
    Собственно, я Вам рекомендую выбрать подходящую для Ваших задач память в одном из каталогов (пример) и соединить ножки контроллера и памяти соответственно даташитам.
    Ответ написан
    2 комментария
  • Как реализоать экономный delay на микроконтроллере?

    @Catethysis
    Полностью согласен с @Gereykhanov, только на таймерах.
    Берём таймер TIM6 (самый простой таймер с базовыми функциями - чтобы более крутые таймеры оставить свободными), настраиваем его:

    // Включаем тактирование таймера
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); 
    
    // Настраиваем прескалер. При тактовой частоте 24МГц частота
    // таймера будет равна 24МГц/24000 = 1кГц
    TIM6->PSC = 24000;
    
    // Настраиваем период таймера = 1000 циклов - полный цикл таймера
    // будет равен 1/1кГц*1000 = 1 секунда.
    TIM6->ARR = 1000;
    
    // Разрешаем прерывание по окончанию счёта
    TIM6->DIER |= TIM_DIER_UIE;  
    
    // Включаем обработку всех прерываний от таймера TIM6
    NVIC_EnableIRQ(TIM6_DAC_IRQn);
    
    // Включаем таймер
    TIM6->CR1 |= TIM_CR1_CEN;

    после срабатывания таймера будет вызван обработчик прерывания
    void TIM6_DAC_IRQHandler(void)
    {
      if (TIM6->SR & TIM_SR_UIF) {
        // Сбрасываем флаг прерывания
        TIM6->SR &= ~TIM_SR_UIF;
    
        /* ваш код после задержки*/
      }
    }


    Это не функция delay(100), это скорее демонстрация асинхронного алгоритма - но нужно понимать, что в сложных программах, особенно связанных с передачей и приёмом данных снаружи, практически всё нужно делать на прерываниях.
    Во время работы таймера процессор полностью свободен, и может рассчитывать какую-то математику или обслуживать другие прерывания.
    Довольно часто в моих программах для STM32 void main выглядит просто как while(1) {}, а вся логика работы находится именно в прерываниях. Кстати, здесь уже рукой подать до конечных автоматов.
    Ответ написан
    Комментировать
  • Как реализоать экономный delay на микроконтроллере?

    Gereykhanov
    @Gereykhanov
    Инженер-разработчик
    Только с помощью таймеров и системы прерываний, другого способа не вижу
    Ответ написан
    1 комментарий
  • Маркировка микроконтроллеров

    Ocelot
    @Ocelot
    ATMEGA88PA-AU 1016
    AT — код производителя (Atmel)
    MEGA — серия контроллеров
    88 — модель. Первая восьмерка — объем флеш-памяти, есть еще 48, 168, 328
    P — технология picoPower (сниженное энергопотребление)
    A — расширенная периферия (по сравнению с версией без буквы A) добавлены каналы ШИМ, режимы таймеров, еще по мелочи. Mega88A обратно совместима с mega88.
    A — код корпуса (TQFP)
    U — выводы луженые (бывает еще MH — покрытие «никель-палладий-золото»)
    QFP32 — человеческое название корпуса

    Последние 4 цифры — номер партии. Теоретически, по нему можно узнать ревизию контроллера (см. секцию Errata в даташите).

    ATMEGA88-20AU 0634
    20 — максимальная тактовая частота. Есть еще mega88L-10 — частота ниже, но шире диапазон питающих напряжений. Для новых контроллеров (mega88A) такая маркировка не применяется, они все работают в полном диапазоне напряжений, у них нет деления на speed grades (-/L/V)
    Ответ написан
    2 комментария
  • STM32 и GPRS модем по USART

    @tzirulnicov
    Программист
    0. куски кода — habrahabr.ru/post/139760/ — раздел «Список литературы». Также стоит скачать библиотеку для Ардуино — там уже есть работа с GPRS, можно посмотреть логику работы.
    По части работы с UART рекомендую почитать mycontroller.ru/category/mikrokontrolleryi-stm32/usart/
    Еще стоит почитать форум разработчиков устройств сотовой связи: electronix.ru/forum/index.php?s=655eb0cdb872286f07c344e441dfa245&showforum=130

    1. Поставьте аппаратное.
    2. При работе с модемом использовать таймауты ожидания — ждать ответа на свою команду не более N секунд. Также стоит учитывать, что в готовом изделии возможна ситуация, при котором ваш модем банально зависнет, лечиться передергиванием им питания со стороны микроконтроллера. Т.е. не рассчитывайте на надёжность модема и на то, что в конечном устройстве все будет также хорошо работать, как и у вас на столе. Ну и базовые рекомендации: не забывайте проверять уровень сгигнала (at+csq), состояние gprs-соединения и т.д…
    Ответ написан
    1 комментарий