Бърза AVR схема. Предпазители в микроконтролерите на AVR в AVR

Дизайнът на дизайна и насоките за използване на дебюрните съвети на Mikroelektronika се основава на дизайна. EasyAVR (и не само), произведено от тази компания, привлича начинаещи да овладеят техниката на микроконтролера за качество на производството и различни компоненти, инсталирани върху тях. Всъщност, половината от тях стават ненужни след проверка в действието на пет-шест програми за обучение, се приемат, че има много светодиоди и бутони, свързани към всяка линия на всяко пристанище. Но те се нуждаят от експериментатор само докато не се научи да управлява сигнали и светкавици и това се случва доста бързо. На борда има само четири светодиода и ключ, е достатъчно да започнем ...

Разработено от таксата, която дадох на името Fastavr. Имайки размери 98x127 mm и едностранна печатна инсталация, тя е подходяща за производство в дома. Микросиркулите се прилагат само в инсталираните в панела заграждения, което улеснява заместването им в процеса на експеримента. Микроконтролерът може да бъде часовник и от кварцов резонатор, така и от честотния часовник, инсталиран часовник с честотен делител, е предвиден съединител за свързване на стандартния STK-200 програмист с селективна храна и с възможност за свързване на JTAG Адаптер Ако е необходимо, можете да програмирате и микроконтролер, предназначен да работи. В друго устройство.

На борда има най-необходимите периферни устройства за опаковката на отстраняването на грешки: два-битов индикатор за седем елемента, символичен LCD, RS-232, SPI, PS / 2 интерфейси (за свързване на стандартна компютърна клавиатура или "мишка" ), EEPROM Microcircuit, звукова аларма. Възможно е да се свържат повечето от тези устройства към всички заключения на всички микроконтролерни портове в произволни комбинации, всички портове са достъпни и да свързват устройства извън дъската. Предлага се на борда на устройствата, включително кварцов генератор и светодиодни индикатори, могат също да бъдат свързани към устройства извън нея Всички тези връзки не изискват запояване и се извършват чрез инсталиране на джъмперите между връзките, налични на дъската или между тях и външни устройства .

Първоначално борда на отстраняване на грешки с евтин микроконтролер ATMEGA8, който притежава почти всички присъщи семейства (AVR) с възможности, обаче, реших да не спестявам и прилагам микроконтролера на едно и също семейство в случая на потапяне с максимално възможния брой заключения (40) - Atmega16 или Atmega32. Местоположението на заключенията те са едни и същи и всеки може да бъде инсталиран на борда. Големият брой изходи ви позволява да свържете по-различни периферни устройства, които могат да се изискват при отстраняването на грешки. Тъй като микроконтролерите на AVR семейството са програмно съвместими, посветени на по-мощна програма е лесна, като правило, за да се прехвърлят към по-малко мощно, като се има предвид, разбира се, техните различия.

На същия случай на микроконтролера, инсталиран на борда на отстраняването на грешки, много различни програми могат да бъдат отстранени. Софтуер (Flash) паметта на съвременните микроконтролери позволява толкова много цикли на препрограмиране, че при извършване на многобройни промени в програмата в процеса на отстраняването му, не можете да мислите за възможното изчерпване на ресурса, дори когато се появят първите признаци на това ( Някои клетки от паметта не са програмирани от първия път) микроконтролерът, прекаран на борда на отстраняването на грешки, не трябва да изхвърляте. Тя може да бъде програмирана до последното време, да изпрати "за постоянна работа" на една от предварително установените структури.

Схемата на основния възел на Fastavr борда е показана на фиг. 1. Цялото свързване на периферията към пристанищата на микроконтролера на DD2 се извършва чрез двоен ред 16-пинов щифт HR1-XP щифтове. Дори игли всеки от тях са свързани към изходите на пристанищата на микроконтролера и нечетно - към наличната на дъската периферни устройства. Когато сглобяването на оформление за отстраняване на грешки прилежащия щифт е удобно свързан с конвенционалните джъмпери, и при отстраняването, в друг блок, или дори на друг съвет, са джъмперите от сегментите на гъвкавия изолиран проводник, оборудван в двата края на жаковете съединителите (фиг. 2). На гнездата са монтирани термосвиваеми тръби.


В процеса на отстраняване на грешки към същите щифтове е удобно за свързване на контролни и измервателни уреди: осцилоскоп, честотен метър, генератор на тестови сигнали. Местоположението на щифтовете в ред, за да се увеличи броят на категорията на пристанището, улеснява търсенето на правото и значително намалява риска от объркване. Подобно решение, по мое мнение, е много по-удобно, отколкото да използвате в повечето промишлени дебюгени за външни връзки на десетилетия-неактивни двуредови съединители IDC-10. Единственото предимство е наличието на ключ, който осигурява правилното докинг с свързващата част на съединителя. И когато свързвате един проводник или сонда на измервателния уред, е необходимо да се разглеждат контактите всеки път, като припомня реда за тяхното съответствие със заключенията на микроконтролера.

Ако S2-S4 джъмперите се монтират, S5 и S6 са монтирани, кварцов резонатор ZQ1 е свързан към вътрешен часовник генератор на микроконтролер, чиято честота може да бъде избрана от всяка необходима за задачата. Общественият съвет също има интегрален кварцов генератор G1 за 16 MHz. The DD1 Chip Triggers разделят честотата си на две и четири. След отстраняване на Jumper S5, S6 и инсталирането на един от джъмперите S2-S4, е възможно да се подаде на часовника на микроконтролера (изход 13) импулси с честота 4, 8 или 16 MHz. Това ще гарантира работата на микроконтролера с всяка конфигурация, в която вътрешният часовник RC генератор е изключен.

А часовник от външен генератор може да бъде полезен и да възстанови работата на микроконтролера, чиято конфигурация е погрешно. Можете да прочетете за това.

Въпреки че микроконтролерът съдържа собствена нелетлна памет, тя често е недостатъчна за солидна задача. Проблемът може да бъде решен чрез свързване към микроконтролера на микроцирците на външната памет на желания обем. На Fastavr борда, това се прави съгласно схемата, показана на фиг. 3 DS1 чип 24c или 24LC серия - препрограмирана нелетлна памет с I2C интерфейс. Входовете на AO-A2 са свързани по такъв начин, че по-младото разреждане на адреса си на интерфейсния автобус е 1, а двете след това са нула.

