Гэр Зохиол Attiny2313 програмчлал. Микроконтроллер дээрх хэлхээ ба төхөөрөмжүүд Attiny2313 микроконтроллер дээрх хэлхээнүүд

Attiny2313 програмчлал. Микроконтроллер дээрх хэлхээ ба төхөөрөмжүүд Attiny2313 микроконтроллер дээрх хэлхээнүүд

Микроконтроллерт суурилсан энэхүү төхөөрөмж нь агаарт текст болон энгийн график зурах боломжийг олгодог. Англи хэл дээрх уран зохиолд эдгээр төхөөрөмжийг POV эсвэл FlyText гэж нэрлэдэг. Төхөөрөмжийн ажиллах зарчим нь бидний алсын харааны инерц дээр суурилдаг.

Цахилгаан хэлхээний диаграм нь ATtiny2313 микроконтроллер, 8 LED, хос резистор, хоёр АА батерейгаас бүрдэнэ. Шинэхэн радио сонирхогч хүртэл энэ төхөөрөмжийг угсарч чадна. Төхөөрөмж нь жижиг хэмжээтэй.

Ихэнх ижил төстэй схемүүдээс ялгаатай нь энэ схем нь AVR ATtiny2313 микроконтроллерийн програмыг шинэчлэхгүйгээр com портоор дамжуулан зургийг шинэчлэх боломжтой. Тодорхой текст эсвэл зураг бүрт микроконтроллерийн програм хангамжийг эмхэтгэх шаардлагагүй, харин тусгай програм ашиглан компьютерийн ком портоор дамжуулж болно.

Агаарт зурах зураг эсвэл текст нь микроконтроллерийн EEPROM-ийн тогтворгүй санах ойд хадгалагддаг. Энэхүү тогтворгүй санах ойг анивчсанаар шинэчлэлт хийгдэнэ. Та зүгээр л зураг зурах, төхөөрөмж рүү шилжүүлэх програмыг ажиллуулж, агаарт зурахын тулд төхөөрөмжийг өөрөө холбох хэрэгтэй.

Хэлхээний самбар нь маш энгийн бөгөөд маш жижиг тул АА зайны самбарт шууд холбогддог.


Текст, графикийг засварлах, төхөөрөмж рүү шилжүүлэхэд энэ программ харагдах болно.

Програмтай ажиллах нь маш энгийн. Зургийг засахын тулд пикселийн матриц дээр товшоод, төхөөрөмжийг холбож, EEPROM санах ойг дахин асаана уу. Уг хэлхээг USB-to-UART адаптераар эсвэл FT232R эсвэл MAX232 интерфэйс хувиргагч чип дээр тулгуурлан компьютерт холбож болно.

Дараа нь хүссэн ком портын дугаараа сонгоод "Байршуулах" товчийг дарна уу.

Холболтын хөлний байрлалыг доор харуулав.

AVR ATtiny2313 микроконтроллерийн программыг AVR Studio болон WinAVR ашиглан бичсэн. Компьютерийн программ нь Microsoft Visual C# 2010 Express дээр бичигдсэн. Хэвлэмэл хэлхээний самбарыг Eagle Cadsoft дээр зурсан бөгөөд доорх архиваас хэрэгтэй бүх зүйлийг татаж аваарай.

Товчлуурыг AVR микроконтроллерт холбох энгийн туршилтыг тайлбарлаж, товчлуурыг дарахад зориулсан энгийн C програмыг шинжилэв. Товчлуурыг MK портуудтай холбох онцлог, мөн Си хэл дээрх товчлуурын төлөвийг унших аргуудыг авч үзье.

Өмнөх нийтлэлүүд нь Гаралтад тохируулсан микроконтроллерийн портуудад холбогдсон LED-ийн туршилтуудыг авч үзсэн.

Энэ нийтлэлд бид товчлуурыг микроконтроллерт холбох болно, дарагдсан үед контактууд нь хаагдаж, суллагдсан үед нээгддэг (хаалттай товчлуур).

Туршилтын бүдүүвч диаграм

Товчлуур ашиглан ядаж ямар нэг зүйлийг ажиглаж, хянах боломжтой байхын тулд микроконтроллерт дахин хоёр LED холбоно. Диаграм нь маш энгийн, энд байна:

Цагаан будаа. 1. ATtiny2313 микроконтроллер болон товчлуур бүхий туршилтын бүдүүвч диаграм.

Таны харж байгаагаар хоёр LED нь хязгаарлах резисторуудаар дамжуулан PB0 ба PB1 хоёр порттой холбогдсон ба PD2 порт руу товчлуур холбогдсон бөгөөд энэ нь хязгаарлах резистортой байдаг. Программистыг MK-д холбохын тулд Conn 1 (AVR-ISP) холбогчийг ашигладаг бөгөөд хэлхээг тусдаа +5V тэжээлийн эх үүсвэрт холбохын тулд P1 ба P2 гэсэн хоёр контактыг ашигладаг.

Цагаан будаа. 2. Микроконтроллер болон гагнуургүй талхны хавтан дээр угсарсан товчлуур бүхий туршилтын диаграмм.

Товчлууртай портыг аюулгүй ашиглахын тулд 1 KOhm эсэргүүцэлтэй резисторыг цувралаар холбодог (та үүнийг 600 Ом - 2 KOhms-ийн өөр эсэргүүцэлтэй холбож болно) гэдгийг анхаарах нь чухал юм. Үүнийг тээглүүртэй ажиллахдаа ёс зүйн дүрэм гэж хүлээн зөвшөөр, энэ нь зүүг өндөр түвшний алдаатай нийлүүлэх, товчлуурыг хаасан тохиолдолд MK портыг эвдрэлээс хамгаалах болно.

AVR микроконтроллеруудын оролт гаралтын портуудын бүтэц

Микроконтроллерийн зүү нь бүх нийтийн GPIO (Ерөнхий зориулалтын оролтын гаралт) бөгөөд та идэвхжүүлэгч (заагч, цахилгаан унтраалга) болон төрөл бүрийн дижитал мэдрэгч (товчлуур, унтраалга) хоёуланг нь холбож болно.

MK-ийн хэд хэдэн зүүг ADC/DAC (Аналог-тоон-хувиргагч ба эсрэгээр) холбож болох бөгөөд тэдгээрийн тусламжтайгаар та аналог дохиог задлан шинжилж, үүсгэж болно. Уламжлалт GPIO нь аналог дохиотой ажиллах боломжгүй, оролт/гаралтад зөвхөн 0 (0V) эсвэл 1 (+5V) байж болно.

