Мазмуну:

ATtiny84/85 SPI Interface пин кайра колдонуу: 6 кадам
ATtiny84/85 SPI Interface пин кайра колдонуу: 6 кадам

Video: ATtiny84/85 SPI Interface пин кайра колдонуу: 6 кадам

Video: ATtiny84/85 SPI Interface пин кайра колдонуу: 6 кадам
Video: Cara Isi Bootloader dan Program ATTINY13 Menggunakan Arduino 2024, Ноябрь
Anonim
ATtiny84/85 SPI Interface Pin Кайра Колдонуу
ATtiny84/85 SPI Interface Pin Кайра Колдонуу

Бул көрсөтмө "ATtiny84/85 Системалык Чыгуу менен мүчүлүштүктөрдү оңдоонун" уландысы болуп саналат жана бул программалык камсыздоону жүктөө түйүндөрүн тиркеме программасы тарабынан кайра колдонуу маселесин чечүү үчүн ошол аппараттык жана программалык конфигурацияны кеңейтет. Жалпысынан, ушул жана 1 -бөлүктүн ортосунда көрсөтүлүүчү, төмөнкү темалар талкууланат/көрсөтүлөт:

Тема ATtiny84 ATtiny85
SoftwareSerial классын колдонуу менен сериялык байланыш X X
Колдонмо менен жүктөөнүн ортосунда түзмөк казыктарын бөлүшүү X X
Pin Change үзгүлтүгү X
Тышкы үзгүлтүк X
POWER_DOWN режиминде уктаңыз; үзгүлтүккө учуроо X
SoftwareSerial менен байланышкан "көбөйтүлгөн" үзүү вектордук шилтеме катасынын айланасында иштөө X
ATtiny түзмөктөрүнүн схемаларын өзгөртүү, жүктөө, мүчүлүштүктөрдү оңдоо …… X X

Аппараттык I/O компонентин SPI программалоо интерфейсине арналган казыктардын бирине кошуу кээде жакшы, кээде жок. Мисалы, MISOго LED кошуу жүктөө учурунда LEDдин жаркылдап калышына алып келет жана ал тиркеме үчүн жеткиликтүү. Бирок, MISOго пьезо сигналын кошуу коркунучтуу кыйкырык үнүнө алып келет, андан кийин жүктөө үзгүлтүккө учурайт.

Бул нускоочу 4x2: 1 мультиплексорун SPI интерфейсине MISO, MOSI жана SCK сигналдарына жүктөлүп жатканда аларды коргоо аркылуу "калыбына келтирүү" үчүн кантип колдонууну түшүндүрөт. RESET пининин кайра колдонулушу сактандыруучу өзгөртүүнү талап кылат жана бул ыкма менен камтылган эмес. Түйрүктөрдү кош тапшыруу мультиплексордун жардамы менен, жүктөө жүрүп жаткандыгына жараша, тиркеме менен программалоо кириштеринин ортосунда которулат. Код жана схемалар ATtiny84 жана ATtiny85 үчүн киргизилген. ATiny84 конфигурациясы биринчи жолу каралат, анткени анын эки I/O порту бар жана кээ бир кошумча көйгөйлөрдү/чечимдерди көрсөтүү үчүн колдонулушу мүмкүн. Tiny84 талкуудан кийин, ошол эле сценарийлер ATtiny85 үчүн талкууланат.

1 -кадам: Керектүү жабдык

Сүрөт
Сүрөт

Керектүү жабдыктардын көбү 1 -бөлүктө көрсөтүлгөн, андыктан жаңы жабдыктар гана төмөндө келтирилген.