На фиг. 4 показва наличната схема на главния съвет за управление и индикация. Четворният DIP превключвател SA1 е свързан със заключенията на пристанищата на микроконтролера. R4-R7 резистори защитават тези заключения, ако те са случайно програмирани като изходите за претоварване, когато са затворени ключове. DR1 монтажните резистори поддържат високо логическо ниво при входа на микроконтролера, когато SA1.1-SA1.4 превключвателите са отворени. Петият "екстра" модул резистор може да се използва и за подаване на такова ниво към всяка верига.
Четири HL1-HL4 сигнални светодиода свети на високи логически нива на изходите, към които са свързани, и няма да бъдат осветени при ниски. Резистори R8-R11 ограничават тока.

Превключватели на общи електроди с двустранен седемместен светодиоден индикатор HG1, събрани на транзистори VT1-VT4. Те могат да контролират индикатори с двата обикновени анода (например, DA56-11) и с общи катоди на елементи (например DC56-11), трябва само да осигурите необходимата полярност на софтуерните формирани контролни импулси, доставени на R12-R21 резистори. Такива индикатори са лесни за намиране в касовите апарати и системните блокове на компютрите. След отстраняване на Jumper S7 можете да деактивирате елемента H (десетична точка) на долния източник на индикатора HG1.

Конекторът XP5 се използва за свързване към Fastavr платка на обикновен символичен тензор с вградени контролери. Всъщност, това е двуредов 34-пинов IDC-34ms съединител, но се използват само 14 от 17-те контакта на един ред. Техните номера, показани в диаграмата, не съответстват на стандартния съединител за това, но съвпадат с констатациите на най-често срещания LCD. Наличието на такъв конектор ви позволява да използвате, за да комуникирате с индикатора със стандартен компютърен 34-проводни плосък плосък кабел, предназначен за свързване на задвижването на гъвкави дискове с дънната платка. В отворите на сайтовете за контакт на интерфейса на LCD дисплея са поставени и поднесени до тях 14-пинов щифт. Един конектор е поставен върху него плосък кабелИ вторият се вмъква в съединителя XP5. Контакти Хиляди са свързани към изходите на пристанищата на микроконтролера в съответствие с схемата за включване в устройството за отстраняване на грешки. Платката с свързания индикатор е показана на фиг. пет.

Описаният метод за свързване на LCD е относително сложен, но е удобно, защото индикаторите различни видовеКато същата глупака, можете бързо да се промените, без да рискувате да объркате реда на свързване на техните заключения с пристанищата на микроконтролера. R23 Rapid Resiffor служи като контрастен регулатор.

Безупречно сигнално устройство B1 е електромагнитен емитер от 80 ома резистентност, намерена на компютърната дънна платка. Vd1 диодът потиска емисиите на самоуправление на напрежението, възникнали върху сигнализирането на алармата, когато се захранва от импулсно напрежение. Намаляване на резистор R22 за увеличаване на звука на звука, не трябва да бъде. Това ще доведе до производство на микроконтролер.

Малък съвет. Не забравяйте в края на програмата за генериране звуков сигнал Изпратете командната настройка ниско ниво На изхода на микроконтролера на PD7. Ако нивото тук е високо, токът чрез излъчвателя на В1 ще продължи да тече и спира между сигналите, което ще доведе до общо увеличение на консумацията на енергия от микроконтролер.

Схема външни интерфейси Бордът за отстраняване на грешки е показан на фиг. 6. към XS1 конектора, можете да се свържете компютърна клавиатура или "мишка" и свържете XS2 конектора с COM порта на компютъра. Microcircuit DA1, включен в съответствие с типичната схема, координира нивата на RS-232 сигнали и микроконтролер. Jumpers S8-S10 са тънки участъци от печатните проводници, които могат да бъдат нарязани, ако е необходимо да използвате не само информация, но и управляващите сигнали на интерфейса RS-232 в дебюдженото устройство.
L1-L5 зъбите потискат високочестотната намеса. Това са малки феритни тръби върху проводниците. Такива лесно се намират на компютърни дъски.

За да качите програми за програми за микроконтролер, монтирани на Fastavr платка, XP6 конекторът е свързан към програмиста. По време на работа с него, Jumper S1 (виж фиг. 1) се препоръчва да бъде отстранен чрез изключване на веригата на първоначалната инсталация на микроконтролера на дъската. Ако програмистът има собствен източник на захранване, е необходимо да се премахне джъмпера S11. Когато е инсталиран, програмистът се захранва от борда на грешки.

Използвах програмист, подобен на STK-200. Диаграмата и чертежа на платката може да бъде намерена на фиг. 8 и 9 V. В този програмист само един чип KR1564AP5 (74HC244AN) е свързан към порта на LPT на компютъра. Инсталиране на кварцовия резонатор в програмиста не е необходимо, той е на борда на отстраняването. Когато работите с този програмист и програма PONYPROG на компютър с Core2Duo + процесор, 1965 чипсет и работа windows система XP SP3 Няма възникнали проблеми.

Веригата на колекцията на дъската е показана на фиг. 7. КОНТАКТ 3 XP7 конектор от външен източник Можете да подадете стабилизирано напрежение +5 V. Jumpers S12, S13 трябва да бъде премахнато. Ако има източник на постоянно напрежение от 9 ... 16 V, неговият положителен изход е свързан към контакта на 2 на същия конектор и инсталирани джъмпери S12, S13. В този случай, външното стабилизирано напрежение не се изисква, то се получава с помощта на стабилизатора на DA2.

Когато LG1 светодиодът не се използва и всички външни устройства не са свързани към дъската, температурата на стабилизатора DA2 е малка. Ако, въпреки наличието на радиатора, стабилизаторът е силно нагряван, се препоръчва да се превключва на мощност от достатъчно мощен източник на напрежение 5 V. При наличие на захранващо напрежение сигнализира HL5 LED.