Микроконтроллер доторх GPIO зүү бүр нь хэд хэдэн блок, электрон бүрэлдэхүүн хэсгүүдтэй холбогдсон байдаг бөгөөд эдгээрийг мэдэхэд хэрэгтэй:

  • Портын зүү болон цахилгаан дамжуулагч тус бүрийн хооронд (GND ба VCC) диодоор холбогдсон. Тэдгээрийг богино хугацааны хөндлөнгийн оролцоо, тээглүүр болон цахилгааны төмөр зам тус бүртэй харьцуулахад хүчдэлийн өсөлтийг "нойтон болгох" зорилгоор ашигладаг;
  • Мөн зүү болон GND хооронд конденсатор байдаг. Энэ нь яагаад хэрэгтэй байгааг мэдэхгүй байна, магадгүй хөндлөнгийн нөлөөллөөс хамгаалах, тээглүүртэй холбогдсон товчлуур, унтраалга ашиглах үед контакт үүсэхээс урьдчилан сэргийлэх, эсвэл өөр ямар нэг зүйл хийх;
  • Зүү болгонд холбогдсон резистор бүхий электрон түлхүүр нь тэжээлийн эх үүсвэрийн хүчдэлд зүүг татах (Pull-UP) юм.. Энэхүү цахим түлхүүр нь програм хангамжаар асаалттай бөгөөд оролтын горимд (Оролт) зүүтэй ажиллах үед анхдагч өндөр логик түвшний 1 (+ 5V) тохируулахад үйлчилдэг;
  • Зүү болон тэжээлийн автобусны хооронд (GND ба VCC) өөр хоёр электрон унтраалга (резисторгүй) байгаа бөгөөд тэдгээр нь зүүг өндөр (+5V) эсвэл бага (0V) логик түвшинд тохируулах шаардлагатай; Гаралтын горимд ажиллах.

Програм хангамжийн хяналт, порт тус бүрийн тохиргоонд гурван тусгай бүртгэлийг ашигладаг, жишээлбэл "B" портын хувьд:

  • DDRB - оролт эсвэл гаралтын тээглүүрүүдийн ажиллах горимыг тохируулах бүртгэл (8 бит). Энэ нь бүртгэлд харгалзах битүүдийг тохируулах замаар хийгддэг;
  • PORTB нь гаралтын горим дахь портын тээглүүрүүдийн төлөвийг хянах бүртгэл юм - өндөр эсвэл бага түвшин. Мөн оролтын горимд ашиглагддаг, татах резисторыг идэвхжүүлж, анхдагч оролтын түвшинг өндөр болгоход ашигладаг;
  • PINB нь оролтын горимд тохируулагдсан портуудын утгыг уншихад ашигладаг порт дээрх зүүнүүдийн логик төлөвийг агуулсан бүртгэл юм.

Та тодорхой микроконтроллерын загварт зориулсан портуудын дизайны талаар түүний мэдээллийн хуудаснаас илүү ихийг мэдэж болно, "I/O-Ports" хэсэгт портуудтай ажиллахад зориулсан кодын жишээнүүд байж болно.

PIN-ийг I/O порт болгон RESET

Микроконтроллерийн программын гүйцэтгэлийг дахин тохируулах (дахин ачаалах) зориулалттай микро схемийн "RESET" зүү (манай диаграммд энэ нь 1-р зүү) товчлуур, LED болон товчлууруудыг холбоход ашиглагдаж болохыг мэдэх нь зүйтэй юм. бусад оролт/гаралтын төхөөрөмжүүд, өөрөөр хэлбэл ердийн GPIO болгон хувиргах боломжтой.

Хэрэв микро схемд таны дизайн хийхэд хангалттай зүү байхгүй бол энэ нь ашигтай байж болно. Жишээлбэл, ATtiny13 чип дээр зарим төхөөрөмжийг угсрахдаа (8 зүү, тэжээлийн хувьд 2 ширхэг, оролт гаралтын портод 5 ширхэг, RESET хийх зориулалттай 1 ширхэг) LED-д нэг зүү дутуу байгааг олж мэдсэн. Асуудлыг шийдэх хэд хэдэн сонголт байж болно:

  1. I/O портын RESET зүүг дахин програмчлах;
  2. LED-ийг зэргэлдээх аль хэдийн ашигласан тээглүүрүүдийн аль нэгэнд холбож, хэлхээний загварт зарим гистростуудыг ашиглаж, ерөнхий хэрэглээний боломжийг харгалзан үзэх;
  3. Илүү олон зүү бүхий өөр MK ашиглах, жишээ нь ATtiny2313.

Санхүү/цаг хугацааны хувьд эдгээр сонголтуудын аль нь илүү хялбар бөгөөд хямд вэ - өөрийн хэрэг дээр үндэслэн шүү.

"RESET" зүүг оролт гаралтын порт болгон хувиргахын тулд та тусгай гал хамгаалагчийг солих шаардлагатай болно - RSTDISBL (Reset Disable). Гэхдээ үүнийг хийхээсээ өмнө энэ үйлдлийн дараа микроконтроллерыг зөвхөн өндөр хүчдэлийн программист (12V ердийн USB ISP эсвэл 5V-ээр ажилладаг өөр программист) ашиглан дахин програмчлах боломжтой гэдгийг санах хэрэгтэй ажил.

C програм

Тэгэхээр бид микроконтроллерт холбогдсон нэг товчлуур, хоёр LED-тэй, тэдэнтэй юу хийх вэ? - тэгээд бид үүнийг хийх болно (алгоритм):

  1. Цахилгааныг асаасны дараа LED нь ээлжлэн анивчдаг бөгөөд 300 миллисекунд хоцрох болно;
  2. Та товчлуурыг удаан дарахад зөвхөн цэнхэр LED гэрэл асна;
  3. Товчлуурыг сулласны дараа цэнхэр LED нь 500 миллисекундын хоцролттой 3 удаа анивчдаг бөгөөд үүний дараа LED нь 300 миллисекундын сааталтайгаар дахин анивчдаг.

Ийм алгоритмыг AVR дор C хэл дээр хэрэгжүүлэх жишээг доор өгөв. Програмдаа шинэ файл үүсгэж, засварлахаар нээцгээе.

Nano /tmp/avr-switch-test.c

Дараах кодыг файлын үндсэн хэсэгт оруулъя.

/* ATtiny2313 дээр товчлуур ашиглан туршилт хийх * https://site */ #F_CPU 1000000UL-г тодорхойлох // Үндсэн давтамж = 1 МГц #include #оруулна // -- LED-г удирдах макрос -- #LED_BLUE_ON PORTB-г тодорхойлох |= (1<< PB0) // Засвечиваем синий диод #define LED_BLUE_OFF PORTB &= ~(1 << PB0) // Гасим синий диод #define LED_RED_ON PORTB |= (1 << PB1) // Засвечиваем красный диод #define LED_RED_OFF PORTB &= ~(1 << PB1) // Гасим красный диод // Основная программа void main(void) { DDRD |= (0 << PD2); // Пин 6 - на вход PORTD |= (1 << PD2); // Включаем подтягивающий (Pull-UP) резистор для пина 6 DDRB |= (1 << PB0); // Пин 12 - на вывод DDRB |= (1 << PB1); // пин 13 - на вывод // -- Бесконечный цикл -- while(1) { _delay_ms(300); // Задержка 300 мс LED_BLUE_ON; // Включаем синий диод LED_RED_OFF; // Гасим красный диод _delay_ms(300); LED_RED_ON; // Включаем красный диод LED_BLUE_OFF; // Гасим синий диод if(!(PIND & (1 << PD2))) { // Проверяем нажата ли кнопка _delay_ms(50); // Задержка 50 мс (дребезг контактов) LED_RED_OFF; LED_BLUE_ON; while(!(PIND & (1 << PD2))); // Ждем пока кнопка не будет отпущена _delay_ms(500); // Дальше мигаем синим диодом LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(200); } // Конец блока работы с кнопкой } // Конец блока с вечным циклом }

