SPI модуль управления мощностью сетевой нагрузки

axill
Offline
Зарегистрирован: 05.09.2011

ради практического и одновременно академического интереса сделал автономный модуль управления мощности сетевой нагрузке управляемый по SPI

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

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

пока выкладываю фото и видео, как опубликуют мою статью - дам ссылки на все документы

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

http://www.youtube.com/watch?v=1dTRJhfWw3A

 

axill
Offline
Зарегистрирован: 05.09.2011

забыл написать - в основе tiny13

axill
Offline
Зарегистрирован: 05.09.2011

тут все детали http://radiokot.ru/konkurs/70/

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

По I2C и 1-Wire было бы практичнее - потому что каждое SPI устройство отнимает по 1 выводу(CS) контроллера.

axill
Offline
Зарегистрирован: 05.09.2011

програмная реализация 1wire весьма сложная и требует обвязку вокруг МК - точно не очень хороший вариант

а I2C можно будет сделать как еще один вариант

Если в проекте есть хоть одно устройство SPI для модуля потребуется всего один вывод - совсем не много

в случае i2c выигрышь будет только если в проекте несколько устройств i2c, точнее если их больше двух

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

На сколько метров Ваше устройство может отстоять от источника управления по SPI?

axill
Offline
Зарегистрирован: 05.09.2011

Andrey_Y_Ostanovsky пишет:

На сколько метров Ваше устройство может отстоять от источника управления по SPI?

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

помехи могут привести к ложным срабатываниям - при длинных линиях нужно использовать экранированный провод и позможно ставить дополнительные подтажки к плюсу питания по шинам основного МК SCK/MOSI/SS - чем длинее провода тем меньше сопротивления вплоть до максимальных токов на выходах

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

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Для линий более 1м уже нужно использовать RS485

Кроме помех для SPI еще имеет значение паразитная емкость кабеля

axill
Offline
Зарегистрирован: 05.09.2011

carduino.ru пишет:

Для линий более 1м уже нужно использовать RS485

Кроме помех для SPI еще имеет значение паразитная емкость кабеля

про емкость написано выше. Согласен - SPI обычно применяется для внутрисхемных взаимодействий с короткими линиями. Для внешних соединений нужны протоколы расчитанные на помехи

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Вобщем устройство это люди захотят воткнуть прямо в 220 линию - в коробку выключателя к примеру и поставить по всему дому - штук 20 - и работать это не будет потому что тянуть тучу проводов сложно - удобнее подключать все в шину которая позволяет паралельное подключение устройств. RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

axill
Offline
Зарегистрирован: 05.09.2011

NeiroN пишет:

Вобщем устройство это люди захотят воткнуть прямо в 220 линию

это не конечное устройство. Это модуль для подключения к МК или ардуино. Его смысл такой же как например в релейном модуле, только в отличие от реле этот модуль не включает и выключает, а еще может задавать промежуточные значения

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

 

NeiroN пишет:

RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

Да зачем что то придумывать, есть же открытый протокол modbus

axill
Offline
Зарегистрирован: 05.09.2011

carduino.ru пишет:

RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

Да зачем что то придумывать, есть же открытый протокол modbus

это модуль, не супер-пупер устройство!)

за ссылку спасибо, тема интересная. Вот если бы сделать шлюз не как в теме TCP->MODBUS->RS485, а TCP->MODBUS->RADIO)) я считаю провода это не вариант для умного дома - радио вот выбор

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

carduino.ru пишет:

NeiroN пишет:
RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

Да зачем что то придумывать, есть же открытый протокол modbus

Можно подумать, что первые два - закрытые. :)

carduino.ru
Offline
Зарегистрирован: 06.12.2011

axill пишет:

carduino.ru пишет:

RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

Да зачем что то придумывать, есть же открытый протокол modbus

это модуль, не супер-пупер устройство!)

за ссылку спасибо, тема интересная. Вот если бы сделать шлюз не как в теме TCP->MODBUS->RS485, а TCP->MODBUS->RADIO)) я считаю провода это не вариант для умного дома - радио вот выбор

Провода или радио, для протокола modbus не имеет значения

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Andrey_Y_Ostanovsky пишет:

carduino.ru пишет:

NeiroN пишет:
RS485 тут оптимален + на него наложить адресный протокол c поиском типа I2C или 1-Wire

Да зачем что то придумывать, есть же открытый протокол modbus

Можно подумать, что первые два - закрытые. :)

modbus это готовое решение

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
что касается емкости - этим можно управлять увеличивая задержку при передаче по SPI, в моем тесте задержка задается SPI_DELAY. При высокой емкости нужно увеличивать задержку, чтобы линии успевали перезаряжаться

прошу прошения за вопрос начинающего, задержку между битами или пакетами?

axill
Offline
Зарегистрирован: 05.09.2011

Nonsens пишет:

прошу прошения за вопрос начинающего, задержку между битами или пакетами?

можете сами исходник посмотреть, там все достаточно просто. Задержка стоит в двух местах.

1. после того как на SS выставлен ноль - так как в tiny13 SPI програмный то после того как SS выставлен в ноль tiny13 должна выполнить несколько строчек кода, это по времени совсем не много, но пауза нужна, так как код для мастера содержит меньше строк кода и при условии равной частоты атмега8 уже "обгонит" tiny13. Эта задержка по сути то, что вы назвали задержка между пакетами (байтами, пакет из одного байта)