Vd2 и Vd3 диоди защитават от неправилна полярност на захранването. Ръци (феритни тръби) L6 и L7 потискат високочестотната намеса. CT12-X17 (+5 V) и HT18-HT22 (общо) и НТ18-НТ22 (общо) и НТ18-НТ22 (общо) могат да се използват в различни външни устройства. В допълнение, контактите HT18-HT22 удобно свързват общия проводник на измервателните уреди.

Чертежът на платката е изобразен на фиг. 8. Това е едностранно от фолио Fibercker с дебелина 1,5 mm. Имайте предвид, че двете линии, изместени от джъмпер от изолирания проводник, са монтирани от отпечатаните проводници. Останалите са направени от тел без изолация и са разположени от страна на страната. За DA1, DD1, DD2, DS1 чипове и индикатора HG1 LED, панелът е инсталиран на дъската, което ви позволява бързо да замените тези елементи, ако е необходимо. При липса на феритни тръби, вместо задушаване L1-L7, можете да инсталирате джъмпери.

До XS1 конектора има място за кацане за един и същ съединител, обозначен с XSV. Въпреки че заключенията му не са свързани никъде, тя ви позволява лесно да инсталирате Dual MDN-6F гнездо с компютърна дънна платка. XS2 конектор - DB-9F гнездо.

CHR1-HR4 щифта, HT1-HT22 щифтове и предназначени за монтаж на джъмпери S1 - S7, S11-S13 са изработени от двуредови съединители на серията PLD или едноредови PLS серии. За да се получи желаният брой контакти, те са отделени от сегментите на съответната дължина или сегменти с липсващи контакти.

Моля, обърнете внимание, че има безплатни подложки за контакт до сайтовете за контакт за PT4-HT11 щифтове. Това ви позволява да инсталирате двустранен щифт, който не подлежи на "разхлабване" с чести рекомтури. За конектора на KHR5 (IDC-34ms) е казал преди това. Конекторът XP6 (за програмиста) е десетилетието на същата серия (IDC-10ms). Три-пин XP7 захранващият съединител се отстранява от дънната платка, където е използван за свързване на вентилатора. Това свали проблема за търсене на отговор на съединителя, който е предназначен да се свърже с борда за захранване.

В долните (според чертежа) части от дъската има правоъгълно поле, напълнено с места за контакт - резерв за поставяне на всякакви допълнителни елементи, които могат да бъдат необходими по време на отстраняването на грешки. На плащането, направено от мен, той е инсталиран тук, например, променлив резистор с деноминация от 22 com. Напълнен е с напрежение +5 V и регулируемата регулируема отстранена от двигателя се използва за проверка на микроконтролера ADC.

Интерфейсът RS-232 е много удобен за използване при отстраняване на грешки, добавяйки дебъг-в програмата към модула, който изпраща необходимата информация чрез микроконтролера на USART. Работещи на компютъра, с Com-Port, на който свързва XS2 конектора на дъската, терминалната програма, можете да наблюдавате получените съобщения.


Използвах програмата V1.9B, която може да бъде намерена в интернет с всички търсачка. Прозорецът на тази програма с примери за съобщения, получени от устройството, които се отстраняват и предават към него, е показано на фиг. 9. За нормален дисплей на руския текст трябва да кликнете върху бутона "Set Font", изберете шрифта - арица в прозореца, който се отваря - обичайният размер е 8, наборът от символи е кирилица.

PCB файл в Sprint Layout 5.0 формат и примери за програми, които демонстрират наличната работа на борда на възлите:

Литература
1 Baranov V. Възстановяване на конфигурацията на AVR микроконтролерите. - радио. 2009, № 11, стр. 26-29.

С. Борисов, Регион Нотовая Тула.
Радио № 8-9 2010.

Често е необходимо да се използва контролът на всяко устройство (независимо дали лагерната крушка, двигателят, тен или прост светодиод) е чрез PWM.

Вероятно обяснете какво е и в това, което очарованието на шума не е необходимо, вече има много информация в интернет и е малко вероятно да заблуди тази тема по-добре. Затова веднага ще продължим към бизнеса, а именно, ще започнем PWM на ATTINY2313 средства за BASCOM-AVR.

PWM B. aVR микроконтролери Работи върху таймерите на броячите, в Tiny2313 mk на такива таймери само от 2: 8-битов таймер0, като се има предвид до 255 и 16-битов таймер1, способни да преброяват до 65535. Всеки таймер контролира два PWM канала, така че всички хардуер могат да бъдат реализирани до 4 канала.

Информация за броя на каналите на PWM и изпускането на всеки канал могат да се лъжат на страниците на лихвената фаза на микроконтролера.

По този начин, на борда на ATTINY2313 има два 8-битови канала на WIM, работещи от таймера0 и още два канала, работещи с таймер, имат програмируем бит от 8 до 10 бита. В тестенето на данни, тези крака са подписани, както следва:

За да конфигурирате таймера за таймер1, за да генерирате PWM в BASCOM, е достатъчно да запишете следния ред:

Config Timer1 \u003d PWM, PWM \u003d 8, сравнете pwm \u003d изчистен нагоре, сравнете b pwm \u003d изчистен надолу, prescale \u003d 64

PWM \u003d 8 Избира PWM бит, за таймер1, както е написано по-горе, може също да бъде PWM \u003d 9 или PWM \u003d 10.

Сравнете a / b pwm \u003d изчистете / изчистете тук, можете да конфигурирате активното състояние за всеки PWM канал (A и B).

Prescale \u003d 64 - вече познат таймер конфигурация низ, който е отговорен за предварително разделяне на честотата на препълване на таймера този случай Разделието ще постави честотата на PWM. Можем да променим по ваша дискретност priscale \u003d 1 | 8 | 64 | 256 | 1024