Юуны өмнө бид асууж байна тогтмол F_CPU, энэ нь хөрвүүлэгчид микроконтроллерийн цөмийн ажиллах давтамжийг зааж өгөх бөгөөд энэ нь зарим дэд програмууд болон функцуудыг зөв ажиллуулахад шаардлагатай байдаг. Бидний жишээн дээр бид "util/delay.h" номын сангаас "_delay_ms" гэсэн хугацааны саатлын функцийг ашигладаг бөгөөд энэ нь F_CPU тогтмол дахь утга дээр үндэслэн сул зогсолтод зарцуулсан хугацааг тооцоолдог.

Та ямар ч текст засварлагч ашиглан GNU Linux-д F_CPU тогтмолыг ашигладаг цаг хугацааны хоцролтыг зохион байгуулах "саатал" номын сангийн кодыг харж болно, жишээлбэл, та дараах тушаалыг ажиллуулж болно.

Nano /usr/lib/avr/include/util/delay.h

ATtiny2313 микроконтроллерийн дотоод RC осцилляторын үйлдвэрийн тогтоосон давтамж нь 8000000Гц (8МГц), давтамж хуваах гал хамгаалагчийг мөн анхдагчаар тохируулсан байдаг - CKDIV8 (Цаг 8-д хуваах), тиймээс болорын бодит ажиллах давтамж = 8000000Гц / 8 = 1000000Гц = 1МГц.

Та avrdude эсвэл AVR8 Burn-O-Mat нэртэй график бүрхүүл ашиглан микроконтроллерт ямар гал хамгаалагч суурилуулсан болохыг харж болно.

Цаашид хөтөлбөрт LED-үүд холбогдсон портуудын төлөвийг хянахын тулд макронууд тодорхойлогддог: LED_BLUE_ON, LED_BLUE_OFF, LED_RED_ON, LED_RED_OFF. Хөтөлбөрийн аль ч хэсэгт ижил төстэй макро дуудснаар бид LED тус бүрийг кодыг нь давтахгүйгээр маш амархан асаах эсвэл унтраах боломжтой бөгөөд энэ нь эргээд програмыг хялбарчилж, илүү харагдахуйц болгоно.

"void main(void)" үндсэн програмд ​​бид портын тохиргооноос эхэлдэг:

  • DDRD |= (0<< PD2) - установка разряда PD2 регистра DDRD на ввод, к нему подключена кнопка (пин 6);
  • PORTD |= (1<< PD2) - включение подтягивающего резистора для пина к которому привязан разряд PD2 регистра PORTD (пин 6);
  • DDRB |= (1<< PB0) - установка разряда PB0 в регистре DDRB на вывод, к нему подключен СИНИЙ светодиод (пин 12);
  • DDRB |= (1<< PB1) - установка разряда PB1 в регистре DDRB на вывод, к нему подключен КРАСНЫЙ светодиод (пин 13).

Дараа нь макро ашиглан бид улаан LED-ийг унтрааж, цэнхэрийг асаана. Одоо өөр мөнхийн гогцоо ашиглан, гэхдээ нэг болзолтойгоор бид товчлуур гарах хүртэл хүлээх болно: "while(!(PIND & (1)<< PD2)));".

Товчлуурыг суллахад 6-р зүү дээр өндөр түвшин гарч ирэх болно (үүнийг бидний өмнө нь асаасан дотоод татах резистор хийх болно), PIND регистрийн PD2 битэд логик 1-ийг тохируулах болно.

Үүний дараа цэнхэр LED нь 0.5 секундын сааталтайгаар гурван удаа (асаах-унтраах) анивчдаг бөгөөд үндсэн мөнхийн мөчлөг шинэ аргаар ажиллаж эхэлдэг - хоёр LED ээлжлэн асна.

Маш энгийн програм, гэхдээ энэ нь сайн жишээ, цаашдын туршилтуудын үндэслэл юм.

ATtiny2313-д Geany-г тохируулж байна

Өмнөх нийтлэлүүдэд би ATMega8 микроконтроллер дээр туршилт хийсэн боловч энд би бага "чихмэл" MK - ATTiny2313 ашигладаг.

Програмыг эмхэтгэж, MK-д оруулахын тулд та Geany нэгдсэн програмчлалын орчинд угсрах командуудыг бага зэрэг дахин тохируулах хэрэгтэй.

Build цэс рүү очно уу - Build Commands тохируулна уу. Эмхэтгэлийн команд (C командууд) дээр та ашигласан чипийн загварыг өөрчлөх хэрэгтэй: "-mmcu=attiny2313". MK-г анивчуулах тушаалд та avrdude-ийн чипийн төрлийг өөрчлөх хэрэгтэй: "-p t2313".

Цагаан будаа. 3. Geany-г ATTiny2313 микроконтроллертэй ажиллахын тулд дахин тохируулж байна.

Бүх тушаалууд нь GNU Linux үйлдлийн системд зориулагдсан; хэрэв танд Windows байгаа бол "avr-gcc.exe", "avr-objcopy.exe", "avrdude.exe" гэсэн хоёртын файлуудын бүрэн замыг оруулах шаардлагатай болно.

Би цувралын өмнөх нийтлэлүүдийн аль нэгэнд GNU Linux-д Geany-г хэрхэн тохируулах талаар илүү дэлгэрэнгүй авч үзсэн.

MK дахь програмын эмхэтгэл, програм хангамж

Хөтөлбөрийг эмхэтгэх, угсрах, анивчуулах ажлыг Geany орчинд "Эмхэтгэх", "Бүтээх", "Ажиллуулах" гэсэн гурван товчлуурыг ээлжлэн дарж хийж болно. Мөн эдгээр бүх үйлдлүүдийг консолоос хийж болно, энд эдгээр үйлдлийн командууд байна (дараалсан байдлаар гүйцэтгэнэ):

Avr-gcc -mmcu=attiny2313 -Os /tmp/avr-switch-test.c -o /tmp/avr-switch-test.o avr-objcopy -j .text -j .data -O ihex /tmp/avr- switch-test.o /tmp/avr-switch-test.hex avrdude -c usbasp -p t2313 -P usb -U flash:w:/tmp/avr-switch-test.hex

Бүх тушаалууд нь Geany тохиргоон дээр бидний зассан тушаалуудтай бараг ижил байна (файлын нэрийг орлуулахаас бусад).

Дүгнэлт

Туршилтын энгийн байдлыг үл харгалзан би портуудтай ажиллах техникийн маш чухал талуудыг тодруулахыг хичээсэн бөгөөд олж авсан мэдлэг, туршлага нь ATMEL микроконтроллеруудтай ажиллахад хэрэгтэй болно.

