Подскажите код для Attiny

mendosa
Offline
Зарегистрирован: 28.10.2020

Привет всем.

Хочу сделать преобразователь на attiny. SPI-PWM для сервы.

нашел примеры с управлением сервоприводов:https://paromanie.webnode.cz/elektrika-elektronika/attiny85/

Подскажите пожалуйста, можно ли дописать код, чтобы управлять сервой по SPI?

maks321
Offline
Зарегистрирован: 28.10.2020

можно,через интерпритатор спи-серва(в железе)

mendosa
Offline
Зарегистрирован: 28.10.2020

т.е.?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

mendosa пишет:

Подскажите пожалуйста, можно ли дописать код, чтобы управлять сервой по SPI?

Наверное можно. Желательно было бы узнать что конкретно подразумевается под "управлять по SPI" ?

maks321
Offline
Зарегистрирован: 28.10.2020

не посмотрел вашу ссылку,можно на асме и в других компилерах. ищите в инете,и в среде ардуино - нет!

mendosa
Offline
Зарегистрирован: 28.10.2020

Управление сервоприводами по принципу управления светодиодной адресной лентой.

Как я это вижу: взять к примеру attiny85 или attiny13, написать к нему код как ведомому устройству, управляющим одним сервоприводом, и выстроить серию таких контроллеров в цепочку.

То что attiny может управлять сервой я понял, а хватит ли ей памяти для кода, чтобы управлять сервой ведущим устройством по SPI, есть сомнения.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Тема  ̶с̶и̶с̶е̶к̶ ̶ управления по SPI так и не раскрыта. Какие команды по какому протоколу и с какой частотой должны передаваться? 

mendosa
Offline
Зарегистрирован: 28.10.2020

К примеру

адресная светодиодная лента управляется по spi.

Т.е.у каждого цвета на каждом светодиоде есть адрес и диапазон яркости свечения от 0 до максимального свечения

теперь в этой схеме заменяем светодиоды на сервомашинки-протокол тот же

только по spi изменяется не яркость свечения а угол поворота сервомашинки от 0 до 180 град. Или больше в зависимости от сервы

mendosa
Offline
Зарегистрирован: 28.10.2020

Я конечно могу использовать цепочку из  pca9685 

Но мне интересно справится ли с этой задачей attiny

И плюс в этом случае будет не важно что я подключу к ведущему устройству

адресную ленту или цепочку из сервомашинок

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

asam пишет:

Тема  ̶с̶и̶с̶е̶к̶ ̶ управления по SPI так и не раскрыта. Какие команды по какому протоколу и с какой частотой должны передаваться? 

надо просто передать число 800 - 2400 по стандарту от 1000 до 2000, а тинька должна будет сформировать шим с длительностью от 1000 до 2000 мксек

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

mendosa пишет:

Но мне интересно справится ли с этой задачей attiny

Может справится, а может и нет. Пока задача толком не сформулирована.

Это примерно как - "справятся ли жигули с задачей перевозки груза?"

Все зависит от того какой груз, в каком размере, на какую дальность и с какой скоростью.

rkit
Offline
Зарегистрирован: 23.11.2016

Справится, только это мазохизм какой-то - тянуть 4 сигнальных провода вместо 1.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Если полностью эмулировать протокол АРА102 то памяти у Аттини85 хватит за глаза. Вопрос в бытродействии. Аппаратный SPI у него 1 поэтому второй нужно будет делать софтовый.

programming

Но вот нафиг нужно 32 бита передавать для сервы?

 

b707
Offline
Зарегистрирован: 26.05.2017

я бы еще спросил, почему ТС называет это SPI

mendosa пишет:

Но мне интересно справится ли с этой задачей attiny

думаю да. Но только вы понимаете, что придется ставить по тиньке на каждую серву? С учетом того, что серв у вас сотни - это прилично скажется на цене, тиньки дорогие.

Лучше взять что-нить из разряда СТМ8 - они стоят в разы меньше, плюс к одному МК можно будет подключить, наверно, до десятка серв

Или даже банальную атмегу48 или 88 - они дешевле тинек и имеют больше ног

rkit
Offline
Зарегистрирован: 23.11.2016

b707 пишет:

Лучше взять что-нить из разряда СТМ8

Ты сам-то программировал stm8, советчик?

b707
Offline
Зарегистрирован: 26.05.2017

rkit пишет:

Ты сам-то программировал stm8, советчик?

да, приходилось пару раз. Драйвер шаговика писал на таймерах, передатчик на HC-12

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

rkit
Offline
Зарегистрирован: 23.11.2016

Человек, спрашивающий такие вопросы на форуме, с stm8 не справится никогда.

-NMi-
Offline
Зарегистрирован: 20.08.2018

b707 пишет:

передатчик на HC-12

На чём писал? Ide, имеется ввиду для 8-ки.