Дейният цикъл на генерирания сигнал се определя от стойността, която пишем на OCR1A и OCR1B за сравнение (имаме два канала, имаме два на един таймер, тук един регистър на канала A и B). С стойностите, които са в тези регистри, непрекъснато сравняват стойността на регистъра за броене (той се копира в таймера), когато те съвпадат, превключвателят на MK към активното състояние и регистът за броене продължава да чете максимална стойност. След като е изследван до максимум, таймерът започва да се брои обратна посокаи достигането до стойностите на регистъра за броене и регистъра за сравнение отново ще съвпадат отново, тя ще се върне обратно в подножието на микроконтролера (виж фигурата по-долу).



За нас регистриращите OCR1A и OCR1B са само променливи, в които можем да поставим някаква стойност. Например:


OCR1A. = 100
OCR1B \u003d 150.


В банкет за удобство се предоставя и друго име на тези регистри: PWM1A и PWM1B, така че предишните линии ще бъдат еквивалентни на:


Pwm1a. = 100
Pwm1b \u003d 150.

Сега ще разберем как конфигурацията на активното състояние на състоянието на изчистването / изчистването влияе на това, което се случва на изхода PWM в зависимост от регистъра за сравнение.

Когато изходът е конфигуриран като сравнение на PWM \u003d Clear Down Active Status е високо ниво и с увеличаване на стойността на OCR (PWM), пропорционалното напрежение на този крак ще расте. С точност, напротив, всичко ще се случи, ако изходът е конфигуриран като сравнение на pwm \u003d изчистване нагоре. Всичко това е добре илюстрирано на снимката по-долу.



Стойностите, които тези регистри за сравнение могат да поемат как Shim каналът е проследен. При PwM \u003d 8 (8-битов PWM) е възможно от 0 до 255; при pwm \u003d 9 от 0 до 511; С pwm \u003d 10 от 0 до 1023. Тук мисля, че всичко е ясно.


Сега малък пример: Свържете светодиодите към микроконтролера, както е показано в диаграмата (мощността на MK в диаграмата не е зададена)


И напишете малка програма:


$ crystal \u003d 4000000

Config Timer1 \u003d pwm, pwm \u003d 9, сравнете pwm \u003d изчистете надолу, сравнете b pwm \u003d изчистен нагоре, prescale \u003d 8
Config Portb.3 \u003d Изход
Config Portb.4 \u003d Изход

Uncr pwm1a. "Плавно увеличавайте съпротивлението за сравнение OCR1A
Увеличете PWM1B. "Плавно увеличаване на стойността на регистъра за сравняване на OCR1B

Степете 20. "Добавяне на забавяне

Линия.

Край.

След компилиран и проблясък на програмата в контролера, един от светодиодите (D1) ще изпълни гладкото яркост, а другият (D2) плавно отидете


Ако сега пляскате осцилоскопа върху добива на PWM, можем да видим такава снимка с променяща се единица импулси (син сигнал на OS1A, червен на OS1V):


Конфигурация на таймера За да генерира PWM, почти същото, с изключение на това, че таймер0 е 8-битов таймер, и следователно PWM, генериран от този таймер, винаги ще има малко 8. Следователно, конфигурирането на този таймер, PWM битът не уточнява:

Config Timer0 \u003d PWM, сравнете pwm \u003d изчистен нагоре, сравнете b pwm \u003d изчистен надолу, prescale \u003d 64



Сега подобен пример със светодиоди, но сега PWM ще генерира с таймер0:


$ regfile \u003d "attiny2313.dat"
$ crystal \u003d 4000000

Config Timer0 \u003d PWM, сравнете pwm \u003d ясен надолу, сравнете b pwm \u003d изчистен нагоре, prescale \u003d 8
Config Portb.2 \u003d Изход
Config Portd.5 \u003d Изход

INCR PWM0A " плавно увеличаване на стойността на регистъра на OCR0A
INCR PWM0B " плавно увеличават стойността на регистъра OCR0B

Степете 20. "Добавяне на забавяне

Линия.

Край.

Свържете светодиодите към Timer0 PWM изхода, както е показано на диаграмата:

Всичко е подобно: първият светодиод (D1) ще получи гладко яркост, а вторият (D2) ще изгасне гладко.


Преброяване на честотата на Shim поколение

Ако искате да разберете честотата на генерирането на предавките, тогава не е трудно. Вижте формулата по-долу:

PWM честота \u003d (кварцова честота / офсет) / (размер на регистъра за броене * 2)

Например, ще изчислим няколко стойности:

1. кварцова честота \u003d 4000000 Hz, офсет \u003d 64, PWM бит 10 бита \u003d\u003e Размер на регистъра на брояча \u003d 1024

PWM честота \u003d (4000000/64) / (1024 * 2) \u003d 122 Hz

2. Честота кварц \u003d 8000000 Hz, офсет \u003d 8, PWM бит 9 бита \u003d\u003e Размер на регистъра на брояча \u003d 512

PWM честота \u003d (8000000/8) / (512 * 2) \u003d 976,56 Hz

3. кварцова честота 16000000 Hz, офсет \u003d 1, pwm бит 8 бита \u003d\u003e Размер на регистъра на брояча \u003d 256

PWM честота \u003d (16000000/1) / (256 * 2) \u003d 31250 Hz

Fastavr Universal Debug Board за начинаещи в програмирането Atmel MK се основава на анализ на около десетки подобни дизайни. Таксата е разумен компромис между излишната функционалност на повечето от тях или твърде примитивни характеристики на другите. Да имаш известен опит в работата с различни микропроцесорни системи, по-долу ще коментирам мислите си, - като един или друг борд е замислен. Съгласен съм с тях или не - Вашият бизнес, но може да са частично, те ще бъдат полезни за овладяване на AVR в бъдеще ...