Энэ нийтлэлд AVR ATtiny2313 микроконтроллер, микроконтроллерт 1 утастай протоколоор холбогдсон DS1820 (эсвэл DS18b20) температур мэдрэгч, HD44780 хянагч дээрх 16х2 LCD дэлгэц дээр суурилсан дижитал термометрийн хэлхээг санал болгож байна. Тайлбарласан төхөөрөмж нь радио сонирхогчдын дунд өргөн хэрэглээг олж чадна.

Микроконтроллерийн программыг AVR Studio орчинд ассемблер хэлээр бичдэг. Суурилуулалтыг талхны самбар, 4 МГц давтамжтай кварцын резонатор дээр гүйцэтгэдэг бөгөөд ATtiny2313 микроконтроллерийг өмнө нь програмын эх кодыг дахин хөрвүүлсэн AT90S2313-аар сольж болно. DS1820 мэдрэгчийн алдаа нь ойролцоогоор 0.5 С байна. Архив нь DS18B20 мэдрэгчийг ашигласан тохиолдолд програм хангамжийг агуулдаг. Мэдрэгчийг секунд тутамд санал асуулга авдаг.

WAV тоглуулагч нь AVR ATtiny85 микроконтроллер дээр суурилагдсан (ATtiny25/45/85 цувралыг ашиглаж болно). Энэ цувралын микроконтроллерууд нь зөвхөн найман хөлтэй, 250 кГц дамжуулагчтай хоёр PWM (Fast PWM) юм. Санах ойн картыг удирдахын тулд ердөө 6 утас хангалттай: хоёр нь цахилгаан, дөрвөн дохио. Микроконтроллерийн найман зүү нь санах ойн карт, дууны гаралт, хяналтын товчлууруудтай ажиллахад хангалттай. Ямар ч тохиолдолд энэ тоглогч маш энгийн.

Энэхүү багтаамжийн тоолуурын тусламжтайгаар та pF-ийн нэгжээс хэдэн зуун микрофарад хүртэлх ямар ч багтаамжийг хялбархан хэмжих боломжтой. Багтаамжийг хэмжих хэд хэдэн арга байдаг. Энэ төсөл нь интеграцийн аргыг ашигладаг.

Энэ аргыг ашиглах гол давуу тал нь хэмжилт нь цаг хугацааны хэмжилт дээр суурилдаг бөгөөд үүнийг MC дээр нэлээд нарийвчлалтай хийх боломжтой юм. Энэ арга нь гар хийцийн багтаамжийн тоолуурт маш тохиромжтой бөгөөд үүнийг микроконтроллер дээр хялбархан хэрэгжүүлэх боломжтой.

Энэ төслийг нэг найзынхаа хүсэлтээр агуулахын хаалган дээр суурилуулахаар хийсэн. Дараа нь найз нөхөд, танилуудын хүсэлтээр хэд хэдэн зүйлийг хийсэн. Загвар нь энгийн бөгөөд найдвартай болсон. Энэ төхөөрөмж дараах байдлаар ажилладаг: энэ нь зөвхөн өмнө нь төхөөрөмжийн санах ойд хадгалагдаж байсан RFID картуудыг дамжуулдаг.

Энгийн хэлхээг хэрхэн угсрах, програмистыг ATtiny2313 микроконтроллерт хэрхэн холбох, C хэл дээр энгийн програм бичих, ATtiny2313 микроконтроллерийг манай програмаар хэрхэн гэрэлтүүлэх талаар та энэ нийтлэлээс олж мэдэх болно.

Юуны өмнө бидэнд програмист хэрэгтэй байна, олон төрлийн програмист байдаг, ямар програмистыг сонгох вэ?
Энгийн программистууд байдаг бөгөөд үүнд та микроконтроллер оруулж, гялсхийлгэж, микроконтроллерыг салгаж аваад дараа нь үр дүнг харахын тулд манай самбарт оруулах хэрэгтэй бөгөөд энэ дарааллыг эхлээд хэдэн зуун удаа хийх шаардлагатай болно. Энэ нь тийм ч тохиромжтой биш юм.
Манай микроконтроллер ATtiny2313 SPI портоор дамжуулан ISP (Систем доторх програмчлалын) функцийг дэмждэг бөгөөд энэ нь хэлхээний програмчлалын хэрэглээний тохиолдол юм. ISPМиний бодлоор хамгийн тохиромжтой, хурдан, учир нь... Програм хангамжийн шинэчлэлт бүрийн дараа микроконтроллерыг самбараас салгах шаардлагагүй, та микроконтроллерыг компьютер болон самбараас салгахгүйгээр шууд програмчлах боломжтой бөгөөд микроконтроллерыг анивчсаны дараа үр дүнг нь харах боломжтой сонирхогчийн радио төхөөрөмжийн програм хангамж нь мэдэгдэхүйц хялбаршуулж, үүнд зарцуулсан цаг хугацаа багассан.
Та өөрөө хэлхээний ISP программист хийж болно LPT эсвэл COM портоор дамжуулан үүнийг хэрхэн хийх талаар Интернет дээр олон энгийн схемүүд байдаг, жишээ нь програмист; PonyProgҮүнийг хэрхэн хийх талаар та интернетээс диаграммуудыг олж болно.

Энэ нийтлэлд микроконтроллеруудад зориулсан хэлхээний ISP програмисттай ажиллах талаар ярилцах болно AVR (PX-400)Энэ нь COM портоор ажилладаг.
Хэрэв таны компьютер дээр COM порт байхгүй бол танд USB портоос COM порт руу адаптер хэрэгтэй болно, ийм адаптеруудын олон төрөл байдаг, би миний ажиллаж байсан адаптерийг санал болгож байна. UCON-232S USB-оос сериал порт хөрвүүлэгч самбар
Програмистын зураг PX-400, адаптер UCON-232S USB , ATTiny2313 мэдээллийн хуудас

Энэ схемийн бүх нарийн ширийн зүйлийг нарийвчлан авч үзье.
(Ямар ч тохиолдолд би chipdip.ru сайтаас бүх эд анги, программист, адаптер (USB-аас COM порт хүртэл) худалдаж авсан)