2. между битами - tiny13 как ведомое устройство после появления положительного фронта на CLK обазана успеть выстаивить следующий бит статуса на пине DOUT и после этого прочитать DIN. Опять получается строк кода на ведомом несколько больше, чем на мастере - нужна задержка. Теоретически вместо _delay можно вставить буквально несколько nop(), но так как скороксть обмена с моим модулем совершенно не критична я такой тонкой подгонкой не занимался да и код с _delay получается более универсальный для разных МК и разных частот

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
1. после того как на SS выставлен ноль - так как в tiny13 SPI програмный то после того как SS выставлен в ноль tiny13 должна выполнить несколько строчек кода ...

Спасибо. Хочу посмотреть такое же толковое описание протокола SPI, как и для Nordic 24L01 (картинку с алгоритмом привел для примера)  с блок-схемами аглоритмов обмена, описаниями данных и временными диаграмами ? Пока нашел это http://www.microcontrollerov.net/microcontrolleri/mega/AVR151-Inicializa...

, будет достаточно  или tot где-то в Atmel спрятан раздел "Errata"  ?

 

 

 

 

axill
Offline
Зарегистрирован: 05.09.2011

зачем вы себя сами грузите? Цель перед вами какая стоит? Изучить SPI?

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
зачем вы себя сами грузите? Цель перед вами какая стоит? Изучить SPI?

Написать программу для работы с NRF24Lo1 и для этого изучить SPI, я писал об этом здесь 

http://arduino.ru/forum/programmirovanie/rabota-s-spi

Я бы рад не грузиться лишней информацией, но мне трудно работать с устройством не зная его принципов

 

axill
Offline
Зарегистрирован: 05.09.2011

используйте готовые библиотеки Mirf или RF24 - нет необходимости вникать в SPI, вы и так не мало времени потратите в то как работать с ntf24l01 даже если не будете сами писать библиотеку

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
используйте готовые библиотеки Mirf или RF24 - нет необходимости вникать в SPI, вы и так не мало времени потратите в то как работать с ntf24l01 даже если не будете сами писать библиотеку

 

1) где взять Mirf ?

2) она заменяющий аналог для RF24?

3) посоветуйте пожалуйста простой проект на NRF24L01 который можно просто повторить начинающему

axill
Offline
Зарегистрирован: 05.09.2011

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

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
Mirf на любителя, я ее не использовал. Ссылку на RF24 вам дали, постааьте, там в комплекте есть готовые примеры

https://github.com/maniacbug/RF24/

что-то я не догоняю, как она структурно устроена, там несколько авторов, публикующих в ветках (branch) свои версии библиотек?        какая из версий стабильная и Вы ее использовали ?

axill
Offline
Зарегистрирован: 05.09.2011

Вы пренебрегаете советом перечитать тему nrf24 на этом форуме, это характеризует не очень хорошо, пренебрежительно к участником форума

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

Nonsens
Offline
Зарегистрирован: 19.09.2013

axill пишет:
Вы пренебрегаете советом перечитать тему nrf24 на этом форуме, это характеризует не очень хорошо, пренебрежительно к участником форума

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

Поиск на форуме работате не понятно, искал внешним через яндекс, нашел много тем c NRF24.... У вас сложилось ошибочное мнение, не пренебрег, а просто не знаю, какую из них читать. В некоторых темах есть  домыслы и  ошибки, которые трудно обнаружить начинающему.

Вы какую качественную тему имели ввиду?

http://www.arduino.ru/forum/proekty/peredacha-temperatury-s-datchikov-dh... http://www.arduino.ru/forum/apparatnye-voprosy/nrf24l01meganano  http://www.arduino.ru/forum/programmirovanie/nrf24l01  http://www.arduino.ru/forum/programmirovanie/ne-rabotaet-nrf24l01  http://www.arduino.ru/forum/obshchii/nrf24l01-vozmozhnosti-proshu-soveta  http://www.arduino.ru/forum/programmirovanie/raskodirovat-tekst-pri-pere... http://www.arduino.ru/forum/programmirovanie/pomogite-svyazat-arduino-i-... http://www.arduino.ru/forum/programmirovanie/ethernet-udlinnitel-na-nrf2...

axill
Offline
Зарегистрирован: 05.09.2011
Nonsens
Offline
Зарегистрирован: 19.09.2013

спасибо, изучу

 

gregoryl
Offline
Зарегистрирован: 09.09.2013

Доброго времени суток, у меня вопрос к автору. Как расчитывается мощьность резистора на фильтре из конденсатора 0.01мк и сопротивления 39Ом. Я только начинаю постигать схемотехнику, и не нашел нигде упоминания того как это сделать, видимо это относится к элементарным вещам в которых у меня пробел. 

К вас на фото, я не нашел каких либо мощных резисторов. И правильно ли я понимаю, конденсатор должен быть расчитан на 220в ?

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

параметры у автора с даташита к оптрону, а кондер надо брать с хорошим запасом. На 630 ставьте, не ошибетесь

kentik
Offline
Зарегистрирован: 28.03.2013

что-то у меня http://radiokot.ru/konkurs/70/ не открывается.

где посмотреть что и с чем у автора этой темы.

axill
Offline
Зарегистрирован: 05.09.2011

Michal за меня уже ответил) спасибо

gregoryl,

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

kentik,

там что то куда то переносили на сайте и ссылки пострадали, но всегда работает поиск. рбочая ссылка http://radiokot.ru/circuit/digital/automat/74/