Аты Мүмкүн булак Кантип колдонулган
4x2: 1 мультиплексор Mouser SPI интерфейсинин сигналдарын жана I/O тиркемесин бөлүштүрүү механизми болгон 4 2-кирүү; 1-чыгуу которгучтарын камтыйт.
SPST которгуч Ар кандай которгуч түрү (бир заматта же жабык) иштейт. Которуу колдонмо киргизүү үчүн пин бөлүшүүнү көрсөтүү үчүн колдонулат.
10K каршылыгы Калкып кирүүдөн сактануу үчүн SPST которгучунун ылдый каршылыгы
Сүрөт
Сүрөт
Сүрөт
Сүрөт

Мультиплексор - бул пин жүктөө колдонмосун тиркемелерди колдонуудан ажыратуунун ачкычы. 4x2: 1 мультиплексорунун жалпы функциясы 2 башкаруу сигналынан жана 4 бирдей иштеген өчүргүчтөрдөн турат. Ар бир мультиплексор пиндин жүрүм -туруму төмөндө талкууланат:

Кадап коюу Аты Функция
15 Г. Чындык таблицасында көрсөтүлгөндөй, мультиплексор G иштетүүчү пин төмөн болгондо гана иштейт. Биз мультиплексорду таптакыр өчүргүбүз келбегендиктен, пин 15 түз жерге туташат.
2-4; 5-7; 9-11;12-14 A (киргизүү), B (киргизүү), Y (чыгаруу) Төрт 2-киргизүү бар; 3-пиндин ар бир тобу менен 1-чыгуу которгучтары катары менен номерленген A (киргизүү), B (киргизүү), Y (чыгаруу) ж. которгуч 1 үчүн; пин 2 = 1А; пин 3 = 1В; pin 4 = 1Y.
1 Тандоо Качан тандоо төмөн болсо, А которуштуруучу кириш Y менен байланышкан которгучтун чыккычы менен туташтырылат. Тандоо жогору болгондо, В которуштуруу кириши анын ордуна чыгууга туташат. Коммутаторлор бир убакта Select сигналы менен башкарылат жана бирдей иштейт.
8 GND IC мультиплексор
16 VCC IC күчү

2 -кадам: Тест учурларына сереп

Сүрөт
Сүрөт
Сүрөт
Сүрөт

Пинди кайра колдонуунун эки сценарийи пин пин колдонмонун кириши же чыгышына негизделген. Киргизүүнү иштетүү тартиби дайыма бирдей; ошондой эле жабдуулардын компонентине карабастан, колдонмону чыгаруу процедурасы бирдей. Ошентсе да, эгерде конкреттүү мисалдар келтирилсе, түшүндүрүү оңой жана түшүнүктүүрөөк болот. Бул эки иштин минималисттик схемасы жогоруда көрсөтүлгөн. Кийинчерээк деталдуу орнотуулар үчүн, байланыштар кичинекей чымчыктардын уясына айланат, андыктан бул таза диаграммаларга кайрылуу пайдалуу болушу мүмкүн.

RESET - бул мультиплексор тандоо сигналы үчүн эң сонун тандоо, анткени ал жүктөө учурунда аз, бирок жүктөө аяктаганда кайра жогору кетет. Көңүл буруңуз, мультиплексордук которгучтардын экөө тең эки учурда тең колдонулушу мүмкүн, анткени бардык которгучтар бирдей иштешет. Ошондой эле, мисалдардын бири да "реалдуу" эмес; алар изоляция ыкмаларын көрсөтүүнүн эң жөнөкөй жолу катары тандалып алынган

  1. Чыгаруу иши: ATtiny84 пин 4төн (SCK) чыккан LED мультиплексор алмаштыргыч 2 аркылуу бөлүнгөн

    • мультиплексор пин 2А жерге туташтырыңыз
    • мультиплексор пин 2В ATtiny85 пин 4 туташтыруу
    • 2Y чыгарууну LED анодуна туташтырыңыз

      • Күтүлгөн жыйынтыктар:

        • Жүктөө учурунда LED 2А, жерге туташкандыктан өчүрүлөт
        • LED 2B аркылуу жүктөлгөндөн кийин 4 -тиркеме пинге тиркелет жана жаркырай баштайт
  2. Киргизүү иши: ATtiny84 пин 6га SPST которуу киргизүү (MOSI) мультиплексор алмаштыргыч 3 менен бөлүнгөн

    • AVR Programmer башындагы MOSI коргошун зымы 3Ага жылдырылды
    • switch 3B SPST чыгуусуна туташкан
    • чыгаруу 3Y ATtiny84 пин 6га туташкан

      • 3A, MOSI, жүктөө учурунда 6 -пинге туташкан
      • 3B, SPST чыгаруу, жүктөлгөндөн кийин 6 -пинге туташат