Дизайнът на дизайна се основава на развитието и атаките на микроелектроника (http://www.mikroe.com/ru/). Но EasyAVR таксите (и не само) съдържат твърде много компоненти, които са привлечени от вариевото и качеството на новодошлите в микропроцесорно оборудване, всъщност половината от тях стават ненужни след успешна компилация от 5-6 примера за програми и придобиване на опит. Мислите ли защо имате нужда от куп светодиоди и бутони, свързани с всяко пристанище? Всичко това е вярно, докато не се научавате как да контролирате пристанищата на пристанището и да хвърляте индикатори и това ще се случи много бързо ;-) Има 4 светодиода в този случай на дъската, а превключвателят е съвсем достатъчно ...

Така че, възможностите за отстраняване на грешки:

  • основна периферия за ATMEGA Поддръжка: RS-232 преобразувател, бийпър, SPI EEPROM, LCD и LED индикатори, вграден часовник генератор + кварц, PS-2 клавиатура, ADC тестер, логически тестери;
  • способността за повторение у дома, едностранна печатна платка е оптимизирана за лазерно-железната технология, малък размер;
  • прилагането на всички компоненти само в загражденията на DIP, улеснява ги да ги замените в процеса на експерименти или да програмирате самия процесор за други схеми (например за JTAG);
  • пълна функционална достатъчност за създаване на прости прототипи на устройства и отстраняване на грешки;
  • стандартни SPI SPI съединител със селективно захранване на програмиста, способността външна връзка. JTAG;
  • способността да се даде възможност на борда в режим jtag лед с просто рецептинг;
  • възможността за независимо превключване на периферията във всяка комбинация поради линейната технология на местоположението на всички МК портове;
  • възможността за лесно свързване на външни периферни и използване на 100% от Atmega ресурсите в DIP-40, всички пристанища се получават, освен това - всички вътрешни периферни устройства на дъската ви позволяват да го използвате за външни устройства (например, часовник генератори или светодиодни индикатори;

Всичко това не изисква пречистване на такси или запояване. Така В началния етап на развитието на MK възможностите на Fastavr е достатъчно. Този, който иска да продължи, след създаването на собствен софтуер, може да реши независимо, че трябва конкретно и да направи прототипа на дизайна със собствен набор от периферни устройства. Още веднъж, разписката е създадена, за да започне изучаването на MK AVR, никой не е бил преследван. Появата на самата документация е свързана с интереса, който много начинаещи се развиват този вид Контролери или все още мислят къде да започнете. И трябва да започнете естествено с таксата за изпитване ;-)

MK AVR-самостоятелни контролери обаче процесорът не е цялата система. "Кубчета", които го служат или контролирани от тях, могат да се видят само като отделни блокове на бъдещи структури. Като ги комбинирате на главния съвет, можете всички заедно да съчетаете необходимите резултати. Първоначално таксата беше замислена въз основа на Atmega8, защото Той е евтин и има почти всички AVR способности. Въпреки това, засягайки съветите, реших да не спестявам и поставям микроконтролера-Atmega16 микроконтролера, достъпен в потапящия корпус или 32. COCOOLEVката на двата МК е идентична. Цената на такова решение с стократно изплащане от броя на I / O портовете, към които може да бъде свързан поне за времето за отстраняване на грешки. Съвместимостта отдолу нагоре за всички поколения AVR ви позволява да пишете и отстраняват програми, използвайки по-мощен чип и след това да направите компилация за целевия кристал. Достатъчният ресурс на светкавицата позволява да не се "попълват" върху ограниченията в възможностите за препрограмиране на мега, особено след като е възможно да се работи достатъчно, изпрати да се намират до MK към работата на работата, за последен път (Jtag лед е първият претендент)

За производството на борда ще отнеме малко компютърно "боклук", което е достатъчно в помещенията за съхранение на всяка електроника. Повечето компоненти се нанасят от старо или отказано дънни платки IBM PC или близки компютърни технологии, наскоро желязо от този вид е все по-разглобяване и се изхвърля без употреба. Като С SMD малки неща, практически нищо да правите нищо (сортирайте проблема и времето ...), изваждам такива устройства изцяло или строителна сешоар или електрическа печка.

Основното описание на Fastavr по-долу е блокиране:

Храна. Вграденият стабилизатор на 78 (m) 05 ви позволява да проправите такса от широко разпространени адаптери 9-12V, взети от друго оборудване, което обикновено е неактивно. В обичайното включване на това е достатъчно (мег-16/32 + LCD + RS232 + TXO), когато се използва типичен 7 сегмент, или силно ненаситен външен периферия (сложен програмист), стабилизаторът вече е много горещ. Свързването на външно стабилизирано напрежение + 5V е възможно чрез щифта-3 х1 (конекторът от охладителите на Матей) се прилага). Преди това трябва да изключите JP1-JP2 джъмперите на групата VCC_SEL. X1 от този тип се избира по няколко причини, основната може почти винаги да прави адаптер за захранване на дъската от различни адаптери, които са налични или лабораторни bp. Possover Ferrite Chokes (Balun) FB1, FB2 филтър импулс интерференция и RF върх. На диоди Vd1, Vd2, извършен от "наблюдение". На няколко места дъските са инсталирани VCC_EXT и GND_EXT Jumpers. Чрез тях е достатъчно просто при свързването на периферията за отстраняване на захранващото напрежение и цялостната "земя".

Външната памет се осъществява на стандарт I2C EEPROM 24CXXX. Въпреки че самият AVR съдържа собствената си нелетлна памет, но в много дизайни външният чип може да бъде за предпочитане поради обема на ресурса. Включващата верига е стандартна, адресът на кристала 0x01.

Линейни индикатори за състоянието на LED порта HL2-HL5 са направени на 4 отделни светодиода. За началото на експериментите с AVR това е достатъчно повече от техния брой, считам, че не е оправдано и доста декорирано. Светодиодите са включени при писане на дневник на портове. "1", така нататък Състоянието на портовете се показва без инверсия на сигнала, която е удобна и визуална.