1 - PBD-20 хавтангийн залгуур 2.54мм 2х10 шулуун- Би үүнийг хялбар болгох үүднээс микроконтроллерийн тээглүүрүүдийн дохиог шалгахад хялбар болгохын тулд хийсэн;
2 - SCS-20 DIP хавтан 20 зүү- Бид самбарыг самбарт гагнах бөгөөд ингэснээр шаардлагатай бол самбар дахь микроконтроллерийг солих боломжтой;
ATtiny2313-20PU, DIP20, MCU, 5V, 1K-Flash, 12MHz- Бид микроконтроллерийг DIP самбарт оруулна.
3 - Кварцын болор 4.000 МГц (тасалсан) HC-49S- Кварцын болор 4 МГц
4 - Керамик конденсатор K10-17B imp. 22pF NPO,5%,0805- Хоёр 22pF керамик конденсатор
5 - 78M05 (+5V, 0.5A) TO220- 5V хүчдэлийн тогтворжуулагч нь микроконтроллерийг +5V-ээс ихгүй тогтворжуулсан хүчээр хангадаг, энэ тохиолдолд би 4.4V авсан, энэ нь хангалттай.
6 - NP-116 цахилгаан залгуур 1.3x3.4x9.5mm MP-331 (7-0026c)- Цахилгааны залгуурыг хуучин гар утасны DC 5.7V/800mA цэнэглэгчээр гагнасан
7 - Усан онгоцон дээрх DS-213 цахилгаан залгуур- цахилгаан холболтыг хялбар болгохын тулд NP-116 залгуурын тэжээлийн эх үүсвэр хаана байна
8 - IDC-10MS (BH-10), шулуун залгуур- Хэлхээний ISP программистыг холбох залгуур
9 - Тогтмол эсэргүүцэл 0.25W 150 Ом- MISO, SCK, MOSI зүү дээрх гурван 150 Ом резистор
10 - Тогтмол эсэргүүцэл 0.25W 47 Ом- RESET зүү бүрт нэг 47 Ом эсэргүүцэл
11 - Такт товчлуур h=5мм, TC-0103 (TS-A2PS-130)- RESET товчийг дарсны дараа микроконтроллер дахь програм эхнээсээ эхлэх тул товчлуурыг орхигдуулж магадгүй юм.
12 - Ногоон LED d=3мм, 2.5V, 2mA - Заагч функцийг гүйцэтгэдэг, энэ зүйлийг хийж чадсангүй.
13 - Тогтмол эсэргүүцэл 0.25W 110 Ом- LED-д зориулсан резистор нь LED дээр 2V байх тул энэ алхамыг орхигдуулж болно
14 - Микроконтроллерийн зүү дээрх дохиог шалгахын тулд LED-д холбогдсон хоёр утас энэ алхамыг хийх боломжгүй байна.
15 - Dip-RM хэвлэсэн 100х100 мм талхны хавтан

3 ба 4-р цэгүүд Гадаад цагийн генераторын нэгэн адил нэг нэгжээр ажиллана, хэрэв та дотоод RC осцилляторын нарийвчлал, тогтвортой байдалд өндөр шаардлага тавихгүй бол эдгээр цэгүүдийг орхигдуулж болно, дотоод RC осциллятор нь ойролцоогоор 10% алдаатай байна температурын өөрчлөлтийн нарийвчлалд нөлөөлж болно.

Тиймээс та татаж аваад суулгасан байна Atmel Studio:
Эхлүүлье Atmel Studio LED-ийг анивчуулан C хэлээр хамгийн энгийн программыг бичнэ үү.
Дарна уу: Шинэ төсөл... \ AVR GCC \ C \ C Гүйцэтгэх боломжтой төсөл
Төслийг хадгалах хавтас болон төслийн нэрийг, жишээ нь Test1-г зааж өгөөд OK дарна уу.
Жагсаалтаас манай ATtiny2313 микроконтроллерыг сонгоод OK дарна уу.
Бид цонхонд гарч ирэх бүх зүйлийг устгаж, доорх програмын кодыг оруулна.

#F_CPU 4000000L-г тодорхойлох //Манай гадаад кварцын давтамжийг 4 МГц зааж өгнө үү
#оруулна
#оруулна
int үндсэн(хүчингүй)
{
//Бүх PORTB зүүг гаралт болгон тохируулна уу
DDRB=0xFF;//Мэдээлэл дамжуулах чиглэлийн бүртгэл (1-гаралт, 0-оролт)
байхад(1)
{
//Өгөгдлийн бүртгэл PORTB (мэдээлэл гаргахад ашигладаг)
PORTB=0b00000001;//Бид MK PB0-ийн 12-р порт руу 1-ийг нийлүүлдэг - LED-ийг асаана
PORTB=0b00000000;//MK PB0-ийн 12-р порт руу 0-г хэрэглэнэ - LED-ийг унтраа.
_delay_ms(1000);//Саатал 1 сек.
}
}

Цэс рүү очно уу Build\Тохиргооны менежер\Идэвхтэй шийдлийн тохиргоо\
Сонго Суллах, дарна уу Хаах
Төсөлд хавтастай болохын тулд бид үүнийг хийсэн Суллах, би доор ярих болно.

дарна уу F7, бэлэн байна, манай програм эмхэтгэсэн!
ATtiny2313 микроконтроллерийн програмыг гэрэлтүүлэхийн тулд бидэнд өргөтгөлтэй зөвхөн нэг файл хэрэгтэй HEX
Энэ нь манай төслийн хавтсанд байрладаг: ...
Файлыг анхаарна уу Туршилт1.hexзүгээр л хавтаснаас ав Суллах !
Бүү андуур, учир нь... хавтас Дибаг хийхбас файл байна Туршилт1.hex, гэхдээ энэ файл нь дибаг хийх мэдээллийг агуулсан хэвээр байгаа бөгөөд үүнээс болж та энэ файлтай флэш хийх боломжгүй тул. Энэ нь ихэвчлэн том хэмжээтэй бөгөөд MK-ийн санах ойд багтахгүй.

Бид .hex файлыг олсон, одоо бидэнд ATtiny2313 микроконтроллерыг гэрэлтүүлэх програм хэрэгтэй байна, ийм олон програмууд байдаг, гэхдээ бид програмыг ашиглах болно. Авр-Осп II
Татаж авах:

Бид программистыг хэлхээнд холбож, хэлхээнд тэжээл өгөхөө мартуузай!

Програмыг ажиллуулна уу Авр-Осп II, FLASH хэсэгт файлын замыг зааж өгнө үү... \Test1\Test1\Release\Test1.hex, програмын нүдийг сонгоод товчлуурыг дарна уу ПрограмЭнэ бол микроконтроллер ATtiny2313 анивчсан байна!

Хэлхээний ISP программистуудын давуу тал нь юу вэ?

Манай форум дээр асуулт, сэтгэгдлээ үлдээнэ үү

Энэ нийтлэлийн төхөөрөмж нь SD карттай ажилладаг. Энэ сэдэв нь хуучин бөгөөд нэлээд хачирхалтай боловч SD карт ашиглах нь энэ талаар дахин бичих нь зүйтэй юм.
Ерөнхийдөө SD картууд (SDC, SD Card) нь олон давуу талтай бөгөөд маш энгийн бөгөөд жижиг суулгагдсан төслүүдэд ашиглахад тохиромжтой. Үүнд хэд хэдэн хүчин зүйл нөлөөлдөг:
- карттай харилцах маш энгийн интерфейс (SPI-ээр хэрэгжсэн);
- үйл ажиллагааны өндөр хурд (микроконтроллер нь SD картаас өгөгдлийг 10 Мбит / с хурдтай дамжуулах чадвартай);
- бага эрчим хүчний хэрэглээ (шууд утгаараа хэдэн миллиампер - илүү биш);
- жижиг хэмжээтэй;
- хүртээмж, хямд өртөг.
SD картууд нь бараг ямар ч сул талгүй байдаг (магадгүй эхлүүлэх процедурыг эс тооцвол :)).