Case 1 ийгиликтүү болот, эгерде программаны жүктөө учурунда LED жаркырабаса жана программанын көзөмөлүндө күтүлгөндөй жүктөлгөндөн кийин ар бир эки секундда ирмелет. Жүктөө учурунда LED обочолонбостон жылтылдайт, анткени ал SCK сигналына түз туташкан, ал абалды сааттын кабыл алуу/берүү абалына өзгөртөт.

2 -жагдай, эгер MOSI сигналы жүктөө учурунда ATtiny84ке жөнөтүлсө, башкача айтканда, жүктөө ишке ашпай калса, жана LED жүктөп алгандан кийин SPSTти күйгүзүү/өчүрүү үчүн жооп берет. Case 2 мүмкүн болгон жүктөө катасынын алдын алат. Обочолонбостон, SPST которгучу 1) бекер которгуч колдонулганда жана 2) жүктөө учурунда которгуч күйгүзүлгөн абалда калса, ийгиликсиздикке алып келет. Качан мультиплексор изоляция кылганда, которгуч эч кандай шартта жүктөөдө ката кетире албайт. Бир аз созулган, бирок бизди кары адамдар үчүн сооротот.

Мультиплексорду колдонуунун бир натыйжасы, аппараттык компонентти микроконтроллердин I/O пинине мындан ары түз туташтырууга болбойт. Бул бир аз ыңгайсыз, бирок компонент тестирлөө учурунда башка колдонмо жабдыктары менен кошо нан тактасында калууга мүмкүндүк берет жана тест бүткөндөн кийин кайра өзүнүн тиешелүү жерине жылдырылышы мүмкүн.

3 -кадам: ATtiny84 Case 1 - Application Output

Сүрөт
Сүрөт

Бул кадам жүктөө сигналы менен тиркемени чыгаруу пинин бөлүшүү үчүн орнотууну сүрөттөйт. Колдонулган мисал 4 -пинге (SCK) тиркелген LED. Учурдагы LEDды мисал катары колдонуу мультиплексордун 1 -бөлүгүнүн аппараттык жана программалык чөйрөсүнө кошулушуна басым жасоого мүмкүндүк берет.

  • Аппараттык

    • Мультиплексорду нан тактасына кошуңуз, салыштырмалуу жерде жогорудагы диаграммада көрсөтүлгөн. Мультиплексор 2 -учурда керектүү SPST которгучуна орун берүү үчүн борборго карай жайгашкан.
    • ATTiny84 пин 11ден мультиплексор пин 1ге коргошун зымын кошуп (сары түстү сунуштоо) мультиплексорго RESET сигналын узартуу.
    • Калган аппараттык орнотуу 2 -кадамда көрсөтүлгөндөй

      • мультиплексор пин 2А түз жерге туташтырыңыз
      • 2B пинти ATtiny84 пин 4кө туташтырыңыз
      • 2Y чыгарууну LED анодуна туташтырыңыз

        • Күтүлгөн жыйынтыктар:

          • жүктөө учурунда 2Y жерге (2А) туташат, андыктан LED өчүп калат
          • Жүктөлгөндөн кийин 2Y ATtiny84 pin 4 менен туташат - LEDди башкаруу
  • Программалык камсыздоо

    • 1 -бөлүк коду кайра колдонулат; 1 -бөлүктөн жеткиликтүү, бул жерде кайталанбайт
    • 1 -бөлүктөгү программаны Arduino IDEге жүктөп, түзүңүз
    • Tiny AVR программистин PC USB портуна сайыңыз
    • Adafruit USB сериялык кабелин экинчи USB портуна туташтырыңыз

      • COM порту түзүлөт жана IDE порт тизмесинде автоматтык түрдө жеткиликтүү болот
      • COM терезесин иштетиңиз
    • Тартылган кодду ATtiny84ке жүктөп алыңыз

