експандер SPI <=> MCP23S17 <=> 16 входове/изходи <> описание на развойна платка SPI разширител MCP23S17 <> РАСПБЕРИ ПАЙ ПИКО ПРЕЗ SPI шината може да свържете всякакви платки, чипове и системи за комуникация които до момента са работили на други процесорни системи.
линк към тубата >>> https://www.youtube.com/watch?v=vpB3R3BCyMs
ПИТАЙ ЗА ЦЕНА ЗА КОМПЛЕКТА НА ЕПОЩА : This email address is being protected from spambots. You need JavaScript enabled to view it.
проектирани и произведени са четири варианта:
1. ВАРИАНТ 1 - платка с експандер MCP23S17 със 16 броя светодиоди. на снимката може да видите /както и по-късно/ разположението на светодиодите и резисторите за тях. всеки от светодиодите е свързан през резистор /стойност по избор според светодиода/ директно към всеки от 16 пина на експандера. в по-късен момент ще има и платка със релета за същия експандер, варианти на релейни платки с този чип има много на сайта. софтуер и пълна техническа информация за това как се инициализира и управлява експандера MCP23S17 през SPI шината има както на сайта на микрочип, така и в целия интернет. масово употребяван за разширение на периферията със входове, изходи, много функции хардуерни и софтуерни могат да се напишат за всички регистри вътре в чипа. при инициализация на чипа, в софтуера има команди които правят пиновете на експандера да бъдат изходи, което означава, че когато изпратите през SPI шината стойност от 1 до 255 към ПОРТА или към ПОРТБ съответните пинове ще се установят във 1 и на физическия пин ще има +5V, като светодиодите ще светнат според зададената стойност на адреса на изходящия регистър НА ПОРТА и/или ПОРТБ.
захранването е +5V както за експандера, така и за светодиодите които са свързани директно към изходящите пинове на експандера през резистори за всеки светодиод поотделно. стойностите на резисторите ще определите сами, според това какви светодиоди сте предвидили да запоите на платката. примерно, ако максималният ток на светодиода според спецификацията е 5мА /мили ампера/ резистора за този светодиод трябва да е минимално 1к /един килоом/. аз обаче правя проба на бредборд платка преди да запоя всички светодиоди колко силно и колко ток ще мине през светодиода като умножавам това по 16 броя за цялата платка. за това принципно винаги на светодиодите които купувам от комет пробвам стойности между 1к /килоом/ и 2к /килоома/ докато мултицета покаже стойност приемлива за всички 16 броя на цялата платка. имайте предвид, че ако намлявате стойността на резисторите на светодиодите ще тече по-голям ток и това ще натовари стабилизатора 7805 който стандартно е 1 ампер. препоръка = пробвайте директно с 2 килоома резистор и ако ви харесва как свети направете всички светодиоди с 2 килоома резистори. малките стойности на резисторите също товарят по ток и драйверните стъпала вътре в експандера MCP23S17, като има вероятност да го изгорите. за да определите добра стойност на резисторите използвайте също ЗАКОНА НА ОМ за товарите и напрежението, тока и съпротивлението.

2. ВАРИАНТ 2 - платка със същия експандер, само че със бутони 16 броя, като по този начин може да се направят клавиатури със бутони за команди, избор на менюта, въвеждане и редакция на данни в процесорните системи, ръчни режими на работа със периферията към процесорите и много други приложение. бутоните също могат да имитират работата на входящи релейни контакти от други системи, има вариант и за употреба на делители на напрежение за вход от +12V, което често се налага при по-дълги кабелни линии. при инициализация трябва да кажете със команда през SPI порта на експандера да инициализира пиновете като входове, като след това да проверявате всеки един дали е натиснат. АКО БУТОНА Е НАТИСНАТ на съответния пин в регистъра на ПОРТА и/или ПОРТБ ще се появи +5V като регистърът ще отчете това като логическа единица 1. трябва да проверите в софтуера адреса на този регистър за да видите дали има промяна, каква е стойността и да отчетете кой бутон съответно е натиснат. след това може да избирате каква функция да се извика и да се изпълни КОГАТО Е НАТИСНАТ този бутон. има също значение дали е само пулсово натиснат с някакво задържане или е задържан за да се изпълнява функцията докато бутона е натиснат. софтуер и примери има много за това в интернет. за добрите програмисти този експандер е доста добър вариант за всяко приложение в електрониката.
всички бутони са включени към +5V и при натискане на даден бутон на съответният пин на експандера се поличават +5V като регистрите на експандера отчитат тези +5V като логическа единица 1. към всеки бутон е запоен към маса и един резистор от 2к килоома, за да може да държи пина на входа на експандера в постоянна нула. САМО КОГАТО БУТОНА Е НАТИСНАТ ще се появят +5V и експандера ще промени състоянието на регистъра на порта А/Б със +1. тази разлика с +1 или -1 във стойността на регистъра трябва да сравните във вашия софтуер за да отчетете дали е натиснат някой от бутоните или не.
3. ВАРИАНТ 3 - на тази платка има направена комбинация от 8 светодиода и 8 бутона. двата 8 битови регистъра на експандера са разделени единият на входове другият само на изходи. при инициализация това трябва да се укаже в софтуера за да знае експандера кой порт да включи на входове и кой порт на изходи. иначе като схема и стойности всичко е същото.