1. Танилцуулга.

Би энэ нийтлэлд дурдсан төхөөрөмжийг SD картын ярианы төхөөрөмж гэж нэрлэв. Бага зэрэг дүр эсгэсэн ;), гэхдээ энэ нэр нь ярих төхөөрөмж гэдгийг тодорхой харуулж байна. Энэ нь таны төслүүдийг дуу хоолойгоо хүргэх зорилготой юм. Товчхондоо, энэ нь дараах байдлаар ажилладаг: дугаарлагдсан дууны файлууд нь таны тушаалаар төхөөрөмж тоглодог SD карт дээр бичигдсэн байдаг. Хэрэглээний хамрах хүрээ нэлээд өргөн - анхааруулах систем, тоглоом, робот, ухаалаг гэр гэх мэт. Төхөөрөмжийн хэмжээсүүд нь нэлээд даруухан (энэ нь жижиг байж болох ч би зориудаар ATtiny2313 микроконтроллерыг сонгосон бөгөөд энэ нь хямд бөгөөд авахад хялбар). Би энгийн, дээд зэргийн функциональ байдалд гол анхаарлаа хандуулахыг хичээсэн.
Урагшаа хараад эцэст нь юу болохыг харцгаая:

Ийм төхөөрөмж ашигтай юу? Дараа нь цуглуулцгаая!

2 Санах ойн карт.

Төхөөрөмж нь SD санах ойн карт ашигладаг. Би энэ сонголтын шалтгааны талаар аль хэдийн бичсэн боловч SD картууд нь хөдөлгөөнт төхөөрөмжүүдийн санах ойн картуудын бараг стандарт болж байгааг нэмж хэлэх болно. Өөрийн төрлийн санах ойн картыг сурталчилж/сурталчилж байгаа үйлдвэрлэгчид хүртэл SD картыг аажмаар ашиглаж эхэлж байна. Ийм алдартай болсон шалтгаан нь эдгээр картуудын хямд үнэ байсан байх. Сонирхогчдын төхөөрөмжүүдийн хувьд SD карт нь үнэндээ ашиглахад тохиромжтой цорын ганц карт бөгөөд үүний шалтгаан нь түүнтэй ажиллах энгийн интерфейс юм.

SD карт нь хувьслын урт замыг туулсан бөгөөд түүнийг хэрэгжүүлэх хэд хэдэн сонголттой (MMC - SD картын сонголт, SD ver1, SD ver2, SDHC, SDXC). Карттай харилцах журам нь бүх төрлийн картуудын хувьд энгийн бөгөөд түгээмэл боловч түүнийг ашиглалтад оруулах (картыг эхлүүлэх) нь картыг "цохих" зан үйл, хоосон "дамми" командуудыг илгээх замаар нэлээд ойлгомжгүй, ойлгомжгүй үйл явц юм. болон бусад ойлгомжгүй зүйлс (товчхондоо хэнгэрэгтэй бүжиглэх шаардлагатай :)). SDC протоколын тодорхойлолт нь өөрөө эхлүүлэх үйл явцыг нэлээд дэлгэрэнгүй тайлбарласан бөгөөд энэ нь ойлгомжтой бөгөөд тус бүр өөрийн гэсэн техник хангамжтай, өөрийн гэсэн шинж чанартай байдаг. - Би эхлүүлэх процедурыг аль болох түгээмэл болгохыг хичээсэн, гэхдээ зарим картууд ажиллахгүй болно гэдэгт бэлэн байгаарай. Тиймээс, хэрэв таны төхөөрөмжид ямар нэг зүйл тохирохгүй байвал өөр санах ойн картыг туршиж үзээрэй - энэ нь шалтгаан байж магадгүй юм.

Энэ төхөөрөмж нь 2 ГБ хүртэлх хэмжээтэй SD картуудыг дэмждэг. Дээд талын бүх зүйлийг (SDHC болон SDXC) дэмждэггүй.
Төхөөрөмжийн хувьд карт нь ямар хэлбэрийн хүчин зүйл (SD, MiniSD эсвэл MicroSD) байх нь ямар ч ялгаагүй, гэхдээ та үүнийг картын залгуурын дагуу зөв холбох ёстой.

3 Файлын систем.

Төхөөрөмж нь FAT16 файлын системтэй картуудыг ашигладаг. Энэхүү систем нь манайх шиг төхөөрөмжүүдэд нэн тохиромжтой, учир нь үүнийг хэрэгжүүлэхэд хялбар бөгөөд хялбар байдаг (FAT12 ба FAT32 нь зарчмын хувьд хэрэгжүүлэхэд хэцүү биш боловч FAT16-тай харьцуулахад ямар ч давуу тал байхгүй тул энэ нь боломжгүй юм).

Картыг форматлахад тусгай шаардлага байхгүй - үүнийг ямар ч боломжтой төхөөрөмжид форматлаж болно. Windows-ийн стандарт формат нь эдгээр зорилгод маш тохиромжтой.

Төхөөрөмжийг зөв ажиллуулахын тулд SD карт дээр байрлах дууны файлууд нь тодорхой шаардлагыг хангасан байх ёстой.
a) Файлын формат нь шахагдаагүй WAV байх ёстой.
Файлын параметрүүд дараах байдалтай байна.
- Битийн хурд - түүвэрлэлтийн давтамж (Давтамж) - 32000 Гц;
- Сувгийн тоо (Сувгууд) - 1 (моно);
- Дээжийн хэмжээ - 8 бит.
Өөр нэг боломжит бууралт бол WAV PCM 8U юм

b) Файлыг тусгай аргаар нэрлэсэн байх ёстой. Төхөөрөмжийн аль файл нь эхний, хоёр, гурав дахь гэх мэтийг мэдэхийн тулд. Файлын нэрний эхний тэмдэгт нь латин цагаан толгойн том үсэг байх ёстой (файлын өргөтгөл шиг нэрний үлдсэн хэсгийг үл тоомсорлодог).
Жишээлбэл, дараах файлын нэрс зөв байх болно:
A_Lai_dog.wav - анхны зам
B-Энэ бол хоёр дахь зам.wav - хоёр дахь зам
Анхааруулгатай! Алдаа!.wav - гурав дахь зам

в) Төхөөрөмжийн нэмэлт функцуудыг ашиглахын тулд файлуудыг "1" ба "2" нэртэй хоёр хавтсанд байрлуулж болно. Төхөөрөмж нь идэвхтэй фолдерыг сонгох унтраалгатай, өөрөөр хэлбэл сэлгэн залгах оролтын түвшингээс хамааран "1" эсвэл "2" хавтаснаас дууг тоглуулах командыг тоглуулж болно (дууны схемийн нэг төрөл). - маш хэрэгтэй зүйл!) . Хэрэв фолдеруудын аль нэг нь (эсвэл хоёулаа) байхгүй бол файлуудыг үндсэн директороос тоглуулна.