Колдонмо программанын жыйынтыктары 1 -бөлүккө окшош, анткени бир гана өзгөрүү LEDди "корголгон" жерге жылдыруу болгон: LED 2 секунд аралыгында жаркылдайт; сериялык чыгаруу бирдей. Болушу керек болгон бир айырмачылык, жүктөө учурунда LED мындан ары жылтылдабайт, анткени ал ошол убакта мультиплексор пин 2А аркылуу жерге туташтырылган.

Сүрөт
Сүрөт

4 -кадам: ATtiny84 Case 2 - Колдонмо киргизүүнү изоляциялоо

Сүрөт
Сүрөт

Бул кадам мурунку өндүрүш изоляциясы үчүн орнотууга негизделет. Аппараттык өзгөрүүлөр мультиплексор аркылуу ATtiny84 pin 6 (MOSI) үчүн SPST которуштурууну тиркөөдөн турат. Ошентип, аппараттык өзгөрүүлөр минималдуу, бирок бир нече программалык өзгөрүүлөр бар, алар SPST которгучуна пинди алмаштыруу үзгүлтүгүн колдонуп LEDди башкарууга мүмкүнчүлүк берет. Жаңыртылган код бул бөлүмдүн ылдый жагында камтылган. Кодду Arduino IDEге көчүрүү керек; аны Multiplexer_Input деген ат менен сактоону сунуштаңыз. (Мен бул бөлүмдүн узундугу үчүн кечирим сурайм, бирок бул үйрөтүлө турган нерсенин жүрөгү жана ал жасалма тыныгууларды коюудан көрө монолитте жакшы окулат деп ойлойм.)

Жаңыртуу Жайгашкан жери Максаты
"бузулган" SoftwareSerial классын камтыйт бөлүмдү камтыйт LED азыр пин өзгөртүү үзгүлтүккө аркылуу SPST которуштуруу менен көзөмөлдөнөт. SoftwareSerial классы өзгөртүлүшү керек, антпесе ал БАРДЫК пин өзгөртүү үзгүлтүккө учуратуучу векторлорун бөлүп берет. Бул SPST которгучуна дайындалган (порт 0) векторунун "көп аныктамалуу" шилтеме катасын жаратат. Провайдерлердин бузулган SoftwareSerial версиясы бул колдонмого гана таасир этиши үчүн программа менен бир каталогго жайгаштырылышы керек.
SPST киргизүү пин аныктамасы камтыйт/аныктама бөлүмү түзмөк пинине SPST киргизүүнү дайындоо. Пин түзмөккө таандык, ошондуктан ал #ifdef ATtiny8x бөлүмүнө кошулат.
SPST киргизүү пин режими орнотуу функциясы SPST пин INPUT катары конфигурацияланган
SPST пин үзгүлтүгүн конфигурациялоо орнотуу функциясы Үзүлүү вектору SPST киргизүү пинине бекитилет, андыктан которуунун абалынын өзгөрүшү үзгүлтүккө учуратат. Конфигурация регистрлери жана үзгүлтүк түрү түзмөккө мүнөздүү. Кодду мүмкүн болушунча жөнөкөй кылуу үчүн, айырмачылыктар #if аныкталган бөлүмдүн ичинде каралат
Сериялык билдирүүнү орнотуу аяктады орнотуу функциясы Орнотуунун толук сериялык чыгышы кабар Multiplexer Input тиркемесин чагылдыруу үчүн өзгөртүлдү
IST функциясын SPST которгучка кошуу код бөлүмү SPST пин өзгөртүү үзгүлтүккө үчүн ISR кошулат. Код таралган, бирок колдонулган вектор түзмөккө мүнөздүү жана программанын жогору жагындагы түзмөккө көз каранды бөлүмдөрдө аныкталган. ISR иштетилгенин текшерүү үчүн, LED абалы өзгөрөт. Чыныгы тиркемеде жок-жок болсо да, жаңы LED абалын чагылдырган сериялык чыгаруу билдирүүсү түзүлөт.
Циклди иштетүүнү өзгөртүү цикл функциясы ISR азыр LEDди күйгүзүүнү жана өчүрүүнү көзөмөлдөйт, андыктан функция циклдин тартибинен алынып салынат. ATtiny84 үчүн "кошумча" түрүндө уйку режимине чалуу кошулат. Бул колдонмо үчүн ATtiny85 уйкусу иштебейт; Балким, Software Serial классынын кийлигишүүсүнөн улам, анткени ал SoftwareSerial менен иштейт.
Уйку режимин кошуу код бөлүмү Уйку функциясы мультиплексордун колдонулушун көрсөтүү үчүн керек эмес. Жөн эле киргизилген, анткени, эреже катары, POWER_DOWN режиминдеги кирүүнү күтүү үчүн, тескерисинче, кирүү болмоюнча эч нерсе кылбай, программа циклинде иштөөнү улантуу.

