roboforum.ru

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

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

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

iburo » 02 июн 2013, 02:50

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

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

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

Что можете посоветовать?

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

Angel71 » 02 июн 2013, 03:06

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

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

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

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

dccharacter » 02 июн 2013, 08:43

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

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

iburo » 02 июн 2013, 14:13

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


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

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

dccharacter » 02 июн 2013, 16:30

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


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

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

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

iburo » 02 июн 2013, 23:43

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


При этом надо продолжать смотреть пакеты и чтобы шим был включен. Аппаратный шим если подходит, то только при условии его копирования на множество линий, на счет этого точно не уверен, возможно ли.

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

dccharacter » 03 июн 2013, 01:20

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

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

iburo » 03 июн 2013, 02:36

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


не хватает, их мало (1-2, а надо 16). есть возможный вариант когда 1 апаратный шим копируется на множество линий, но тоже не понятно получится ли это

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

dccharacter » 03 июн 2013, 02:40

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

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

iburo » 03 июн 2013, 06:00

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


его функционирование может нарушится. прерывания есть, только не проверял еще, прокатит думаю, но могут быть проблемы и искажения шима. возможно прийдется брать контроллер со встроенным USB. или как-то считать такты в программе надо

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

Romikgy » 03 июн 2013, 10:18

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

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

iburo » 03 июн 2013, 11:55

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


можно второй поставить контроллер такой же с другой программой и так щас и работает - 2 контроллера стоят, но есть недостаток - по 8 линий надо на 1 двигатель, если бы был 1 контроллер, то надо было бы всего 4 и можно подключить достаточное количество. шим уже реализован отдельно, 25 кГц часота ШИМ, частота проца 12 МГЦ

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

Duhas » 04 июн 2013, 06:22

ATxmega128A1U 18 аппаратных ШИМ...

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

iburo » 04 июн 2013, 07:56

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


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


Rambler\'s Top100 Mail.ru counter