roboforum.ru

Технический форум по робототехнике.


AVR, нужен USB+ШИМ в одном мк, как быть?

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 02 июн 2013, 02:50

Добрый день. Ищу решение задачи, подскажите если есть инфа.

Надо создать контроллер, который постоянно опрашивает USB порт ПК в ожидании команд и еще чтобы он генерировал постоянно ШИМ в то же время, т.е. ставил порты на 1 и 0 в определенных интервалах. Прошивку USB установил, она в цикле опрашивает ПК в ожидании пакета. Как приходит пакет - выполняется программа. И теперь надо на фоне этого всего чтобы работала еще программа выставляющая ШИМ сигнал (0/1 с интервалами) на большом количестве линий. Какое здесь решение наиболее оптимально? Варианты возможные у меня такие:

1) поставить многозадачную ОС, типа http://www.freertos.org/ (не пользовался, подойдет ли и ее брать или другое что?)
2) включить аппаратный ШИМ и копировать его состояние на нужные линии (получится или нет хз)
3) замерить количество тактов на опрос USB и уменьшить интервалы ШИМ на это число (как это сделать хз)
4) поставить 2 контроллера (не хочу так)
5) проверить инфу о ватчдоге и прерываниях, может на них что-то можно замутить подобное

Что можете посоветовать?
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение Angel71 » 02 июн 2013, 03:06

пока вы не уточните, что под этим
iburo писал(а):и еще чтобы он генерировал постоянно ШИМ в то же время, т.е. ставил порты на 1 и 0 в определенных интервалах.
...
на большом количестве линий.

подразумевается, помочь вам смогут максимум тыкнув пальцем в небо.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 02 июн 2013, 03:11

Angel71 писал(а):пока вы не уточните, что под этим
iburo писал(а):и еще чтобы он генерировал постоянно ШИМ в то же время, т.е. ставил порты на 1 и 0 в определенных интервалах.
...
на большом количестве линий.

подразумевается, помочь вам смогут максимум тыкнув пальцем в небо.


нужно, чтобы выполнялась программа - поставить 1 на 200 тактов, поставить 0 на 100 тактов, например. ставится на портах. на фоне этой программы еще идет опрос USB, откуда приходят инструкции от ПК.

Добавлено спустя 2 минуты 36 секунд:
вот это устройство http://openrobo.ru/control/driver
надо чтобы был 1 контроллер, а там сейчас 2
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение dccharacter » 02 июн 2013, 08:43

Устройство не может опрашивать порт ЮСБ компьютера, а значит тебе надо разбираться со всякими эндпоинтами и ЮСБ-дескрипторами. Установка шима - задача тривиальнейшая по сравнению с запуском ЮСБ. Соответственно, после того, как ты разобрался как работает ЮСБ, написал прошивку для МК, поставил драйвера, написал софт для компа, ты просто в прерывании запускаешь нужный шим.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 02 июн 2013, 14:13

dccharacter писал(а):Устройство не может опрашивать порт ЮСБ компьютера, а значит тебе надо разбираться со всякими эндпоинтами и ЮСБ-дескрипторами. Установка шима - задача тривиальнейшая по сравнению с запуском ЮСБ. Соответственно, после того, как ты разобрался как работает ЮСБ, написал прошивку для МК, поставил драйвера, написал софт для компа, ты просто в прерывании запускаешь нужный шим.


С этим уже разобрался, все программы есть http://openrobo.ru/control/usb сделал на V-USB, USB работает и в цикле программа опрашивает нет ли пакета с ПК. А шим не удалось включить на том же контроллере, только на другом. Тоже думал насчет прерываний, надо будет изучить их получше.
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение dccharacter » 02 июн 2013, 16:30

iburo писал(а):
dccharacter писал(а):Устройство не может опрашивать порт ЮСБ компьютера, а значит тебе надо разбираться со всякими эндпоинтами и ЮСБ-дескрипторами. Установка шима - задача тривиальнейшая по сравнению с запуском ЮСБ. Соответственно, после того, как ты разобрался как работает ЮСБ, написал прошивку для МК, поставил драйвера, написал софт для компа, ты просто в прерывании запускаешь нужный шим.


С этим уже разобрался, все программы есть http://openrobo.ru/control/usb сделал на V-USB, USB работает и в цикле программа опрашивает нет ли пакета с ПК. А шим не удалось включить на том же контроллере, только на другом. Тоже думал насчет прерываний, надо будет изучить их получше.

Стоп
Не надо прерываний
Ты в цикле смотришь, есть ли пакет
Если пакет есть - включаешь шим. Все.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 02 июн 2013, 23:43

dccharacter писал(а):Стоп
Не надо прерываний
Ты в цикле смотришь, есть ли пакет
Если пакет есть - включаешь шим. Все.


При этом надо продолжать смотреть пакеты и чтобы шим был включен. Аппаратный шим если подходит, то только при условии его копирования на множество линий, на счет этого точно не уверен, возможно ли.
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение dccharacter » 03 июн 2013, 01:20

Почитай даташит и посмотри, хватает ли тебе хардовых шимов.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 03 июн 2013, 02:36

dccharacter писал(а):Почитай даташит и посмотри, хватает ли тебе хардовых шимов.


не хватает, их мало (1-2, а надо 16). есть возможный вариант когда 1 апаратный шим копируется на множество линий, но тоже не понятно получится ли это
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение dccharacter » 03 июн 2013, 02:40

тогда прерывания. Но мне кажется ты V-USB поломаешь. Он же наверняка сидит на куче прерываний.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 03 июн 2013, 06:00

dccharacter писал(а):тогда прерывания. Но мне кажется ты V-USB поломаешь. Он же наверняка сидит на куче прерываний.


его функционирование может нарушится. прерывания есть, только не проверял еще, прокатит думаю, но могут быть проблемы и искажения шима. возможно прийдется брать контроллер со встроенным USB. или как-то считать такты в программе надо
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение Romikgy » 03 июн 2013, 10:18

под ваши задачи надо контроллер менять .... или включать спец микруху со множеством шимов....точности не будет в вашей реализации , хотя я не увидел данных по частоте проца и по требованиям к самому шиму....
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 03 июн 2013, 11:55

Romikgy писал(а):под ваши задачи надо контроллер менять .... или включать спец микруху со множеством шимов....точности не будет в вашей реализации , хотя я не увидел данных по частоте проца и по требованиям к самому шиму....


можно второй поставить контроллер такой же с другой программой и так щас и работает - 2 контроллера стоят, но есть недостаток - по 8 линий надо на 1 двигатель, если бы был 1 контроллер, то надо было бы всего 4 и можно подключить достаточное количество. шим уже реализован отдельно, 25 кГц часота ШИМ, частота проца 12 МГЦ
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение Duhas » 04 июн 2013, 06:22

ATxmega128A1U 18 аппаратных ШИМ...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: AVR, нужен USB+ШИМ в одном мк, как быть?

Сообщение iburo » 04 июн 2013, 07:56

Duhas писал(а):ATxmega128A1U 18 аппаратных ШИМ...


спс, это может быть полезно.
подумав немного принял решение делать на прерывании по таймеру счетчику. USB работает на одном прерывании, а установка шима на линиях на другом - по таймеру счетчику. и настроить еще таймер счетчик с подпрограммой обработки прерывания. думаю так получится хорошо, проверю этот вариант.
OpenRobo.ru роботы для производства. Открытые проекты.
Аватара пользователя
iburo
 
Сообщения: 81
Зарегистрирован: 01 май 2011, 01:15

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 9