SoftwareSerial класс кодун өзгөртүү

SoftwareSerial классын өзгөртүү керек, андыктан бардык түйүндөрдү алмаштыруу портторуна тоскоол болбойт. SoftwareSerial класс коду жайгашкан

C: / Program Files (x86) Arduino / hardware / arduino / avr / librarys / SoftwareSerial / src

Кодду өзгөртүү үчүн башталуучу жерди табуу үчүн SoftwareSerial.cppтен PCINT0_vect боюнча табыңыз. Төмөнкү кодду бар болгон #if аныкталган (PCINT0_vect) билдирүүсүнүн алдында дароо кошуңуз.

#аныкталган болсо (_ AVR_ATtiny84_)

#define MYPORT PCINT1_vect #elif defined (_ AVR_ATtiny85_) #define MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt (); }

Эми портту үзгүлтүккө учуратуу векторлорун бөлгөн коддун бар блогуна комментарий бериңиз (жөн эле баштоо жана аяктоо блогунун комментарийлерин кошуңуз / * жана * /):

/*

#if аныкталган (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #if аныкталган болсо (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect, ISR_ALIASOF (PCINT0_vect)); } #endif #if аныкталган болсо (PCINT2_vect) ISR (PCINT2_vect, ISR_ALIASOF (PCINT0_vect)); #endif #эгер аныкталган болсо (PCINT3_vect) ISR (PCINT3_vect, ISR_ALIASOF (PCINT0_vect)); #endif */

Аппаратты конфигурациялоо

SPST которгуч ATtiny84 pin 6 (MOSI) 2 -кадамда көрсөтүлгөндөй тиркелет. Процедура ыңгайлуулук үчүн бул жерде кайталанат.

  • 3A которгучту кичинекей AVR Программистинин MOSI башына туташтырыңыз
  • 3B туташтыргычты SPST которуштуруу ON pin
  • 3Y ATtiny84 пин 6га туташтырыңыз

    • ЖЫЙЫНТЫКТАР:

      • 3A, MOSI, жүктөө учурунда ATtiny84 pin 6 аркылуу бекитилет
      • 3B, SPST чыгаруу, жүктөлгөндөн кийин 6 -пинге бекитилет

Программаны иштетүү

