Jump to content
Atreides

Програмный UART atmega16

Recommended Posts

Добрый день. Мне требуется реализовать программный юарт на атмеге16. Он нужен для того, чтобы принятые по нему данные отправить на аппаратный юарт. В интернете нашел примеры кода, но понять его мне трудно. Прошу вас словами в общих чертах объяснить принцип реализации программного юарта. Буду рад примерам, которые, на ваш взгляд, являются наиболее простыми и понятными. Заранее спасибо.

Share this post


Link to post
Share on other sites
6 часов назад, Alex сказал:

Хм...
https://yandex.ru/search/?lr=2&clid=2063927&msid=1507717605.69763.22885.8805&text=USART интерфейс Просто множество статей с описанием интерфейса.
В чём конкретно проблема ? Что не понятно в интерфейсе ?

Спасибо за ответ. Проблема в реализации программного (дополнительного) юарта на языке СИ на атмеге16, так как одного встроенного аппаратного не хватает для моих нужд. В интернете нахожу несколько статей с примерами, но большинство из них - сухой код, немного разбавленный комментариями. Я ни в коем случае не прошу написать мне готовый код, мне интересна сама логика рассуждений, которую я так и не могу усвоить: как работать с таймером, прерываниями и т.д. 

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

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

как работать с таймером, прерываниями и т.д. 

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

Share this post


Link to post
Share on other sites
                     

Контроль в спящем режиме: повышение КПД батарейного питания с помощью DC/DC MAX17225 nanoPower

В статье описан практический опыт разработчика, применившего повышающий DC/DC-преобразователь MAX17225. В результате ряда практических экспериментов, потребовавших существенного обновления технической базы компании-разработчика, автор убедительно доказывает преимущества выбранного компонента и схемотехнической реализации. Увеличенное на 50% время автономной работы лучше других аргументов говорит об эффективности конвертеров MAX17225, а также о важности предварительной оценки элементной базы.

Подробнее

Только что, Alex сказал:

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

имеется ввиду применение данных модулей в рамках реализации моей задачи. Спасибо за ответ.

Share this post


Link to post
Share on other sites

Если вкраце. Ловим прерывание по первому спадающему фронту (начало старт-бита), запускаем таймер на полбита, запрещаем внешнее прерывание. В прерывании от таймера перестраиваем его на время в один бит и начинаем считать биты до 9, ловя каждый раз прерывание по таймеру и считывая состояние ПИНа в переменную. На последнем бите отрубаем прерывание по таймеру и разрешаем внешнее прерывание (для начала следующего байта). Байт принят.
И так принимаем каждый байт по-очреди.

Share this post


Link to post
Share on other sites

Вот именно это я и хотел узнать! Большое спасибо!

Edited by Alex
Убрал цитату

Share this post


Link to post
Share on other sites

а может можно одним аппаратным обойтись? Rx на прием от одного, а по Tx передача дальше....

Share this post


Link to post
Share on other sites
В 11.10.2017 в 23:09, Alex сказал:

запускаем таймер на полбита

почему на полбита если можно полтора?

Share this post


Link to post
Share on other sites
5 часов назад, COKPOWEHEU сказал:

полбита

Через полбита убеждаемся, что стартовый ноль всё ещё присутствует на входе. Если нет, то завершаем процедуру без приёма байта - ложное срабатывание по INT. Получается некая защита от импульсных помех на входной линии.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   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.

Loading...

  • Similar Content

    • Guest Виктор
      By Guest Виктор
      Здрасте, я хочу разобраться как работает и программируется мк и для этого выбрал среду разработки AtmelStudio. Привлекла она тем, что в ней есть симуляторы микроконтроллеров и покупать отладочные платы с мк не нужно, чтобы просто проверить код, что в какой регистр записывается и т.д. Захотел заглянуть в заголовочный файл, нашёл там строки:
      if __AVR_ARCH__ >= 100
      #    define __SFR_OFFSET 0x00
      #  else
      #    define __SFR_OFFSET 0x20
      #  endif
      P.S. модель взял atmega16
      Стал искать документацию по этому файлу... так и не нашёл. Потом пришла идея посмотреть значение __AVR_ARCH__ через отладку, поставил там точку, нажал на запуск с отладкой, но не вышло... отладчик сразу переходит на функцию мейн. Подумал, что может это препроцессорная директива, поэтому и не заходит, но потом наткнулся на это: https://docs.microsoft.com/ru-ru/visualstudio/debugger/navigating-through-code-with-the-debugger?view=vs-2019 ... там в конце темы показано что в VS можно отлаживать и исходники. Пытался найти такие же настройки в Atmelstudio... не нашёл. Помогите пожалуйста, есть ли такая возможность в AtmelStudio посмотреть значения констант и переменных в заголовочных файлах?



    • By pedrofan
      Здравствуйте, помогите, пожалуйста, данная программа должна несколько раз инкрементировать введеное с клавиатуры значение, например, если я ввожу 31, то на выходе должно получиться 31 32 33 34, а в протеусе получается вот. Прилагаю код.

      lab_4_1.asm
    • By RIMUS1989i
      Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. 
      Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. 
      При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце.
      Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать.
      Кто что думает по поводу схемы?
      бегущая строка.pdsprj Natali_2012_program.hex
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
  • Сообщения

    • поставить получится, места хватает. но вот тут подумал, возможно занкомый поедет в выходные в питер. Хочу его попросить купить подстроечники нужные, что бы и не выпаивать ничего и сделать все по человечески. Какие лучше всего ставить емкости по вольтажу? или все же не имеет значения? что бы все было как надо)
    • Про диаметр не забудьте. Чтобы влез. Лучше прикупите ещё такой полярный. Они маленькие. Вдруг ваш не удастся нормально поставить.
    • понял. неполярник 47мкФ 50в и полярник 1000мкФ 6.3-16 в. второй завтра докуплю.
    • Тогда лучше пока не трогайте. Поменяйте конденсаторы и погоняйте на сигнале полчасика. Потом уберите сигнал и замерьте ТП. Осторожно, чтобы не задеть ничего.
    • постоял, нагрелся и второй. но температура слега на ощуп разница. ток покоя 14.3 стал
    • Повлияет. Лучше потом подстроить немного, чем спалить сразу по неосторожности. Вдруг подстроечник не так впаяете. Или ещё что.
    • понял вас, лампа в разрыв ноля или фазы из розетки. на ТП покоя при замере никак не повлияет?   
×
×
  • Create New...