b707
Offline
Зарегистрирован: 26.05.2017

-NMi- пишет:

На чём писал? Ide, имеется ввиду для 8-ки.

пробовал IAR,  Keil и STMDevelop. Остановился на ИАРе

b707
Offline
Зарегистрирован: 26.05.2017

rkit пишет:

Человек, спрашивающий такие вопросы на форуме, с stm8 не справится никогда.

судя по вопросам... он может и с тини не справится. Но всегда может заказать. Я так понял, что у него проект серьезный, сотни сервочек

mendosa
Offline
Зарегистрирован: 28.10.2020

Добрый день

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

Для друзей так я вообще гений электроники, потому что знаю слово ардуино

поэтому могу немного путать терминологию

вначале я вообще хотел делитель частоты припаять к чипу ws2811-просто тупо уменьшить частоту импульсов шим выходящих с чипа

но меня как то отговорили. Можно конечно использовать цепочку из PCA9685 модулей (на каждый повесить по 16 машинок) и в качестве ведущего устройства взять uno например и написать код преобразования spi - pwm.

почему spi?. потому что все это дело прицепится к dmx-spi контроллеру, на котором сейчас ленты висят.

А сейчас родилась мысль что можно такую задачу в attiny впихнуть

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

в принципе можно и CTM8 но для меня это совсем перебор

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

вопрос у меня как бы принципиальный. просто есть много серв и контроллер dmx-spi, и есть чем все это управлять(да, кстати это все управляется в рилтайме). сейчас взял PCA9685-буду баловаться

может коряво чего написал-как смог:)))

b707
Offline
Зарегистрирован: 26.05.2017

mendosa пишет:

вопрос у меня как бы принципиальный. просто есть много серв и контроллер dmx-spi, и есть чем все это управлять(да, кстати это все управляется в рилтайме). сейчас взял PCA9685-буду баловаться

под PCA9685 вам все равно придется конвертер писать, напрямую "spi для ленты" с этим модулем не заработает.

Если про стм8 ничего не знаете - забудьте. Это вариант для тех, кто уже освоил микроконтроллеры на уровне прямого обращения, а не через ардуино. Ну и если вы ни с каким МК напрямую не работали - написать подобное - что для уно, что для тини -задачка не на пару дней. Готовтесь потратить месяцы...

rkit
Offline
Зарегистрирован: 23.11.2016

1 серво на 1 мк это жирно. Ничто не мешает сделать каскадируемые модули на десяток моторов каждый. Тупо 328. Пытаться что-то там оптимизировать по цене не имеет смысла - с сотней моторов выиграешь 1000р, дай бог. Не стоит потраченного времени.

Каскадировать проще по uart, если всё равно берется микроконтроллер.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

rkit пишет:

1 серво на 1 мк это жирно. Ничто не мешает сделать каскадируемые модули на десяток моторов каждый. Тупо 328. Пытаться что-то там оптимизировать по цене не имеет смысла - с сотней моторов выиграешь 1000р, дай бог. Не стоит потраченного времени.

Каскадировать проще по uart, если всё равно берется микроконтроллер.

это как посмотреть, если глянуть цены на цифровые, а не аналоговые сервы, то очень даже может нормально получится, меня только один вопрос смущает, на какое расстояние ТС собрался передавать данные

mendosa
Offline
Зарегистрирован: 28.10.2020

К примеру 500 серв с шагом в 500 мм

по spi это же один провод получается и плюс блоки питания тоже с некоторым шагом

по крайней мере так с лентой получается

b707
Offline
Зарегистрирован: 26.05.2017

mendosa пишет:

по spi это же один провод получается и плюс блоки питания тоже с некоторым шагом

один никак, минимум два, Data и GND

 

500 точек через пол-метра = 250м ? И что, лента работает на такой линии?

 

rkit
Offline
Зарегистрирован: 23.11.2016

mendosa пишет:

по spi это же один провод получается и плюс блоки питания тоже с некоторым шагом

SPI это ЧЕТЫРЕ сигнальных провода. MOSI, MISO, SCK, SS. Что ты там придумал - хз.

 

mendosa
Offline
Зарегистрирован: 28.10.2020

mendosa
Offline
Зарегистрирован: 28.10.2020

как то так и работает

https://www.youtube.com/watch?v=Xr-ePTfjWF0

mendosa
Offline
Зарегистрирован: 28.10.2020

правда это работает на низких частотах, для лент ws2812

для высокочастотных лент еще SCK понадобится типа SK9822

если я где то ошибся-прошу меня поправить

b707
Offline
Зарегистрирован: 26.05.2017

mendosa пишет:

если я где то ошибся-прошу меня поправить

ошиблись в том, что хоть ваш контроллер и называется dmx-spi. на самом деле это совсем не тот SPI, который используется в ардуино. Это два разных протокола и девайсы, рассчитанные на один из них - на другом работать не будут.