Чуркоодон мурун, SPST которгучун өчүк абалына коюңуз. Болбосо, светодиод өчүргүч өчкөндө күйөт жана тескерисинче. Arduino IDE аркылуу тиркемени киргизүү программасын жүктөө, түзүү жана жүктөө үчүн 3 -кадамдын жол -жобосун аткарыңыз. Мурдагыдай эле, жүктөө учурунда светодиод жарк этпеши керек, андыктан программанын иштеп жаткандыгынын бир гана көрсөткүчү орнотуу тартибинин аягында сериялык билдирүү болот: SETUP Complete - Input Example

Бул учурда программа SPST которгучунун киришин күтүп жатат. Күйгүзгүчтү КҮЙГӨН абалга коюу LEDдин күйүшүнө алып келет; кайра өчүрүү абалына которуу LEDди өчүрөт. Чыгуучу билдирүүлөр ISR чакырылганын тастыктайт (ISR: Led HIGH, ISR: LED LOW). Сериялык билдирүүлөрдүн тартибине көңүл буруңуз, УКТАТУУГА ӨТҮҢҮЗ, биринчи кезекте которуштуруу абалынын өзгөрүүсүн күтөт; которгучту алганда ISR чакырылат, LEDди алмаштырат жана өзгөртүүнү документтештирет; анда иштетүү уйку чалуусунан кийин башталат, анткени үзгүлтүк процессорду ойготот.

Сүрөт
Сүрөт

БУЛ КӨРСӨТҮЛБӨГӨН ПРОГРАММА:

//************************************************************************

// 2 -БӨЛҮК: Колдонмо/жүктөөчү түзмөктүн пин бөлүшүүсү //. 1 -бөлүк кодун казыктарды кайра колдонууну колдоо үчүн өзгөртөт // SPI программалоо интерфейсине дайындалган //. ATtiny85 жана ATtiny84 үчүн "Comon" коду // ************************************** ****************************** #incluse "SoftwareSerial.h" // Өзгөртүлгөн Arduino SoftwareSerial классы #include // While иштетүү коду кеңири таралган, пиндер колдонулган түзмөккө #if (_ AVR_ATtiny84_) || аныкталган (_ AVR_ATtiny84A_) #define ledPin 4 // Байланышты күйгүзүү үчүн күйгүзүлгөн/күйгүзүлгөн #аныктоо rxPin 9 // Сериялык кабыл алуу үчүн пин #define txPin 10 // Сериялык берүү үчүн колдонулган пин #define SpstPin 6 // SPST которгучунан киргизүү (MOSI) #аныктоо ISR_VECT PCINT0_vect // SPST которгуч Pin өзгөртүү үзгүлтүк вектору #elif аныкталган (_ AVR_ATtiny85_) #define ledPin 1 #define rxPin 4 #define txPin 3 #define SpstPin 2 // SPST которуусунан киргизүү (INT0) #define Ide_0 // SPST которгуч Pin өзгөртүү үзгүлтүккө учуратуучу вектор #башка #ката ATiny84 жана ATtiny85 бул долбоор тарабынан колдоого алынат #endif // SoftwareSerial mySerial (rxPin) кабыл алуу жана берүү үчүн кайсы түзмөк // пиндер колдонулаарын көрсөтүүчү Программалык Serial классынын мисалын түзүңүз., txPin); // ------------------------------------------------ ------------------------ // Кайра иштетүү ресурстарын баштоо // ------------------- -------------------------------------------------- --- void setup () {mySerial.begin (9600); // Сериялык иштетүүнү кечиктирүүнү баштоо (2000); // Serial Com портуна баштоону аяктоо үчүн убакыт бериңиз. // Болбосо, 1 -чыгышы мүмкүн pinMode (ledPin, OUTPUT) // OUTPUT pinMode (SpstPin, INPUT) үчүн LED пинди конфигурациялоо; // SPST которуштуруу пинин INPUT #конфигурацияланган болсо (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // 6 -пиндин (MOSI) GIMSK боюнча которуштурууну киргизүү үчүн пин өзгөртүү үзгүлтүгүн орнотуңуз | = (1 <