Свързването към LCD индикаторната платка е направено чрез 2 конектора, възможно е да използвате и 8 битов и 4-битов режим. Първият от тях е 34-пиновете X2 (от 3.5 "задвижване) ви позволява да използвате стандартни заредени примки от задвижващите устройства от желаната дължина, съответно, на самия индикатор е по-добре да скриете линия за джъмпер (пин- Блок), той ви позволява бързо да промените различни индикатори без страх конвертиране на заключения. Връзката с пристанищата на ABRA се извършва чрез щифта X10, който в допълнение към режима на LCD връзката можете да изберете заключенията на MK. Този дизайн ви позволява лесно да се адаптирате към свободните портове на контролера, дори "набиране" в една от различните групи портове, което е необходимо, когато е конфигурирано с особено отстраняващ прототип или новопостроена печатна платка, тя се оказва по-удобно в окабеляване.


В много случаи използването на LCD индикатор не може да бъде оправдано по цена, размери или надеждност. Например, в най-простия зарядно устройство Или таймерът може да работи усилено и 2-битов светодиоден индикатор. В присъствието на двойни 7-сегментни показатели на общия тип с височина 14мм знак, както с общ анод, така и с общ катод (отписани касови апарати и системни блокове 486 компютъра). Трябваше да приложа 2-инсулт клавиши на VT1-VT4, за да свържете всякакви индикатори и, съответно самата индикатор, така че в бъдеще да не счупи главата ви с верига.

Всички периферни устройства за свързване към пристанищата на Atmega, както е отбелязано по-рано, се правят чрез линеен X3-X6 щифт. Главно върху таксите за дълга наблюдавах използването на IDC-10 съединители (2x5). Единственото предимство в това е присъствието на "ключ", за да не се вземе шлейфът на места, когато е свързан. Следователно, предимствата на такъв метод ще завършат и недостатъците започват - дори визуално неудобно да работят с 8 цифрени пристанища, защото Заключенията не са разположени подред, невъзможно е, с изключение на цикъла за свързване на вградената периферия. Използването на PIN блокове дава директно обратния резултат, освен че чрез стандартния джъмпер-джъмпер е лесно да се контролират всички сигнали отгоре, например логическа сонда Или осцилоскопът, не е нужно да се отказвате и да преброите страха от пристанището на пристанището случайно "да блокирате" заключения. Добавете тук максималната най-ниска и повторна употреба на тази връзка, защото е много по-лесно да сменяте контур или джъмпер от конектора, който да отговаря за таксата. Освен това, сега в продажба дори в нашия Outback можете да намерите такива части на съединителите (или да използвате от стари системни единици), което го прави лесен и бързо комбинира съединители (фиг.):


За звук се прилага обща папка с устойчивост на около 80 ома от Матлат. Сигналът не е много силен, но достатъчен за контрол (R23 и така избран на границата). Отделен ключ, който не съм поставил никой, който иска да го реконструира на места за наказуемата, определена като темп. Малък съвет - работа със звук, не забравяйте в края на процедурата, за да генерирате сигнал, за да поставите команда, която се вкарва в дневника. "0" Pd7 изход, в противен случай след спиране на генерирането може да остане "1" и ток Говорителят ще продължи да отиде, че не е добър за съображения за общото потребление на AVR-a.

На 4-битовия DIP превключвател SW4 се сглобяват логическите сигнали за портове. Тук ситуацията с номера е подобна на светодиодните светодиоди. Като Входовете на Avrov имат вътрешен плъгин съпротивление, съответно, "Lusceders", за да не се нуждаят от храна. Резисторите R18-R21 съдържат защита срещу грешки при случайно включване на MK портове на изхода. При одита на борда 1.03 и по-горе, превключвателят на DIP може да бъде заменен с джъмперите. Наскоро трябваше бързо да направя от JTAG лед. Във връзка с това кой REV 1.4 е въведен резистор RN1, който позволява на хардуера да образува лекция "1" на няколко входа на контролера. Ако не се нуждаете от нея - не можете да инсталирате RN1.

TACT на MK е избран от PIN-група CL_SEL и може да се извърши от външен кварцов резонатор Z1 (само JP37, JP38 е инсталиран), интегрален кварцов генератор G1 (16 MHz) или от разделител на: 2 и: 4. Така В допълнение към кварца, можете да излезете от процесора с честоти от 16, 8, 4 MHz. Можете лесно да оцените скоростта на отстраняване на грешки на програмата или да получите стандартна честота на часовника с запечатан специален. кварц. По принцип, при липса на txo тази честота Можете да приложите всеки друг генератор до 16 MHz. Генераторът може да ви бъде полезен, когато "повдигнете" MK поради неправилно мигаща FiOM микроконтролер, в този случай честотата на часовника не играе ролята.

RS-232 Конвертор на серийния интерфейс за UART е постоянен атрибут на повечето системи на AVR. Тук не е нужно да "преоткривате велосипеда", стандартният MAX232 е достатъчен. Участват само rx-tx сигнали, което е достатъчно за повечето приложения. Можете практически да свържете CTS-RTS за контрол на хардуерния поток без преработване на борда, гъвкави кабели на JP31-JP32 от песните. В схемата MAXIM MAX232, TI MAX232 и SIPEX SP3232 - поставете всички колеги се проверяват в maxim max232, ti max232.

Клавиатурата на външната матрица може да бъде направена на отделна дъска и да се свържете с MC Plumes (реших да се приложа от манипулаторите на мишката, като правило 2 MICRIKKA винаги има добро). На борда за отстраняване на грешки се инсталират двойни конектори за PS-2. Стандартната клавиатура на IBM PC е свързана без хардуерни подобрения, естествено с подходяща софтуерна поддръжка от AVR. Вторият конектор е свободен, използвайте по ваша преценка. Като правило, клавиатурата е много специфично нещо, в зависимост от дълга на протеитипа, така че след някои pondays реших да не поставя дори най-простите бутони на дъската. Ще изложа вашите дъски след окабеляването и тестовете им.

Индикаторът HL7 е зададен за експерименти с вграден хардуер PWM контролер.

Конекторът за интрахимно последователно програмиране X7 е направен в съответствие с STK-200. Силата на програмиста може да се избира селективно чрез JP43. В моя случай най-простият програмист от Ponyprog на 74-те буфер (LS, F) 244 се използва с свързване чрез LPT. Всичко беше проверено на Core2duo + I965Chipset, управлявано от XP SP2, не са възникнали проблеми. Програмистът се захранва чрез конектора за дебъгване и е удобен в експлоатация, защото Буфери в нормален режим "Go" до Z-статус и абсолютно не пречи на Fastavr. Свързването на JTAG адаптера за програмиране и отстраняване на грешки в реално време също е възможно без пречистване на борда през съответния линеен щифт на пристанището C.

Остава да се споменат още няколко необходими елемента:

Веригата на външното нулиране, която AVR има доста проста. Тя може да бъде изключена през JP42, въпреки че експлоатацията с програмиста не пречи на програмиста. Въвеждането на нулиране може да бъде препрограмиран през сливането като стандартен I / O порт и използван за периферия, но трябва да се помни, че в този случай вече не е възможно да се възстанови кристал през X7.

R27 променливия резистор, включен в потенциометъра, е оценител на напрежение за експерименти с вграден ADC, изходът от него може да се сервира на някой от аналоговите входове на MK. Малка забележка - Моля, обърнете внимание, ако не инсталирате този резистор по каквато и да е причина, не забравяйте, че ще jumper (на фиг. Сочи) за нормалното преминаване на общата гума GND!

Малко за Самоа пХБ. и дизайн. Както вече беше отбелязано, дъската е едностранна. Аз съм тестван 2 копия, направени от лазерно-желязна технология (един, когато печатате на фотохартия от кръстоса, а другият на базата на ключовете), така нататък Ако желаете, всичко трябва да се получи ;-) Ако мислите за снимки, страхотно! Правилата на джъмперите са разведени, като се вземат предвид "забранените зони" и използването на стандартни 16-пинови контури (бар от порт), дори когато свързвате един изключително наблизо. При липса на феритни кошове (аз се прилага от старите 286 matpal или burner монитори) можете спокойно да поставите джъмперите. Препоръчвам веднага при всички чипове да поставят панелите, за да не пушат таксата. Не забравяйте 2 джъмпери с ключове към индикатора HL6.