Та өөр ямар ч файлыг дууны замуудын хамт хадгалах боломжтой, хэрэв тэдгээр нь тэдний нэртэй зөрчилддөггүй (тэдгээрийг тусад нь санд оруулах нь дээр, тэгвэл та тэдгээрийг хэрхэн нэрлэсэнд анхаарлаа хандуулах шаардлагагүй болно).

d) ATtiny2313 дээр бага хэмжээний SRAM байгаа тул өгөгдлийг урьдчилан уншихад зориулж буфер үүсгэх боломжгүй тул файлаас өгөгдлийг шууд тоглуулахаар гаргадаг. Үүний дагуу FAT хүснэгтийг ашиглан файлын хэсгүүдийг хайх ямар ч арга байхгүй (цаг хугацаа хангалтгүй). Өөрөөр хэлбэл, картанд бичигдсэн файлууд хуваагдаж болохгүй.

Үнэн хэрэгтээ энэ нь тийм ч том асуудал биш юм, учир нь ямар ч үйлдлийн систем нь файлыг бүхэлд нь бичихийг оролддог бөгөөд картанд зай байгаа тохиолдолд файлуудтай хийсэн аливаа үйлдэл (устгах, хуулах, нэрийг өөрчлөх) хийгдэхгүй. тэдний бүрэн бүтэн байдалд нөлөөлдөг. Хэрэв танд маш жижиг карт байгаа эсвэл том карт бөглөсөн бол файлуудын бүрэн бүтэн байдалд итгэлтэй байхын тулд тэдгээрийг компьютерийнхээ хатуу диск рүү хуулж, картыг форматлаад буцааж буцааж өгнө үү.

4 схем. Цахилгаан гүйдлийн хавтан.

Төхөөрөмжийн диаграм нь аль болох энгийн. Үнэн хэрэгтээ микроконтроллер өөрөө болон SD картаас гадна түүнд юу ч байхгүй. Би энэ төхөөрөмжийг хязгаарлагдмал хэмжээтэй газар ашиглахаар төлөвлөж байгаа тул SMD бүрэлдэхүүн хэсгүүдэд зориулж тэмдэг хийсэн. Хэмжээ нь таны хувьд чухал биш бол та хэлхээг DIP хувилбарт талхны самбар дээр угсарч болно. Талхны хавтангийн хувьд төхөөрөмжийг угсрах нь хамгийн ихдээ 15 минут болно. SD картын зөвшөөрөгдөх тэжээлийн хүчдэл нь 2.7-3.6 вольт байна. Микроконтроллер мөн энэ интервалд хэвийн ажилладаг тул тохирох бүрэлдэхүүн хэсгүүдийг ашиглах шаардлагагүй болно. Би бүхэл бүтэн төхөөрөмжийн ажиллагааг 5 вольтын тэжээлээр шалгасан - бүх зүйл хэвийн ажилласан, гэхдээ өөр өөр картууд илүүдэл хүчдэлд өөр өөр хариу үйлдэл үзүүлж болзошгүй тул үүнийг байнга хийхийг зөвлөдөггүй. Би адаптерийг microSD карт эзэмшигч болгон ашиглаж, контактууд руу нь шууд гагнах. Хэрэв танд жижиг хэмжээс хэрэгтэй бол microSD-д зориулсан жинхэнэ карт эзэмшигч ашиглах нь дээр.

Микроконтроллерийн програмыг гэрэлтүүлэхийн тулд SD карттай ижил холбогчийг ашигладаг тул програмистыг хэрхэн холбох талаар бодох хэрэгтэй болно (би тусгайлан адаптер хийсэн).

Самбарыг гагнаж дууссаны дараа та микроконтроллерыг асааж болно.

Дууссан төхөөрөмжийн жижиг галерей:




Схемийн талаархи жижиг нюанс.
SD картыг карт эзэмшигчид суулгаж байх үед (картыг тэжээлийн эх үүсвэрт холбох) гүйдлийн өсөлт үүсч, үүний дагуу хэлхээнд хүчдэлийн уналт үүсдэг (энэ үед картанд их хэмжээний хүчин чадал цэнэглэгдэж байх шиг байна). Бууралт нь маш их ач холбогдолтой тул микроконтроллер дахин тохируулагдана. Би үүнийг картыг эхлүүлэх процедурыг эхлүүлэхийн тулд ашигладаг (картыг суулгах нь микроконтроллерыг дахин эхлүүлж, програм хангамжийн хийх хамгийн эхний зүйл бол картыг хайж, эхлүүлэх явдал юм). Хэрэв та карт (хүчирхэг тэжээлийн хангамж эсвэл том жигд конденсатор) суулгахдаа микроконтроллерыг дахин тохируулаагүй бол микроконтроллерыг гараар дахин тохируулахын тулд хэлхээний дахин тохируулах товчийг анхаарч үзэх хэрэгтэй (хэрэв та "халуун" гэж төлөвлөж байгаа бол энэ нь карт солих).

5 Төхөөрөмжийн ажиллагаа.

Миний дээр бичсэнчлэн төхөөрөмжтэй ажиллах нь маш энгийн: зөв нэрлэсэн замуудыг SD карт руу хуулж, картыг карт эзэмшигч рүү оруулна, төхөөрөмж автоматаар картыг олж, ногоон LED-ийг асаана - энэ бол төхөөрөмж юм. дууг тоглоход бэлэн байна. Одоо та зүгээр л өөрт тохирох замыг сонгоод тоглож эхлэх хэрэгтэй.

5.1 Төхөөрөмжийн товчлуурууд ба тэдгээрийн үйлдэл.

Би төхөөрөмжийг аль болох ажиллагаатай болгохыг хичээсэн тул үйлдлийн горимын унтраалгад маш олон микроконтроллерийн хөл ашигладаг (энэ нь төхөөрөмжийг зараа шиг болгодог :)). Хэрэв танд ямар нэгэн функц хэрэггүй бол хөлөө "агаарт" "өлгөөтэй" үлдээгээрэй.
Солих үйлдэл:
- "Мангас" - дууны аяыг удаашруулах (2 удаа) - намуухан дууны эффектийг бий болгох. Шилжүүлэгч нь "нисдэг" ажилладаг - шилжих үед хурд өөрчлөгддөг;
- "Гелиум" - дууг тоглуулахыг хурдасгадаг (1/3) - өндөр дуу хоолойны эффектийг бий болгодог. Шилжүүлэгч нь шууд ажилладаг;
- Хэрэв энэ унтраалга газарт богино холболт хийгдсэн бол "давтах" сонгосон зам эцэс төгсгөлгүй тоглох болно (шилжүүлэгч нээгдэх хүртэл). Энэ нь ашигтай байж болох юм, жишээлбэл, хэрэв та тодорхой дууны дэвсгэр үүсгэх шаардлагатай бол - борооны чимээ, шатаж буй гал, горхины чимээ ...;
- Дууг тоглуулахын тулд "Сонгох / Тоглуулах" товч (доорх тайлбар);
- "Зам сонгох" - тоглож буй дууны дугаарыг тохируулах (доорх тайлбар);
- "Dir1 / Dir2" - дууны схемийг сонгоно уу (доорх тайлбар).

