21.02.2017, 04:46
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
Если нужна строгая задержка (скажем, 1-wire), то она выполняется либо таймером, либо USART'ом.
.
|
Интересно,а как с помощью USART,примерный алгоритм можно?
__________________
Глаза боятся,а руки делают.
|
|
|
|
21.02.2017, 04:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от STM32F0
|
Но по личному опыту могу сказать, что на сегодняшний день СТМ32, а для мелких проектов и СТМ8, самые что ни на есть хоббийные. Их основная хоббийность в том, что при всей своей кажущейся сложности они позволяют создавать более-менее приличные проекты не прибегая к КА, в привычном виде, или РТОС..
|
Уже почувствовал тока начиная изучение и сравнение с пиком.Вещь серьезная,но думаю будет много пользы. ![Респект!](images/smilies/icon_respect.gif)
Книжку читаю по процу Cortex-M3,хоть в общем представлять какое ядро и прерывания,потом дальше периферию изучать буду дальше.Очень интересует DMA,может дорасту и до Ethernet.
__________________
Глаза боятся,а руки делают.
Последний раз редактировалось CERGEI1982; 21.02.2017 в 04:50.
|
|
|
|
21.02.2017, 09:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от CERGEI1982
|
Интересно,а как с помощью USART,примерный алгоритм можно?
|
У него изменяли скорость (для инита одна, для собственно передачи данных другая) а импульсы формировали, задавая нужные последовательности. Скажем, сигнал с заполнением 50% получится передачей байта 0x0f, ну и далее по аналогии.
Работает с DMA (разве что инит не очень-то на DMA садится, но его можно и через КА реализовать).
На таймерах я и сам реализацию делал (см. в моем гитхабе stm32samples для F1). Там тоже инициализация через КА, а дальше общение при помощи DMA. Заполнение задается собственно изменением регистра CCR1 таймера. А в CCR2 заносится ответ.
В обоих алгоритмах сначала формируется посылка — набор данных для DMA. Потом пинается init. Как только все ОК, запускается передача данных по DMA. По прерыванию DMA в окончании передачи запускается "дешифратор", который из полученного массива данных восстанавливает информацию.
Отличие возможностей STM32 от STM8 можно и по толщине RM оценить. Я вот за пару вечеров на STM8 сделал I2C. С STM32F030 вчера весь вечер прочитал, охренел, сколько регистров для этой элементарщины нужно. Только с утра сегодня понял, как там надо тайминги настраивать. А мне еще хочется туда DMA прикрутить...
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
21.02.2017, 12:23
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от CERGEI1982
|
Интересно,а как с помощью USART,примерный алгоритм можно?
|
Ноги ростут от самого Далласа. Поиском в гугле "dallas 1-wire uart" и первая же строка
____https://www.maximintegrated.com/en/app-notes/index.mvp/id/214
Метод действителен для любых МК, в принципе. Просто для СТМ, за счёт его особенностей, всё получается немного проще.
|
|
|
|
21.02.2017, 12:40
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от CERGEI1982
|
Очень интересует DMA
|
ДМА в СТМ32 особенно красив в паре таймерами. Тот же 1-wire реализуется аппаратно, даже без УАРТ и даже без КА. Т.е. тупо запускается таймер, а по окончанию транзакции ДМА разбираем данные. Да и вообще, там многим чем можно рулить аппаратно через таймера и ДМА. Главное чтобы хватало того и другого.
|
|
|
|
21.02.2017, 12:58
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
STM32F0, а можно подробнее? Есть один проект, есть свободный DMA, есть 1-wire, который не очень дружит с RTOS.
|
|
|
|
21.02.2017, 13:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Easyrider83, вот мое под STM32F103 на таймерах.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
21.02.2017, 14:39
|
|
Гражданин KAZUS.RU
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Цитата:
|
Если нужна строгая задержка (скажем, 1-wire), то она выполняется либо таймером, либо USART'ом.
|
а ведь получается глупо - задействовать целый таймер, и потом в цикле тупо ждать его завершения... в чем выигрыш ?
для микросекундной задержки тоже таймер заряжать ![Прикольно](images/smilies/icon_wink3.gif) ?
|
|
|
|
21.02.2017, 14:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от zöner
|
тупо ждать его завершения
|
Не тупо ждать, а заниматься другими делами: общению по USB, опросу других датчиков и т.д., и т.п.
Сообщение от zöner
|
для микросекундной задержки тоже таймер заряжать
|
Да, за это время можно много чего полезного сделать. Или просрать много чего, если тупо ждать, не обрабатывая другие флаги. А так — запомнил текущее время, да периодически проверяй. Как только нужное количество микросекунд прошло, выполняй задачу.
На абдуринщиков крайне не рекомендую смотреть: эти [censored] то в прерывание какую-нибудь здоровую функцию впихнут, то по полсекунды ждут в блокирующем цикле, то ногами дрыгают...
Кстати, с таким извращенским подходом просто невозможно, скажем, плавно управлять шаговым двигателем. Ему обязательно нужен таймер (да еще и с DMA, чтобы разгон/торможение задавать).
__________________
Союз Советских Социалистических Округов Северной Америки
Последний раз редактировалось eddy; 21.02.2017 в 14:57.
|
|
|
|
21.02.2017, 15:09
|
|
Гражданин KAZUS.RU
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
например зарядили таймер, переключились на другие задачи, вернулись обратно, и тут оказалось что другая задача заняла слишком много времени... и задержка получилась неточной...
и зачем ждать если есть прерывания? в том числе на USB...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:23.
|
|