Но изглежда, че интерфейсът за проверка на TTL / CMOS логика, доколкото е възможно, ще се опитам да кажа какво се оказа.

Като цяло, таймерът има регистър за сравнение OCR **и когато стойността в таймера съвпада с стойността на регистъра за сравнение OCR **2 могат да възникнат неща:

  • Прекъсване
  • Промяна на състоянието на външно сравняване на изхода OC **

Сега можем да персонализираме Подлецкогато броячът заема стойността OCR **напрежение на избрания крак OC **промяна от 5 до 0. Когато таймерът поеме до края и започва да брои първо променете напрежението от 0 до 5, ние ще имаме правоъгълни импулси на изхода.

Има 3 режима на работаПодлец

Елз (Нулиране, когато съвпадението) - това може да се извика Chim.честотен импулсен сигнал за моделиране, когато таймерът отнема до стойността OCR **той се нулира и променя стойността OC **обратното. Така, уелнес Подлецвинаги същото.

Това се използва, когато трябва да преброите точните периоди или да генерирате прекъсвания в определено време.

Бърз PWM. (FAST PWM) - броячът вярва от 0 до 255, след което се нулира до 0.

Когато стойността на таймера съвпада с OCR **съответният изход се нулира до 0, когато нулирането е зададено 1.

Най-често се използва като обикновен Shim.

Фаза правилна pwm. (PWM с точна фаза) - в този режим, броячът разглежда от 0 до 255 и след това го счита в обратна посока до нула. При първото съвпадение с OCR **изходът се нулира до 0, с 2 съвпадения (когато броячът се върне), поставете 1.

Използвайте, за да не се застрелвате фазата, когато се променят митото.



Ако искаме да работим със заключението OC1A.ние поставяме битове Б. Com1a1 com1a0.
Като цяло, "/" означава или. TCNT1.= OCR1A.за Подлецна резултата OC1A.

Режим на работа на таймера / брояч - режим на таймера / брояч.

Горна част.- стойност на TCNT1, при която изходната стойност се променя OC **.

Знамето на TOV1 - при какви стойности е инсталиран малко от регистъра на GIFR

Изберете от последната таблица, която има нужда, не гледайте Горна част.. От 2 таблици изберете някоя от вторите опции. Остава само да постави необходимите битове в регистрите.

#Define f_cpu 8000000l #include #Include. Int main () (ddrd \u003d 0xff; ocr1a \u003d 0xc0; // сравнение с тази стойност OCR1b \u003d 0x40; // настройка на PWM и TCCR1A таймер | \u003d (1<CS10.поставете 1, той вярва с честотата на MK за това как да конфигурирате честотата на таймера


Нека се обърнем към изучаването на вградените таймери.
Прекъсването на ученето и особено таймерив микроконтролерите тя представлява известна трудност поради тяхната мултифункционалност. Днес ще се опитаме да разберем термините и имената.

В aVR микроконтролери Може да бъде от един до 4 таймера, осемцифрени или шестнадесетични.
Опростените таймери са обозначени с буквата t и броя от нула до три. Обикновено, дори T0 и T2 са осемкови и нечетни T1 и T3 с шестнадесет цифри. При програмиране опростената версия се използва само в коментарите и в програмите е предписано пълното име на таймера - регистъра на ТКНТ. По-долу са предназначени обозначения на таймери:

Таймери

T0, t2. - (TCNT0, TCNT2) осем-битови броячи (дори)
Tcntn.- Счетоводен регистър 8 от брояча на освобождаване от отговорност
Където; N-брой брояч

T1, t3. - (TCNT1N и TCNT1L, TCNT3H и TCNT3L) Шестнадесет цифри (нечетни)
Tcntny. - Регистър на сметките 16 от брояча за освобождаване от отговорност
Където; N-брой брояч
Y-старши (Н) или младши (L) освобождаване

T1 се състои от два осем-битови регистрите TCNT1N и TCNT1L., но
Т3 от два регистри TCNT3H и TCNT3L.. Писмо Х. обозначава старейшината и Л. Отчет

Като таймериса регистри, след това можете да се свържете с тях по всяко време, да прочетете, пишете, нулирайте и променете стойността.
Обявени специфични правила за записване и четене на TCNT1N и TCNT1L таймери.

1. Записване на програми и четене на таймерните данни трябва да бъдат атомни, т.е. Преди да четете или пишете, забраняваме прекъсванията и в края на процеса отново позволяват.
2. При запис, по-старият байт Н и тогава по-младият Л. се записва за първи път.
3. Когато четете, по-младият байт l след това старши H.
Например:
Записват данни в регистъра за броене.
CLI; Забранява прекъсването на TCNT1H, R16; Запис на по-стария байт TCNT1L, R17; Запис на по-младия байт SEI; Разрешаване на прекъсвания

