Jump to content
  • ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By n_angelo
      Привет, знатоки. Написал свою первую программу для контроллера STM8L152C6T6 (STM8L-Discovery). Это, собственно, моя первая программа для контроллеров вообще. Я многого не знаю и не понимаю. Возможно ваш ответ на мой вопрос будет банален.
      Используемая периферия: DAC, DMA, TIM4, CLK, GPIO
      Задача у программы такая:
      В EEPROM зашит один период синусоиды с дискретизацией 44100Гц. Период занимает ровно 101 байт, что по сути должно быть равно 2,29мс (1/44100*101). В коде программы только конфигурация периферии, одно прерывание на кнопке и пустой бесконечный цикл, который ничего не делает. Всю работу выполняет таймер, который настроен выдавать запрос к DMA на каждые 1/44100 (ядро тактируется 2мГц, таймер считает до 45). В свою очередь DMA забирает из EEPROM по одному байту на каждый запрос от таймера и передаёт его в DAC. Далее DAC выводит бесконечную синусоиду на ногу PF0. Прерывание на кнопке запускает весь этот механизм и зажигает светодиод.
      Проблема:
      Измеряя ногу PF0 осциллографом было замечено, что период синусоиды занимает около ≈4мс. Фото под катом.
      Меня это расстроило. Экспериментально выяснилось, что стоит только вписать в бесконечный цикл какую-нибудь проверку, например, [если значение текущего байта синусоиды = 0xFF, то зажечь светодиод, если 0x00, то потушить], то осциллограф показывает правильный тайминг в 2(с копейками)мс. В принципе в теле цикла может быть что угодно, кроме пустоты, и тайминг налаживается.
      Я не могу отдебажить дизассемблер, т.к. его не знаю. Это у меня в планах. Но я очень хочу понять, что происходит и почему пустой цикл рушит тайминг.
      Спасибо.
       
       
       
       
    • By n_angelo
      Привет. Хочу узнать ваше мнение. Я новичок в embedded. Можно сказать, что пришел с веба. Малость Python, JS, C. Меня, конечно, предупреждали начать с AVR, но я уверенный в себе решил сразу залезть на STM32. Вынашивая идею для проекта, параллельно курив Reference Manual и Data Sheet по STM32, я понял что его будет слишком жирно для проекта. Я перескочил на STM8L. И тут меня начал огорчать мир embedded. При переходе между stm8 и stm32 нужно менять IDE (TrueStudio на STVD). Во избежание таких курьёзов я пересаживаюсь на IAR. В процессе подключения родной библиотеки от ST, понимаю что библиотека от IAR для того же самого STM8L152C6T6 дико отличается (макросы, структуры). Привет веб-разработка. Как такое могло произойти, что под один и тот же контроллер ST даёт одну библиотеку, а IAR другую. И нигде в уроках тебя не предупредят об этом. Ну, ребят, у меня всего одна жизнь. Вы уже договоритесь там между собой? Придите к единому стандарту. Или они так решили новичков завендерлочить? Моё мнение (не претендует на правильное): пробираясь сквозь тернии популярной архитектуры ARM, инфраструктуры, инструментария, забываешь про бизнес-логику устройств. А еще просто пропасть между "я ничего не понимаю" и "господи, я зажег светодиод". Речь не о копипастерах с уроков, а действительно понимая что ты делаешь, в каком регистре, что меняешь. Это путь в 2000 (а то и больше) страниц на английском перечитанных по несколько раз, чтобы отоложилось. И в конце тебя ждут разные версии одной и той же библиотки в разных IDE. И сидишь вдупляешь... ну почему... я же в правильный регистр кладу правильную маску... ох, наболело. Такое ощущение что не для людей это всё делали, не для людей.
      Ваше мнение?
    • By akva
      Народ помогите разобратся с выводом изображения на цветной дисплей от видеоискателя видеокамеры панасоник NVR 2000, схема есть куда припаять питание и виеовход
      NV-R50_NV-R500.pdf
    • Guest mrRobot
      By Guest mrRobot
      Добрый день! Был бы признателен, если бы кто нибудь подкинул любые источники информации на тему жизненного цикла микроконтроллеров. Книги, статьи, что угодно - лишь бы освещались данные пункты:
      Описание этапов жизненного цикла изделия (микроконтроллеров) и средств автоматизации, применяемых на данных этапах. Анализ взаимодействия средств автоматизации внутри каждого этапа и между этапами. Заранее спасибо!
    • By DFRobot
      Что может быть проще Arduino IDE!
      Для разработки под ESP32 (ESP-WROOM-32) есть множество различных платформ. Но, если в некоторых ситуациях использование Linux или cygwin под Windows может отпугнуть новичков, то простой и дружественный интерфейс Arduino IDE окажется как нельзя кстати. Ниже рассмотрим по шагам, как её адаптировать для программирования ESP32.
      1. Добавляем URL-адрес платы в Arduino IDE .
      Открываем Arduino IDE (у меня версия 1.8.0). Если у вас она не установлена, то инструкцию по установке можно найти здесь. 
      Далее выбираем Файл -> Настройки и нажимаем на кнопку “Дополнительные ссылки для менеджера плат”, как показано ниже.

       
      В появившемся окне вводим адрес:   https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/package_esp32_index.json и видим :

      После завершения нажимаем ОК.
      2. Обновляем список плат.
      Когда URL платы ESP32 (ESP-WROOM-32) добавлен, обновим список плат, чтобы через Arduino IDE загрузить необходимые библиотеки ESP32 (ESP-WROOM-32).
      Открываем Инструменты -> Плата: “Имя платы” -> Менеджер плат,

       
      и их список должен автоматически обновиться:

       
      3. Установка ESP32 (ESP-WROOM-32).
      Как только обновление завершится, найдём свойства платы FireFly-ESP32 Mainboard.

       
      Выбираем “FireBeetle-ESP32 Mainboard” и жмём “Установить”. Менеджер автоматически скачает необходимые библиотеки.


       
      4. Компилируем программу мигания светодиодом.
      Когда библиотеки установлены, можем, наконец, загрузить тестовую программу. Открываем Инструменты -> Плата, выбираем из списка Firefly-ESP32:

      Внимание: проверьте, что Вы выполнили все шаги, описанные выше. Если Вы не установили плату ESP32 (ESP-WROOM-32), то в списке её не окажется!
      Открываем Файл -> Примеры -> Basics -> Blink:

       
      И жмём  , чтобы запустить компиляцию.

      Готово!
       
      У DFRobot есть много других обучающих статей по ESP32 и готовых проектов на основе ESP32.
  • Сообщения

    • Не стану спорить - нужно будет что то доказывать, сравнивать, разбираться в глубинных явлениях... и всё равно я окажусь неправ, а Вы правы... так, значит так - "коррупция" это плохо, а "лоббизм" хорошо, коррупционер - ростовщик, а лоббист - человек, работающий строго по закону ... 
    • К психиатру обратись!Хотя,вряд ли уже поможет.
    • В плане схемы: http://patents.su/3-1114394-ustrojjstvo-dlya-lechebnojj-nagruzki.html Как в известном фильме "Всё украдено до нас"...
    • Термодатчик по этой схеме?  Попробуйте переделать на стандартную схему. В этой, из-за того, что регулятор в эмиттере, присутствует недокомпенсация.
    • Здравствуйте! Переделал схему по аналогии с выключателем с али. Вот части питания в покое... XP1 разъем в разрыве цепи через лампы. R15 = 1.2МОМ (на картинке не видно точку). Вроде как идея проста, положительный полупериод идет через R1, 220 / 10000 = 22mА Пока напряжение не достигнет 18В транзистор открыт и идет заряд конденсаторов. 18 * 0.022 =  0.4W Когда превышает - транзистор закрыт и ток течет через R3 510k на стабилитрон. 220 / 520000 = 43uA, 220 * 0.00043 = 0.1 W Об резистор можно обжечь палец... По моим расчетам этого не должно быть. Или я что то не так понимаю? Если измерять мультиметром без 78l05 то напряжение на конденсаторах 18В. Со стабилизатором около 6-7В на входе на стабилизатор. Потребление показывает 2.7мА если верить мультиметру
    • Падает напряжение самопитания микросхемы и она "затыкается". Перематывайте трансформатор. А вообще-то, ломать нормально работающий девайс - самое последнее, что можно себе позволить. Разве что на необитаемом острове.
×
×
  • Create New...