Направи си сам микросхема attiny2313 схема. Устройство за изтегляне на въздух ATtiny2313. Диапазон на захранващото напрежение

Тахометъризмерва скоростта на въртене на части, механизми и други компоненти на автомобила. Тахометърсе състои от 2 основни части - сензор, който измерва скоростта на въртене и дисплей, който ще показва стойностите. По принцип тахометърът се калибрира в обороти в минута.

Разбира се, можете да направите такова устройство сами; предлагам схема с AVR Attiny2313 микроконтролер. С такъв микроконтролер можете да получите 100 - 9990 rpm. , точността на измерване е +/-3 оборота в минута.

Характеристики на микроконтролера ATtiny2313

EEPROM 1 KB
Аналогови входове (ADC) 0
Входно напрежение (лимит) 5,5 волта
Входно напрежение (препоръчително) 4,5-5 волта
RAM 128 байта
Тактова честота 20 MHz
Флаш памет 2kB

Резистор с номинална стойност от 4,7 kOhm е инсталиран на щифт 11, не променяйте номиналната стойност, в противен случай сензорът ще започне да работи нестабилно, когато е включен в еднопроводна верига.

За разлика от други схеми, тук са използвани 4 транзистора и 4 резистора, като по този начин се опрости веригата.

Веригата има 8 сегмента във всеки символ, 5 mA всеки, общата сума ще бъде 40 mA, следователно няма голямо натоварване на портовете. Нека да разгледаме работните графики на устройството.

От графиките можете да видите, че токът може да достигне от 60 mA до 80 mA на щифтовия изход. За прецизна настройка трябва да изберете ограничителни резистори с номинална стойност 470 ома.

Изборът на дисплей не е критичен; изберете всеки четирицифрен светодиоден индикатор или го сглобете от отделни светодиоди. Използвайте червен индикатор, така че всичко да се вижда ясно на слънце. Оборотомерът се захранва от 12 волта.

Кварцовият резистор е избран на честота 8 MHz за точно и стабилно измерване. Входният филтър се използва за свързване към клемата на запалителната бобина.

Във фърмуера на ред 17 намерете следното.

17. #define byBladeCnt 2 //1 - две намотки, 2 - една намотка, 4 - мотоциклет...

Този параметър трябва да се промени, ако имате съветска кола, тогава го задайте на 2, ако имате мотоциклет, тогава го задайте на 4, а ако колата е със система за запалване с две намотки, тогава го задайте на 1.



Как да програмирате микроконтролери ATtiny2313? И така, имаме микроконтролер ATtiny2313, LPT порт (задължително железен - не работи USB-2-LPT), няколко проводника (не повече от 10 см дължина) и разбира се поялник. Препоръчително е да имате конектор DB-25M (мъжки), ще бъде по-удобно да свържете микроконтролер с него, но можете да го направите без него. Запояваме проводниците към щифтове 1, 10, 17, 18, 19, 20 на микроконтролера. Получаваме нещо подобно на снимката:


Направих го без конектор (само майките бяха налични...), и ето какво се случи:


Вярно, моят LPT порт е поставен на масата с помощта на кабел с дължина 1,5 метра. Но кабелът трябва да бъде екраниран, в противен случай ще има смущения, смущения и нищо няма да работи. Диаграмата на това устройство за програмиране на микроконтролер е следната:


За да бъда напълно честен, препоръчително е да сглобите „правилния“ програмист. И тогава ще бъде по-лесно и портът ще бъде непокътнат. Използвам STK200/300. След това използваме програмата PonyProg2000. След стартиране на програмата, тя ще "цвили..." като истинско пони. За да спрете да чувате това отново, поставете отметка в квадратчето „Деактивиране на звука“ в прозореца, който се показва. Натиснете "OK". Изскача прозорец, който казва, че трябва да калибрирате програмата. Има различни видове компютри, както бавни, така и бързи. Натиснете "OK". Изскача друг прозорец - това ни казва, че трябва да конфигурираме интерфейса (кой програмист и къде е свързан.). Така че отидете в менюто: Настройка -> Калибриране. В прозореца, който се появява:


Кликнете върху "ДА". Минават няколко секунди и програмата казва "Калибриране ОК". След това отидете в менюто: Настройка -> Настройка на интерфейса. В прозореца, който се показва, конфигурирайте го, както е показано на фигурата.