5 -кадам: ATtiny85 Case 1 - Колдонмонун чыгышын изоляциялоо

Сүрөт
Сүрөт

ATtiny85 үчүн кайталанган жабдууларды орнотуунун ордуна, 4 -кадамдан ATtiny84 үчүн даяр конфигурациядан баштоо жана tiny84 чипин tiny85 менен алмаштыруу оңой. Бардык керектүү жабдыктар анда бар. Бул ыкманы колдонуп жатсаңыз, tiny85ти 3 жана 4 -пиндер сериялык кабель tx менен тизилип, зымдарды алгыдай кылып табыңыз. Бул жөн гана SPI интерфейсинин коргошун зымдарын ATtiny85 үчүн керектүү жерлерге дал келүү үчүн көчүрүү.

Эгерде нөлдөн баштап, 3 -кадамдын жалпы кадамдарын жана жогорудагы фризинг диаграммасын аткарыңыз. Код ATtiny84 үчүн 3 -кадамда колдонулган менен бирдей, күтүлгөн жыйынтыктар менен - жүктөө учурунда эч кандай жылтылдоо жок; LED иштеп жатканда 2 секунд аралыкта жаркылдайт жана сериялык чыгаруу билдирүүлөрү LED абалына ылайык келет.

Сүрөт
Сүрөт

6 -кадам: ATtiny85 Case 2 - Колдонмо киргизүүнү изоляциялоо

Сүрөт
Сүрөт

Аппаратты орнотуу үчүн, 5 -кадамдын конфигурациясынан баштаңыз жана жогорудагы диаграммада көрсөтүлгөндөй SPST которуштургучун кошуңуз. Мен чындыгында tiny85 версиясы үчүн бир аз которууну колдондум жана текшерүүнү бир аз жеңилдетет. Көңүл бургула, которуу ATtiny84 конфигурациясынан 180 градуска бурулган. Бул өзгөртүү бардык 3 SPI сигналдары ATtiny85 үчүн бир тарапта болгондуктан, туташуу зымдарын багыттоону жеңилдетет.

Ошол эле программаны ATtiny84 4 -кадам үчүн колдонуңуз. Ошол эле жалпы жыйынтыктар күтүлөт - LED өзгөрөт, SPST которгуч күйгүзүлгөндө/өчкөндө жана сериялык чыгаруу билдирүүлөрү өзгөртүүлөрдү документтештирет. ATTiny85 үчүн уйку функциясы иштетилбегендиктен, УКТОГО КЕТИңиз деген билдирүүлөр жок. Ошол эле программа колдонулганына карабастан, ATtiny85тин бир гана порт реестри бар экенин эске алуу менен ишке ашырууда олуттуу айырмачылыктар бар (Порт 0):

  1. SoftwareSerial азыр портту 0 пин алмаштыруу үзгүлтүгүн сериялык байланыш үчүн бөлөт (Эске салсак, биз ATtiny84 үчүн 1 портун колдоно алдык.)
  2. SPST которуштуруу үзгүлтүгү тышкы үзгүлтүк 0 (INT0) менен ишке ашырылышы керек, анткени бир гана пин алмаштыруу үзгүлтүгү SoftwareSerial тарабынан бөлүнгөн. Бул пин өзгөртүү үзгүлтүктөрү жана тышкы үзгүлтүктөр логикалык жактан көз карандысыз экендигин жана ошол эле порт реестринде колдонулушу мүмкүн экенин көрсөтүп турат.
  3. Өзгөртүлгөн SoftwareSerial версиясын колдонуу менен эч нерсе болбойт - бир гана порт бар жана SoftwareSerial классы аны басып алат. Бирок, өзгөртүлгөн класс дагы деле бул кадамдын максаты менен түздөн -түз байланышпаган өзгөрүүнү болтурбоо үчүн колдонулган.

Сунушталууда: