2016-05-15

Увеличение чиcла GPIO для esp8266

diy, arduino

Давно играюсь с esp8266, для тех кто не в курсе это такая маленькая микросхема размешенная на готовом модуле. Этот модуль можно купить у китайцев за два доллара, причем модуль этот представляет собой полноценный микроконтроллер, имeющий на борту все, что нужно чтобы создавать довольно навороченные решения и умеющий общаться c внешнем миром по wifi.

Одной из проблем этого модуля является ограниченное количество портов общего назначения. У ESP-01 свободным остается только GPIO2, хотя можно еще использовать GPIO0 и два порта через которые заливают прошивку с компьютера RX и TX тоже можно использовать как GPIO.

Однако, мне для моих поделок нужно было больше GPIO выводов, гораздо больше. Сначала, хотел попробовать сдвиговые регистры, однако потом пришла в голову идея получше - 1Wire!

У фирмы Maxim есть замечательные ключи, например, ds2413 содержит два управляемых ключа, которые могут работать как для чтения так и для записи. У ds2408 их 8. При этом, можно сколько угодно вешать таких устройств на одину шину 1Wire которая в простейшем случае представляет из себя выход GPIO микроконтроллера с подтягивающим резистором 4.7 кОм. 1Wire позволяет вешать до 256 устройств на шину, что позволяет получить отличную масштабируемость.

У китайцев на aliexpess можно купить аналог ds2413 - 3A 2100H. Хотя, у большинства продавцов написано, что продают они ds2413 - у того у которого я купил, на картинке четко была видна маркировка - 3A 2100H, больше в описании об это ничего не было сказано. От оригинальных микросхем аналог отличается только семейным кодом - у оригинального он 0x3A у китайского 0x85 так что, если заходите взять поиграть, не наколитесь. Сначала, хотел написать грозный отзыв продавшему мне эти чипы китайцу, но когда скетч успешно заработал, я написал не очень грозный...

Вот пример для работы с ардуиной, который мне помог разобраться. Еще потребуется библиотека OneWire. В последних версиях есть поддержка esp8266. Чтобы пример заработал с 2100H нужно поменять в нем 0x3A на 0x85.

Теперь, можно делать на esp8266 устройства с любым количеством входов-выходов. При условии, кончено, что они будут не слишком быстро переключаться - у 1wire не сильно высокая пропускная способность.

 

комментарии:

 
RSS комментариев

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

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться

разное (183)
howto (124)
программирование (108)
гад-же-ты (75)
мысли (42)
PHP (41)
JavaScript (39)
вебмастеринг (37)
linux (28)
гондураша (28)
юмор (25)
полезное (21)
движок (17)
Android (16)
софт (15)
деньги (14)
видео (13)
кино (13)
музыка (10)
беспредел (10)
путешествия (10)
интернет (9)
diy (9)
ztools (8)
книги (8)
умный дом (8)
занимательная физика (8)
языки (7)
хостинг (7)
Nokia 5800 (7)
lifehack (6)
css (6)
вебдизайн (6)
apple (5)
arduino (5)
связной (5)
прелоадер (5)
козлы (5)
oDesk (5)
занимательная юриспруденция (4)
svn (4)
кухня (4)
Python (4)
энергия (3)
рестораны (3)
software (3)
synphony (3)
Java (2)
webmastering (2)
фото на документы (2)
Ruby on Rails (2)
спорт (2)
bash (2)
движек (2)
гитара (2)
аниме (2)
дурдом (1)
C++ (1)
годнурас (1)
микросервисы (1)
SEO (1)
programming (1)
технологии (1)
наука (1)
сайты (1)
авторское право (1)
восстановить (1)
Поиск по блогу:

Valid XHTML 1.0 Strict