Сега отидете в менюто: Команда -> Опции на програмата. В прозореца, който се показва, конфигурирайте го, както е показано на фигурата.


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


1. Изберете "AVR micro" от списъка
2. От друг списък изберете "ATtiny2313"
3. Заредете файла на фърмуера (Файл -> Отваряне на файл на устройството), изберете желания файл, например “rm-1_full.hex”.
4. Щракнете върху бутона „Стартиране на програмен цикъл“. Когато програмирането приключи, програмата ще каже „Програмата е успешна“
5. И накрая, трябва да програмирате така наречените предпазители. За да направите това, щракнете върху бутона „Битове за сигурност и конфигурация“. В прозореца, който се показва, щракнете върху „Четене“, след това поставете отметки в квадратчетата и щракнете върху „Писане“.

ВНИМАНИЕ! Ако не знаете какво означава определен конфигурационен бит, не го докосвайте. Сега имаме контролера ATtiny2313, готов за употреба! От форума можете да изтеглите програмата PonyProg2000 и оригиналната статия с допълнителни снимки. Материалите за уебсайта на Radio Circuit бяха предоставени от Ansel73.

AVR RISC архитектура:

RISC (Компютър с намален набор от инструкции). Тази архитектура има голям набор от инструкции, повечето от които се изпълняват в 1 машинен цикъл. От това следва, че в сравнение с предишните микроконтролери, базирани на CISC архитектура (например MCS51), RISC микроконтролерите са 12 пъти по-бързи.

Или ако вземем определено ниво на производителност като основа, тогава за да изпълним това условие, микроконтролерите, базирани на RISC (Attiny2313), изискват 12 пъти по-ниска тактова честота на генератора, което води до значително намаляване на консумацията на енергия. В тази връзка става възможно да се проектират различни устройства на Attiny2313, използвайки захранване от батерията.

Оперативно устройство за съхранение (RAM) и енергонезависима памет на данни и програми:

  • 2 KB самопрограмируема Flash програмна памет, която може да осигури 10 000 повторения за запис/изтриване.
  • 128 байта EEPROM записваема памет за данни, която може да осигури 100 000 повторения за запис/изтриване.
  • 128 байта SRAM памет (RAM само за четене).
  • Възможно е да използвате функцията за защита на програмен код и EEPROM данни.

Периферни свойства:

  1. Микроконтролер Атини2313оборудван с осембитов таймер-брояч с отделно монтиран прескалер с максимален коефициент 256.
  2. Има и шестнадесет-битов таймер-брояч с отделен предскалер, верига за улавяне и сравнение. Таймер-броячът може да се тактува или от външен източник на сигнал, или от вътрешен.
  3. Два канала. Има режим на работа на бърза PWM модулация и PWM с фазова корекция.
  4. Вътрешен аналогов компаратор.
  5. Таймер за наблюдение (програмируем) с вътрешен осцилатор.
  6. Сериен универсален интерфейс (USI).

Специални технически индикатори на Attiny2313:


  • Празен— Режим на неактивност. В този случай само централния процесор спира да работи. Неактивността няма ефект върху SPI, аналоговия компаратор, A/D преобразувателя, таймера на брояча, наблюдателното куче или системата за прекъсване. Всъщност спира само синхронизирането на ядрото на процесора и флаш паметта. Микроконтролерът Attiny2313 се връща към нормална работа от режим на неактивност чрез външно или вътрешно прекъсване.
  • Изключване— Най-икономичният режим, при който микроконтролерът Attiny2313 действително е изключен от потребление на енергия. В това състояние тактовият генератор спира и всички периферни устройства се изключват. Остава активен само модулът за обработка на прекъсвания от външен източник. Когато бъде открито прекъсване, микроконтролерът Attiny2313 излиза от режим на изключване и се връща към нормална работа.
  • в готовност– микроконтролерът превключва в този режим на готовност за консумация на енергия с помощта на командата SLEE. Това е подобно на изключване, като единствената разлика е, че часовникът продължава да работи.

Входно-изходни портове на микроконтролера Attiny2313:

Микроконтролерът е снабден с 18 I/O пина, които могат да бъдат програмирани въз основа на нуждите, които възникват при проектирането на конкретно устройство. Изходните буфери на тези портове могат да издържат на относително големи натоварвания.

  • Порт A (PA2 - PA0) – 3 бита. Двупосочен входно-изходен порт с програмируеми издърпващи резистори.
  • Порт B (PB7 - PB0) – 8 бита. Двупосочен входно-изходен порт с програмируеми издърпващи резистори.
  • Порт D (PD6 - PD0) – 7 бита. Двупосочен входно-изходен порт с програмируеми издърпващи резистори.

Диапазон на захранващото напрежение:

Микроконтролерът работи успешно със захранващо напрежение от 1,8 до 5,5 волта. Консумацията на ток зависи от режима на работа на контролера:

Активен режим:

  • 20 µA при тактова честота 32 kHz и захранващо напрежение 1,8 волта.
  • 300 µA при тактова честота 1 MHz и захранващо напрежение 1,8 волта.

Режим на пестене на енергия:

  • 0,5 µA при захранващо напрежение 1,8 волта.

(3,6 Mb, изтеглени: 5 934)

Как да сглобите проста схема, как да свържете програмист към микроконтролер ATtiny2313, как да напишете проста програма на C и как да флашнете микроконтролер ATtiny2313 с нашата програма, ще намерите всичко това в тази статия.

Първо имаме нужда от програмист, има много видове програмисти, кой програмист да изберем?
Има обикновени програмисти, в които трябва да поставите микроконтролер, да го флашнете, да премахнете микроконтролера и след това да го поставите в нашата платка, за да видите резултата, и тази последователност ще трябва да се направи стотици пъти в началото, тази опция, в моя мнение, не е удобно.
Нашият микроконтролер ATtiny2313Поддържа ISP (вътрешносистемно програмиране) функция чрез SPI порт, този случай на използване на вътрешносхемно програмиране интернет доставчикспоред мен най-удобно и бързо, защото... Няма нужда да премахвате микроконтролера от нашата платка след всяка актуализация на фърмуера; можете да програмирате микроконтролера стотици пъти и веднага, без да изключвате програмиста от компютъра и платката, да видите резултата след мигане на микроконтролера софтуерът на радиолюбителското устройство е значително опростен и времето, прекарано в това, е намалено.
Можете сами да направите вътрешен ISP програматор, в интернет има много прости схеми за това как да направите това чрез LPT или COM порт, например програматор; PonyProgВ интернет можете да намерите схеми как да го направите.

Тази статия ще обсъди работата с вътрешен ISP програмист за микроконтролери AVR (PX-400)работи през COM порт.
Ако нямате COM порт на компютъра си, ще ви трябва и адаптер от USB порт към COM порт, има и много разновидности на такива адаптери, препоръчвам адаптера, с който работих: Платка за преобразуване на USB към сериен порт UCON-232S
Снимка на програмиста PX-400, адаптер UCON-232S USB , Лист с данни ATTiny2313

Нека разгледаме по-отблизо всички подробности на тази схема:
(За всеки случай купих всички части, програмист, адаптер (от USB към COM порт) в chipdip.ru)

1 - PBD-20 букса за платка 2.54mm 2x10 права- Направих това за удобство, за да улесня проверката на сигналите от щифтовете на микроконтролера; тази точка не може да бъде направена.
2 - SCS-20 DIP панел 20 пина- запояваме панела към платката, така че да е възможно да сменим микроконтролера в платката, ако е необходимо,
ATtiny2313-20PU, DIP20, MCU, 5V, 1K-Flash, 12MHz- Вмъкваме микроконтролера в DIP панела.
3 - Кварцов кристал 4.000 MHz (пресечен) HC-49S- Кварцов кристал 4 MHz
4 - Керамичен кондензатор K10-17B имп. 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 Ohm- Три резистора 150 Ohm на щифтовете MISO, SCK, MOSI
10 - Постоянно съпротивление 0.25W 47 Ohm- Един 47 Ohm резистор на RESET щифт
11 - Тактов бутон h=5mm, TC-0103 (TS-A2PS-130)- Бутон RESET, след натискане на бутона програмата в микроконтролера тръгва отначало, възможно е бутонът да е пропуснат.
12 - Зелен светодиод d=3mm, 2.5V, 2mA - Изпълнява функцията на индикатор, тази позиция не може да се направи.
13 - Постоянно съпротивление 0.25W 110 Ohm- Резистор за светодиода, така че да има 2V на светодиода, тази стъпка не може да бъде направена
14 - Два проводника, свързани към светодиода, за проверка на сигналите от щифтовете на микроконтролера, тази стъпка не може да бъде извършена
15 - Печатен макет Dip-RM 100x100 мм

Точки 3 и 4 Работят като единична единица, като външен тактов генератор, тези точки могат да бъдат пропуснати, ако не поставяте високи изисквания към точността и стабилността на вътрешния RC осцилатор, вътрешният RC осцилатор има грешка от около 10% и точността може да бъде повлияна от промяна на температурата.

Така че сте изтеглили и инсталирали Atmel Studio:
Да стартираме Atmel Studioи напишете най-простата програма на език C, като мига светодиод:
Щракнете: Нов проект... \ AVR GCC \ C \ C Изпълним проект
Посочете папката, където да запишете проекта и името на проекта, например Test1, и щракнете върху OK.
От списъка изберете нашия микроконтролер ATtiny2313 и щракнете върху OK.
Изтриваме всичко, което се появява в прозореца и поставяме нашия програмен код по-долу:

#define F_CPU 4000000L //Посочете честотата на нашия външен кварц 4 MHz
#включи
#включи
int main(void)
{
//Задайте всички PORTB пинове като изходи
DDRB=0xFF;//Регистър на посоката на пренос на информация (1-изход, 0-вход)
докато (1)
{
//Регистър на данни PORTB (използван за извеждане на информация)
PORTB=0b00000001;//Поставяме 1 към порт 12 на MK PB0 - включете светодиода
PORTB=0b00000000;//Приложете 0 към порт 12 на MK PB0 - изключете светодиода
_delay_ms(1000);//Забавяне 1 сек.
}
}

Отидете в менюто Build\Configuration Manager\Active solution configuration\
Избирам Освобождаване, Натиснете Близо
Направихме това, за да можем да имаме папка в проекта Освобождаване, за които ще говоря по-долу.

Кликнете F7, готово, нашето приложение е компилирано!
За да флашваме фърмуера на микроконтролера ATtiny2313, имаме нужда само от един файл с разширение HEX
Намира се в папката на нашия проект: ...
Моля, обърнете внимание на файла Test1.hexпросто го вземете от папката Освобождаване !
Не се бъркайте, защото... папка Отстраняване на грешкиима и файл Test1.hex, но този файл все още съдържа информация за отстраняване на грешки и поради това няма да можете да флашвате с този файл, защото. обикновено е голям и няма да се побере в паметта на MK.

Намерихме .hex файла, сега имаме нужда от програма за флашване на микроконтролера ATtiny2313, има много такива програми, но ние ще използваме програмата: Avr-Osp II
Изтегли:

Свързваме програмиста към нашата верига и не забравяйте да захранвате веригата!

Стартирайте програмата Avr-Osp II, посочете пътя до файла в секцията FLASH... \Test1\Test1\Release\Test1.hex, отметнете квадратчетата в програмата и натиснете бутона програматова е всичко, микроконтролер ATtiny2313 е флашнат!

Какво е предимството на вградените ISP програмисти? Сега, без да изключвате кабелите от нашата верига, можете да правите промени в програмата и, както е описано по-горе, да мигате микроконтролера и веднага да видите резултата.

Моля, оставяйте въпроси и коментари в нашия форум

Много домакински уреди и устройства за индустриална автоматизация от сравнително скорошни години на производство имат инсталирани механични броячи. Това са продукти на конвейерна лента, навивки на тел в машини за навиване и др. В случай на повреда намирането на подобен измервателен уред не е лесно и е невъзможно да се ремонтира поради липсата на резервни части. Авторът предлага да се замени механичният брояч с електронен. Електронен брояч, разработен да замени механичен, се оказва твърде сложен, ако е изграден върху микросхеми с ниска и средна степен на интеграция (например серията K176, K561). особено ако е необходима обратна сметка. И за да се запази резултатът при изключване на захранването е необходимо да се осигури резервна батерия.

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

Предложеният брояч използва микроконтролера Attiny2313 от семейството AVR от Almel. Устройството реализира обратно броене, показвайки резултата с отмяна на незначителните

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

Веригата на брояча е показана на фигурата. Шест линии на порт B (РВ2-РВ7) и пет линии на порт D (PDO, PD1, PD4-PD6) се използват за организиране на динамична индикация на резултата от броенето на светодиодния индикатор HL1. Колекторните товари на фототранзисторите VT1 и VT2 са резистори, вградени в микроконтролера и активирани от софтуер, който свързва съответните щифтове на микроконтролера към неговата захранваща верига.

