Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 14.11.2013, 18:06  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Генерирование меандра с заданным количеством импульсов

Что-то я запутался маленько в документации на таймеры STM32F103.
Я вот задумал "сделать красиво" управление шаговыми двигателями: т.е. на тактовый вход драйвера ШД подавать меандр, генерируемый таймером микроконтроллера "автоматически". При этом период таймера задает период шагов, а величина в CCR1 (задаваемая, может быть, даже через DMA) дает количество шагов.
Хочется, чтобы прерывание выдавалось после окончания счета (CCR1), а выход CH1 таймера инвертировался на каждый такт декремента CCR1.

Я так понял, что мне не обойтись без CCR2, который собственно и будет считать нужное количество импульсов. А в CCR1 писать автообновляемое значение "1".

Вопрос: а нельзя ли обойтись только одним CCR1? Т.е. настроить таймер так, чтобы CH1 инвертировался на каждый декремент CCR1, а не по достижению нуля?
Реклама:
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 14.11.2013, 18:08  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

MOSI не подойдет?
Easyrider83 вне форума  
Непрочитано 14.11.2013, 19:09  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

Сообщение от Easyrider83 Посмотреть сообщение
MOSI не подойдет?
Хм, а это идея. Но я не уверен, что у меня свободный будет: SPI мне тоже нужен будет (один - точно, а возможно даже оба).

Можно было бы решить "в лоб", как я на пиках делал когда-то: тупо счетчик, прерывание его декрементирует, один пин инвертируется. Но что-то это некрасиво получится. Да и прерывания чаще будут возникать. А таймер, судя по всему, умеет так делать.
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 14.11.2013, 19:13  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

I2C, UART? Чииииик?
Easyrider83 вне форума  
Непрочитано 14.11.2013, 19:18  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

Сообщение от Easyrider83 Посмотреть сообщение
I2C, UART? Чииииик?
У меня пока макетка с всего лишь 64-мя ножками. Катастрофически не хватает ног (а мне еще Холлов надо полтора десятка куда-то прилепить - придется, наверное, вешать на коммутатор). Ну и с UART'ом, например, будут другие проблемы: во-первых, нет гарантии, что все импульсы будут идти с одинаковыми промежутками (т.е. между словами не будет больших пауз), а во-вторых, надо будет как-то отсчитывать нужное количество бит, отправленных в линию.

Завтра еще поковыряюсь с таймером: вдруг получится с использованием двух счетных регистров (в одном будет 1, автоматически обновляющаяся, а второй будет считать импульсы и давать прерывание, как они кончатся).
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 14.11.2013, 20:56  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

Может не совсем понял задачу, но просятся два таймера. Соединяются цепочкой (мастер-слэйв), один формирует временное окно, второй выплёвывает заданное количество импульсов, в пределах окна, с заданными параметрами. Соль, перец и ДМА по вкусу. Всё хардварно, без прерываний, пнул и можно не беспокоиться, как только окно закончится, слэйв таймер тормознётся автоматически.
nahimovv вне форума  
Непрочитано 14.11.2013, 22:30  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

Сообщение от nahimovv Посмотреть сообщение
Всё хардварно, без прерываний, пнул и можно не беспокоиться, как только окно закончится, слэйв таймер тормознётся автоматически
Без прерываний нельзя: по окончанию перемещения нужно установить сигнал EN в единицу, чтобы с двигателя снялось напряжение (иначе эта собака, выделяющая до 60! ватт, все ~22 литра азота из криостата выпарит довольно быстро).
С двумя таймерами как-то еще сложнее выглядит. Я-то поначалу думал, что можно вообще только одним счетным регистром обойтись.
Ну, завтра попробую - отпишусь, как сделал (если меня опять не будут весь день дергать туда-сюда).
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 14.11.2013, 22:40  
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

Сообщение от eddy Посмотреть сообщение
Без прерываний нельзя: по окончанию перемещения нужно установить сигнал EN в единицу, чтобы с двигателя снялось напряжение (иначе эта собака, выделяющая до 60! ватт, все ~22 литра азота из криостата выпарит довольно быстро).
Дык, "хазяин- барин"! Как окно закроется флаг UPD встанет, можно и прерывание прикрутить. А можно, надо только посмотреть эпюры сигнала, и выход таймера окна заюзать, такой себе хардваре-энэблэ.
nahimovv вне форума  
Непрочитано 22.11.2013, 15:41  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

В общем, реализовать нормально не получилось: где-то я что-то промухал.
Сделал генерацию ШИМ со счетчиком импульсов в прерывании. Работает. Но уныло это: хотелось все полностью автоматизировать. Чтение мануала не помогло. По-моему, так сделать не получится.
__________________
Смерть бандеровской мразоте!
eddy вне форума  
Непрочитано 22.11.2013, 22:04  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Генерирование меандра с заданным количеством импульсов

По-любасу 2 таймера понадобятся.
Один формирует степ (иначе слишком часто щёлкать будет), другой считает шаги. По переполнению второго прерывание. Степ формировать... да хоть компаратором таймера.
Только зачем отключать? Надо давать ток удержания.
Сообщение от eddy Посмотреть сообщение
макетка с всего лишь 64-мя ножками
Нет, батенька, у Вас целых 64 лапки.
Вот когда их всего шесть, из них 2 питания и 1 сброс, тогда уныло... Да и то - 3 выхода и 2 входа.
omercury вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 15:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot