Технический форум по робототехнике.
=DeaD= » 04 мар 2009, 23:18
И правда так:
MOSI (PDI) PE0
MISO (PDO) PE1
SCK () PB1
2avr123: Вот большущее спасибо! Такую граблю чуть не проморгали...
Добавлено спустя 1 минуту 42 секунды:avr123.nm.ru писал(а):На RESET 3.3 кОм и ведь у вас много таких плат может быть на шине - не сильна ли подтяжка ? Я обычно 10 кОм ставлю, конденсатор у вас хороший 0.1 мкф.
Это пожалуй верно, надо будет номинал увеличить, но к счастью на переделку плат это не повлияет, самое критичное - корявые платы.
avr123.nm.ru » 04 мар 2009, 23:20
Плату я не смотрел, только PDF глянул. Ща закачал тупую комедию "Знакомство со спартанцами" - не до плат

Там еще fuse совместимости с мегой103 есть ! Про него не забывайте при прошивке. С завадо он запроген в "0" - в совместимость.
Сергей » 05 мар 2009, 00:32
Вопрос - если у вас подключено три 4017, и три прерывания будут от таймеров, то они будут друг другу мешать, в следствии чего точность будет, на мой взгляд, уже не 1мкс. Объясните, вероятно я чото не усек
=DeaD= » 05 мар 2009, 00:46
Сергей писал(а):Объясните, вероятно я чото не усек
Переключение происходит не при прерывании, а при событии в таймере, а иму пофигу - хоть все три сразу. А в прерывании только настройка идёт, когда следующее переключение в таймере будет.
Сергей » 05 мар 2009, 01:08
Ок, а как идет настройка в прерывании? И с каким интервалом?
blindman » 05 мар 2009, 07:54
Подтянул PEN к питанию, заменил резистор на RESET на 10кОм, соединил PDO/PDI с MOSI/MISO через резисторы. Добавил керамику на выходы стабилизаторов.
Добавлено спустя 2 часа 5 минут 46 секунд:Сергей писал(а):Ок, а как идет настройка в прерывании? И с каким интервалом?
настройка происходит следующим образом :
- Код: Выделить всё • Развернуть
OCR1A += servo_pulse_len; // настраиваем таймер так, чтобы следующее прерывание возникло через servo_pulse_len тактов
4 прерывания, каждое из которых возникает не чаще чем раз в 500 мкс (мин. длительность импульса) - это 3686 тактов процессора. Обработка каждого прерывания займет, думаю, не более 40 тактов - то есть задача управления сервами загрузит процессор примерно на 4.3%. Условие стабильной работы - программа пользователя не должна держать прерывания запрещенными более чем (3686-160) = 3526 тактов процессора.
Добавлено спустя 24 минуты 18 секунд:Да, и реально разрешение будет 0,135633681 мкс , если оно кому надо

- Вложения
-
OR-AVR-M64-S.pdf
- (107.14 КиБ) Скачиваний: 33
avr123.nm.ru » 05 мар 2009, 11:59
blindman писал(а):Условие стабильной работы - программа пользователя не должна держать прерывания запрещенными более чем (3686-160) = 3526 тактов процессора.
ИМХО это не так просто. Прерывания юзера асинхронны с вашими. Значит если его int начнется на 3500 такте то не должно быть более 26 тактов.
т.е.
в доке должно быть просто "Прерывания делать
кратчайшими для обеспечения точности сигналов управления servo."
blindman » 05 мар 2009, 12:55
Я попробую сформулировать по-другому, может так понятнее будет: с момента возникновения прерывания от таймера, управляющего сервами, до вызова его обработчика, должно пройти не более 3526 тактов процессора. В момент, когда генерируется прерывание, таймер аппаратно формирует импульс для внешнего счетчика. А в обработчике прерываний таймер перенастраиватся так, чтобы очередное прерывание произошло не через 65536 тактов, а через столько, сколько длится импульс для сервы. И совершенно неважно, когда именно - главное успеть перенастроить таймер до наступления момента, когда должен закончиться импульс для текущей сервы и начаться для следующей.
Добавлено спустя 24 минуты 7 секунд:
Вот так будут правильно: на любом произвольно выбранном временном интервале в 3686 тактов суммарное время, в течение которого прерывания разрешены, должно составлять не менее 160 тактов.
Сергей » 05 мар 2009, 23:08
Я думаю потом это обсуждение нужно вырезать в отдельную тему.
Кстати, откуда такой расчет разрешения?
blindman » 06 мар 2009, 03:39
Это период тактовой частоты 7,3728 МГц, от которой и будут работать таймеры
demoontz » 08 мар 2009, 17:21
Подскажите, столько будет весить контролер?
мне для расчетов надо уже...
blindman » 08 мар 2009, 17:38
Точно не сказать, пока не будет собран. Примерно можно прикинуть по тому же SSC-32 : он весит 60г, наш будет иметь примерно такие же габариты, практически такие же компоненты (с небольшими вариациями), но не будет громоздкого разъема DB-9. Так что думаю масса получится как раз примерно 60г.
demoontz » 08 мар 2009, 20:30
там ктото говорил про радио модуль...
а какой и как можно будет подключить?

=DeaD= » 08 мар 2009, 21:29
Если про блютуз радиомодуль - то просто по шине робобас цепляется и всё, можно пользоваться. Ну естественно перед этим надо прошить контроллер сервоприводов.
demoontz » 18 мар 2009, 18:48
Как продвигается работа?