Данни за четене от регистъра на броене
CLI; Забраняват прекъсванията в TCNT1L, R16; Четене на по-младия байт в TCNT1H, R17; Четене на старши SEI байт; Разрешаване на прекъсвания

Защо такива правила? И всичко, така че данните да не се изкривят по времето, което ще отиде на процеса на четене от всеки регистър.
Ако използвате директно четене 8-битови регистри TCNT1H и TCNT1L, тогава не можете да сте сигурни, че тези регистри се четат едновременно. Може да възникне следната ситуация: измервателният метър съдържа стойността от $ 01FF, която смятате за TCNT1H (съдържаща стойност 01 към някаква променлива). През това време дойде броят импулс, а съдържанието на TCNT1L стана $ 00, а стойността от $ 02 е записана в TCNT1H.

Сега прочетете стойността на TCNT1L на друга променлива, получавате стойността от $ 00 в тази променлива (в края на краищата, таймерът / брояч вече е направил сметка). 16-битовата стойност на тези променливи е $ 0100, но по време на четенето на по-стария байт съдържанието на брояча е $ 01FF и трябва да прочетете по-младия байт като FF. За да се предотврати такава ситуация, се използва временният регистър, съдържащ се в таймера / контра. Този регистър е прозрачен, т.е. Действа автоматично. Когато четете стойността на регистъра TCNT1L в променливата, съдържанието на TCNT1H попада в този регистър. След това, когато четете по-стария байт в променливата, стойността на регистъра на времето се чете. Временният регистър е абсолютно прозрачен за потребителя, но за правилната му работа е необходимо да се следва последователността на посочените по-горе действия. Обжалване на регистрите чрез допълнителен (буфер) регистър се нарича двойно буфериране

Таймерите са свързани с броене на импулсикоито могат да бъдат външни и да въведете специалния вход на чипа или да се оформят от техния собствен генератор. От своя страна, честотата на собствения й генератор може да бъде синхронизирана чрез външен кварцов резонатор и може да се определи чрез вътрешната RC схема. След това външната честота или честотата на собствения й генератор се съхранява от регистъра, управляван от регистъра Clkpr., Шофьорът на генератора след изследовател (Prescasher) CLKPR често се нарича часовник сигнал (часовник) на процесора (CPU).
Честота, предоставена на таймера за вход обозначен като CLKTN. Тази честота съответства на сигнала на часовника на процесора.
Един броя импулс увеличава стойността на таймера на единица, така че регистрите на TCNT са броени и наречен таймер / броячи (TC).
За правилната работа на таймера / метър на външен сигнал за часовник, минималното време между двата превключвателя на външния сигнал на часовника трябва да бъде най-малко един период на сигнала на CPU часовника. Синхронизиран външен часовник сигнал чрез увеличаване на предната част на вътрешния CPU часовник сигнал. (Трябва да се помни при изграждането на честотни измервателни уреди).
Таймер / регистър TCNT. е регистър TCCR..
Прекъсване на маската За таймер / брояч TCNT. Обслужва регистър Тимск. (Регистър за контрол на таймера за прекъсване).
Регистър на флаговете Timsk прекъсване маска - е регистърът на TIFR. Не забравяйте, че тези 3 регистри (TCCR, Timsk, TIFR) при работа / преброени TCNT се използват почти винаги.

Прекъсванията могат да бъдат призовани за преливане на регистъра на TCNT, сравняване на стойностите на регистъра на ТКНТ със стойността на специалните регистки за сравнение, улавяне - чрез стойностите на специалните ICR заснемащи регистри и се определят от режима на таймера / брояч . Освен това искането за прекъсване може да възникне при отговор wDT WDT на WatchDog WDT.

Таймерите / броячите могат да работят в различни режими и съответно да изпълняват различни функции.
Режимът на работа, т.е. поведението на таймера / брояча и изхода на съвпадението сигнал се определя като начин на работа на сигналите, контролирани от регистрите WGM02; WGM01; WGM00. (Съкратено записване WGM02: 0.) и изходния режим на съвпадения сигнал, контролиран от регистрите Soms0x1; Som0x0. (Съкратено записване Som0x1: 0.). Състоянието на битовете, на които зависи от изходния режим на съвпадение на сигнала, не влияе на последователността на преброяване, която се определя само от състоянието на конфигурационните битове на генератора на сигнала.

Бита Som0x1: 0. Определете дали PWM изходният сигнал трябва да бъде обърнат или не (обърнат или не обърнат PWM).
(PWM) модулация на импулса или модулация на импулсна ширина (PWM).
За не-PWM режими, съдържанието на битовете SOM на SOMS0X1: 0 определя дали изходният сигнал трябва да бъде инсталиран в единица, да се нулира до нула или да се прехвърли в противоположното състояние по време на съвпадението.

--
Благодаря за вниманието!
Игор Котов, главен редактор на списанието "DATGOROD"

Можете да направите стъпка, равна на една, тогава промените ще изглеждат така:
Плюс: RCALL закъснение; Преход към подпрограмата на закъснението на темп2; Отидете на една стъпка и проверете дали резултатът е нула Breq Plus_1; Ако е така, се обръщаме към правилния етикет Plus_1 RJMP; Награда на проучването на бутоните Plus_1: DEC2; Изваждаме уреда RJMP правилно; Върнете се в минус: бутони за забавяне на RCALL; Преход към подпрограма на закъснението на TEMP2; Отидете на една стъпка и проверете дали резултатът е нула Breq minus_1; Ако е така, се обръщаме към правилния етикет minus_1 rjmp; Връщане към бутоните minus_1: inc; Добавете RJMP правилна единица; Връщане към бутона за анкета

Поради дразненето на Avrstudio 5 и Attiny2313 микроконтролера, серията статии ще бъде пренаписана под atmelstudio6 и Atmega8 и Atmega16 микроконтролери. Извинявам се предварително за неудобството.