Мурунку макалалардын биринде биз сменалык регистрди, тактап айтканда, 74HC595 колдонуу жөнүндө кыскача токтолгонбуз. Келгиле, ушул микросхема менен иштөөнүн мүмкүнчүлүктөрүн жана жол-жобосун кененирээк карап чыгалы.
Зарыл
- - Arduino;
- - сменалык регистр 74HC595;
- - туташтыруучу зымдар.
Нускамалар
1 кадам
Shift регистр 74HC595 жана ушул сыяктуу сериялык маалыматтарды параллелге өткөрүүчү шаймандар катары колдонулат, ошондой эле берилген абалды кармаган маалыматтар үчүн "илгич" катары колдонсо болот.
Чектөө (pinout) сол жактагы сүрөттө көрсөтүлгөн. Алардын максаты төмөнкүдөй.
Q0… Q7 - маалыматтын параллель чыгышы;
GND - жер (0 V);
Q7 '- маалыматтарды сериялык чыгаруу;
^ MR - баштапкы абалга келтирүү (активдүү төмөн);
SHcp - нөөмөт регистринин саатын киргизүү;
STcp - "илгич" саатты импульстук киргизүү;
^ OE - чыгарууну иштетүү (активдүү төмөн);
Ds - маалыматтарды сериялык киргизүү;
Vcc - + 5 В.
Түзүмдүк жагынан алганда, микросхема бир нече учурларда жасалат; Мен оң жактагы сүрөттө көрсөтүлгөндү - чыгууну колдоном - анткени нан тактайы менен колдонуу оңой.
2-кадам
SPI сериялык интерфейсин кыскача эстей кетейин, аны сменалык регистрге өткөрүп берүү үчүн колдонобуз.
SPI бул кожоюн менен кул катышкан төрт зымдуу эки багыттуу сериялык интерфейс. Биздин ишибизде кожоюн Ардуино болот, кул 74HC595 каттоосу болот.
Arduino үчүн өнүгүү чөйрөсү SPI интерфейсинде иштөө үчүн камтылган китепканага ээ. Аны колдонууда, сүрөттө белгиленген корутундулар колдонулат:
SCLK - SPI саат чыгышы;
MOSI - кожоюндан кулга чейинки маалыматтар;
MISO - кулдан кожоюнга чейинки маалыматтар;
SS - кул тандоо.
3-кадам
Сүрөттөгүдөй схеманы бириктирип коёлу.
Логикалык анализаторду сменалык регистрдин микросхемасынын бардык казыктарына туташтырам. Анын жардамы менен физикалык деңгээлде эмне болуп жаткандыгын, кандай сигналдар каякка кетип жаткандыгын көрөбүз жана алардын маанисин аныктайбыз. Сүрөткө окшош болушу керек.
4-кадам
Келгиле, ушундай эскиз жазып, Arduino эс тутумуна жүктөлсүн.
PIN_SPI_SS өзгөрмөсү бул биз колдонуп жаткан SPI интерфейсинин кожоюну катары колдонулганда Arduino "10" төөнөгүчү менен дал келген ички стандарттык константа. Принцибинде, биз Arduino башка санарип пин колдоно алмакпыз; анда биз аны жарыялап, анын иштөө режимин орнотушубуз керек болчу.
Бул төөнөгүчтү БАШКА берүү менен, биз өткөрүп берүү / алуу үчүн нөөмөттүк регистрди иштетебиз. Берилгенден кийин биз чыңалууну кайрадан ЖОГОРКУ деңгээлге көтөрүп, алмашуу аяктайт.
5-кадам
Келгиле, схемабызды жумушка айландырып, логикалык анализатор бизге эмнени көрсөтөрүн карап көрөлү. Убакыт диаграммасынын жалпы көрүнүшү сүрөттө көрсөтүлгөн.
Көк үзүк сызыкта 4 SPI сызыгы, кызыл чекитте смена регистринин параллель маалыматтарынын 8 каналы көрсөтүлгөн.
Убакыт масштабындагы А чекит - "210" саны жылыш регистрине өткөн учур, В - "0" саны жазылган учур, С - башынан кайталанган цикл.
Көрүнүп тургандай, биз эскизде сурагандай, А дан Вга чейин - 10,03 миллисекунд, ал эми В ден С - 90,12 миллисекунд. 0, 03 жана 0, 12 мс ичиндеги кичинекей кошумча бул Arduinoдон сериялык маалыматтарды өткөрүү убактысы, андыктан бизде бул жерде так 10 жана 90 мс эмес.
6-кадам
Келгиле, А бөлүмүн кененирээк карап чыгалы.
Эң жогору жагында Arduino SPI-ENABLE линиясында берүүнү баштоочу узун импульс - кул тандоо. Учурда SPI-CLOCK сааттын импульсу пайда боло баштайт (жогору жактан экинчи сап), 8 даана (1 байтты которуу үчүн).
Жогорудан кийинки сап SPI-MOSI - биз Arduinoдон нөөмөттүк регистрге өткөрүп берген маалымат. Бул биздин "210" деген сан бинардык түрдө - "11010010".
Которуу аяктагандан кийин, SPI-ENABLE импульсунун аягында, нөөмөт регистринин 8 бутуна бирдей маани коюлгандыгын көрөбүз. Мен муну көк чекиттүү сызык менен белгилеп, ачык-айкындуулук үчүн баалуулуктарды белгиледим.
7-кадам
Эми Б бөлүмүнө көңүл буралы.
Дагы бир нерсе, кул тандоодон жана сааттын 8 импульсун жаратуудан башталат.
SPI-MOSI линиясындагы маалыматтар азыр "0". Башкача айтканда, ушул учурда реестрге "0" санын жазып жатабыз.
Бирок которуу аяктаганга чейин, реестрде "11010010" мааниси сакталат. Ал Q0.. Q7 параллелдүү төөнөгүчтөргө чыгарылат жана Q7 'параллелдик чыгуудан SPI-MISO сызыгына чейинки сызыкта сааттын кагуусу болгондо чыгат, биз бул жерде көрөбүз.
8-кадам
Ошентип, биз Arduino болгон башкы түзмөк менен 74HC595 нөөмөт регистринин ортосунда маалымат алмашуу маселесин кылдаттык менен изилдеп чыктык. Сменалык регистрди кантип туташтырууну, ага маалыматтарды жазууну жана андан маалыматтарды окууну үйрөндүк.