Увеличаване на резултата от броенето N с единица възниква в момента, в който се прекъсва оптичната връзка между излъчващия диод VD1 и фототранзистора VT1, което създава нарастваща разлика в нивата на входа INT0 на микроконтролера. В този случай нивото на входа INT1 трябва да е ниско, т.е. фототранзисторът VT2 трябва да бъде осветен от излъчващия диод VD2. В момента на нарастване на диференциала на вход INT1 и ниско ниво на вход INT0, резултатът ще намалее с единица. Други комбинации от нива и техните разлики на входовете INT0 и INT1 не променят резултата от броенето.

След като се достигне максималната стойност от 9999, броенето продължава от нула. Изваждането на единица от нулевата стойност дава резултат 9999. Ако обратното броене не е необходимо, можете да изключите излъчващия диод VD2 и фототранзистора VT2 от брояча и да свържете входа INT1 на микроконтролера към общия проводник. Броят само ще продължи да се увеличава.

Както вече споменахме, детекторът за намаляване на захранващото напрежение е аналоговият компаратор, вграден в микроконтролера. Той сравнява нестабилизираното напрежение на изхода на токоизправителя (диоден мост VD3) със стабилизираното напрежение на изхода на вградения стабилизатор DA1. Програмата циклично проверява състоянието на компаратора. След изключване на измервателния уред от мрежата, напрежението на токоизправителния филтърен кондензатор C1 пада и стабилизираното напрежение остава непроменено за известно време. Резисторите R2-R4 се избират, както следва. че състоянието на компаратора в тази ситуация е обърнато. След като установи това, програмата успява да запише текущия резултат от броенето в EEPROM на микроконтролера дори преди той да спре да функционира поради изключване на захранването. Следващият път, когато го включите, програмата ще прочете номера, изписан в EERROM, и ще го покаже на индикатора. Броенето ще продължи от тази стойност.

Поради ограничения брой пинове на микроконтролера, за свързване на бутона SB1, който нулира брояча, е използван пин 13, който служи като инвертиращ аналогов вход на компаратора (AIM) и същевременно като „цифров“ вход на PB1. Делителят на напрежението (резистори R4, R5) тук задава нивото, възприемано от микроконтролера като високо логично, когато натиснете бутона SB1, то ще стане ниско. Това няма да повлияе на състоянието на компаратора, тъй като напрежението на входа AIN0 все още е по-голямо от това на AIN1.

При натискане на бутона SB1 програмата извежда знак минус във всички цифри на индикатора, а след отпускането му започва да брои от нула. Ако изключите захранването на глюкомера, докато бутонът е натиснат, текущият резултат няма да бъде записан в EEPROM и стойността, съхранена там, ще остане същата.

Програмата е проектирана по такъв начин, че да може лесно да се адаптира към измервателен уред с други индикатори (например с общи катоди), с различно оформление на печатната платка и т.н. Лека корекция на програмата ще е необходима и когато използване на кварцов резонатор за честота, която се различава с повече от 1 MHz от зададената.

Когато напрежението на източника е 15 V, измерете напрежението на щифтове 12 и 13 на панела на микроконтролера спрямо общия проводник (щифт 10). Първият трябва да бъде в диапазона 4...4,5 V, а вторият трябва да бъде повече от 3,5 V, но по-малко от първия. След това напрежението на източника постепенно се намалява. Когато падне до 9 ... 10 V, разликата в стойностите на напрежението на щифтове 12 и 13 трябва да стане нула и след това да промени знака.

Сега можете да инсталирате програмирания микроконтролер в панела, да свържете трансформатора и да подадете мрежово напрежение към него. След 1,5...2 s трябва да натиснете бутона SB1. Индикаторът на брояча ще покаже числото 0. Ако на индикатора не се покаже нищо, проверете отново стойностите на напрежението на входовете AIN0.AIN1 на микроконтролера. Първото трябва да е по-голямо от второто.

Когато броячът е стартиран успешно, остава само да се провери правилността на преброяването чрез последователно засенчване на фототранзисторите с плоча, непрозрачна за инфрачервени лъчи. За по-голям контраст е препоръчително да покриете индикаторите с червен филтър от органично стъкло.