5.2 Тоглож эхлэх.

Тодорхой дууг тоглуулж эхлэх гурван арга бий:
- Латин цагаан толгойн том үсгийг UART-ээр илгээснээр нэрний эхэнд байгаа энэ үсгийг агуулсан файлыг шууд тоглуулж эхэлнэ;
- "Track Select"-ийг ашиглавал файлын дугаарыг сонгоно (хоёртын код 0001=”A”, 0010=”B” гэх мэт. 1 - хөл газарт хаалттай, 0 - "агаарт" өлгөгдсөн), дараа нь "Сонгох / Тоглуулах" товчлуур нь тохирох файлыг тоглуулахыг эхлүүлэх болно;
- Хэрэв "Зам сонгох" (0000 - хөл нь "агаарт" өлгөгдсөн") ашиглан юу ч сонгоогүй бол "Сонгох / Тоглуулах" товчийг тодорхой тооны удаа дарснаар бид тохирох замыг эхлүүлнэ (1 удаа = "A", 2 удаа ="B" гэх мэт).

5.3 Дууны схем.

Маш ашигтай функц бол хоёр дууны схемийн аль нэгийг сонгох функц юм. Энэ нь "Dir1 / Dir2" шилжүүлэгч нь дууг тоглуулах карт дээрх хавтсыг сонгоно гэсэн үг юм.

Маш олон програмууд байдаг: Орос, англи хэл дээрх мессежүүд (сургалтын тоглоомууд), хүүхэд, насанд хүрэгчдийн дуу хоолой, урсах ус, шатаж буй галын чимээ, муур/нохой, сайн муу цагдаа :), тайвшруулах/эрч хүч өгөх дуу чимээ болон бусад олон зүйлс ижил төстэй сонголтууд.

Жишээлбэл, эрэгтэй, эмэгтэй дуу хоолойгоор харилцахын тулд танд төхөөрөмж хэрэгтэй. Үүнийг дараах байдлаар хэрэгжүүлдэг.
- эмэгтэй, эрэгтэй хувилбарт тус тус хоёр багц мессеж үүсгэх;
- хоёр сонголтын файлын дугаарлалт ижил байна. Төхөөрөмж нь файлын нэрний зөвхөн эхний үсгийг "хардаг" гэдгийг бүү мартаарай, ингэснээр та нэрийг өөртөө илүү ойлгомжтой болгох боломжтой, жишээлбэл, "S_Waiting for command_male.wav" болон "S_Waiting for command_female.wav" нь нэлээд юм. зөв;
- эрчүүдийн мессежийг "1" хавтас руу, эмэгтэйчүүдийн мессежийг "2" хавтас руу хуулна.
Одоо "Dir1 / Dir2" шилжүүлэгчийн төлөв байдлаас хамааран ижил тушаал нь "эрэгтэй" эсвэл "эмэгтэй" хавтаснаас дууг тоглуулна.

5.4 Төхөөрөмжийн ажиллагааны үзүүлэлт.

Teeny2313 нь маш цөөхөн хөлтэй бөгөөд бараг бүгдийг нь унтраалгад ашигладаг тул би ердийн заалтыг золиосолж, хариуд нь хэвийн бус зүйл хавсаргах хэрэгтэй болсон. Янз бүрийн үйлдлийн горимыг зааж өгөхийн тулд микроконтроллерийн зөвхөн нэг хөлийг ашигладаг бөгөөд үүнд хоёр LED холбогдсон байна - улаан, ногоон (эсвэл аль нь ч дуртай). Төхөөрөмжийн янз бүрийн үйлдлийн горимыг тодорхой өнгөний кодоор зааж өгсөн болно.
- улаан LED анивчдаг - SD карт байхгүй эсвэл түүний төрлийг төхөөрөмж дэмждэггүй;
- улаан LED асаалттай - SD картыг дэмжиж, амжилттай эхлүүлсэн боловч карт FAT16 форматаар форматлагдаагүй;
- ногоон LED асаалттай - SD картыг амжилттай эхлүүлсэн, шаардлагатай файлын систем олдсон бөгөөд төхөөрөмж замыг тоглуулахад бэлэн болсон - командыг хүлээж байна;
- ногоон LED анивчдаг - төхөөрөмж зам тоглож байна;
- ногоон гэрэл асна, улаан гэрэл богино хугацаанд асна, ногоон гэрэл дахин асна - зам олдсонгүй;
- ногоон гэрэл асч, богино хугацаанд унтарч, дахин ногоон өнгөтэй болно - зам сонгох товчлуур дарагдсан.

5.5 Дибаг хийх мэдээлэл.

Асуудалтай газруудыг олоход хялбар болгохын тулд (хэрэв төхөөрөмж ажиллахыг хүсэхгүй бол) би програмын эхлүүлэх үе шат бүрийг UART-ээр мессежээр хуулбарласан. Амжилттай алхам бүрийн дараа холбогдох тэмдэгтийг UART руу илгээнэ.
- "S" - (Эхлэх) микроконтроллерийн дагалдах төхөөрөмжүүд хэвийн ажиллаж байна;
- “C” - (Картыг эхлүүлэх) SD картыг хэвийн болгосон бөгөөд дэмжигддэг;
- "F" - (FAT Init) FAT системийг дэмждэг;
- "1" - (No 1 Dir) хавтас байхгүй байна "1" гэсэн уншлага үндсэн лавлахаас хийгдэх болно;
- "2" - (No 2 Dir) хавтас байхгүй байна "2" гэсэн уншлага үндсэн лавлахаас хийгдэх болно;
- "R" - (Бэлэн) төхөөрөмж бүрэн бэлэн болсон - замыг эхлүүлэх командыг хүлээж байна;
- Түүнчлэн дууг эхлүүлэх бүрт дууны нэрийн том үсгийг UART-д дамжуулдаг.

Таны төхөөрөмжүүдийг хуулбарлахад зориулсан 6 дуу.

6.1 Замуудыг хөрвүүлэх

Хэрэв та дээрх номын сангаас тохирох зүйл олоогүй бол интернетээс шаардлагатай дууг олж авах боломжтой (хөгжимчид, видео засварлах олон тусгай сайтууд байдаг, тэнд дууны том сангуудыг цуглуулсан байдаг), тоглоомын суулгацуудаас ( ихэвчлэн тоглоомын дууг замд хувааж, тусдаа хавтсанд хийдэг). Та мөн кино, хөгжмийн зохиолоос дууны эффектийг хасах боломжтой. Олдсон замуудыг төхөөрөмжийн дэмждэг формат руу хөрвүүлэх шаардлагатай. Файлын формат нь шахагдаагүй WAV байх ёстой гэдгийг сануулъя. 32000 Гц, 1 суваг, 8 бит (WAV PCM 8U)
Аливаа хөгжмийн засварлагч нь энэ формат руу хөрвүүлэхэд тохиромжтой, эсвэл хэрэв та дууг засварлахгүйгээр хөрвүүлэх шаардлагатай бол -



Сайт дээр шинэ

>

Хамгийн алдартай