ПредишенСледващото

Най-простият часовника на AVR

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

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

Всичко, което трябва - да се свърже semisegmentnik в динамичен режим на дисплей, два бутона, за да настроите часовете и минутите и часовете, за да организирате.

Щях да забравя! Ние трябва да направим резервно захранване на захранването, когато часовникът не се изключи, но изключите дисплея и консумация се намалява до минимум.

Схемата имам това:

дисплей Общата-анод, аноди са свързани директно към mikokontrollera пристанищния С, сегменти резистори сложих 220 ома, може да бъде още по-малко е повече, през нощта е много светъл блясък (т.е. може да бъде по-малък, но не по-малко от 100 ома, а след това на всяко стъпало на пристанището ще се зареди 35mA максимум, а е възможно 40mA) на листа с данни. Неправилно брои. Тя трябва да е повече. Много повече ... Аз преправени до 560 ома, а напрежението е по-голямо от листа с данни. Но тя работи.
Q1 транзистор е детектор на напрежение. Той, както и един бутон, свързан с външно прекъсване линии, в ATmega16 има само три са.

Часове са организирани с помощта на асинхронен режим таймер 2. В този режим на таймера е с тактова честота от външен кварц при 32 768 Hz и спира на микроконтролера в спящ режим, който ще използваме, когато работното време на резервно захранване.

Сега анализираме кода:
Динамично показване използва Timer0, часовникът на таймер 2, бутоните на външно прекъсване и INT0 INT1, контролира захранването на външно прекъсване Int2.
Основната линия е оставено само време за реализацията на BCD и грижи в зимен сън, и Bin2BCD разполагат специално намалена, защото минутите и часовете, не е повече от 100, това означава, че няма смисъл да го проверите на 10 000, 1000 и 100.
Сама по себе си функция на времето е взет от AVR ApNote134 и нарязани на необходимия размер.
Монтаж в часове и минути се поставя на първо място в обработката прекъсване на секунди брояч, след това реших, че стъпката от една секунда - е твърде бавен и се премества в манипулатор динамичен дисплей, бране емпирично размера на преливник таймер корекция за нормална скорост.


Първо, аз се съберат оформление на Pinboard2:

Най-простият часовника на AVR

Най-простият часовника на AVR

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

Рокля прави плячка. Ламинатори първи път се опита, но очевидно, температурата на 170 градуса не беше достатъчно и се обърна лошо. Така направи и старомоден желязо. В тази карта за първи път прекарва две парчета под резистора 1206. Както можете да видите, се оказа добре.

В Fyuz трябва да изложи вътрешния RC-осцилатор 4 или 8 MHz и деактивиране JTAG.

И, както обикновено, няколко снимки:

Най-простият часовника на AVR

Най-простият часовника на AVR

Най-простият часовника на AVR

В прикачен файл, източник, файлът верига за Протей симулация на фърмуера.

UPD: Lodging в организма:

Най-простият часовника на AVR

Взех една кутия от ароматизатори за коли на. По показател засадени антистатични чанта в един слой.
Между другото, на параметрите на делител на напрежение сонда в крайна сметка се обърнаха 39kOm и 6.2kOm.
END_UPD

+5V на всеки щифт (по-добре INT) чрез резистор (чисто за защита 1-10k). Не е надеждно решение. В AVR щифтове - TS с праг от около 1.5V. Чуваш ли какво означава това? Освобождаване от отговорност за батерии.
Ако захранващото напрежение на 5V да падне до точка

3V, а след това властта ще идва от батерията. В този случай, кондензатор на входа ще бъде много бавен разряд чрез MC пин е конфигуриран да вход (и би било по-добре да се вдигне, че не е конфигуриран). И заедно с него, и резервната батерия.
Най-малко един разделител резистор или изкуствен товар за контейнери под нивото на пътуване на изхвърлянето (В тази схема, те служат разделител в базовата верига).

Дори през този делител е индикатор увреждания е само една-две секунди след изключване на външното захранване. Затова си помислих да сравнителен продукт.

Това е достатъчно, за да се намали леко рейтинги. Да се ​​каже, 4.7k + 1 k. След това, когато на базата от 3 волта е 0.5V или по-малко, а след това ще има достатъчно, за да се превърне на транзистора. В режим на работа, на ток през основата не е privysit еднаma, боят нищо. И след като милиампера на захранването не е толкова критично, тъй като осветлението консумира много повече.
Като цяло за сравнение - е излишно. Просто съответства резистор стойности за безопасно изключване 3B (и при желание 4-3.5V, т.е. пространство на разположение).
Единственият проблем, който виждам с осветлението изключено напрежението се е повишила до известна степен -> отново активира подсветката -> отново падна ... (ROB голям Conder и кабелите не са идеални).

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

На първо място, сега има праг. Не, че сега ампутация на 1В и един волт се достига по-бързо, защото там вече е определен хранене за освобождаване от отговорност верига vvide разделител в основата (или по-точно резистор и база преход).
И трето, не можете да включите през резистор и разделител и увеличаване на горната граница да е желаната стойност. Забрави за хистерезиса в IC щифтове. В усилията си за постигане на високо ниво на напрежение, за да изключите осветлението, ще получите отказ за включването му с появата на властта.
В текущата версия, разбира се prisutvtuet "drebizg", и това може да е проблем, но от него има някаква защита под формата на самото gistirezisa щифт. Малки колебания трябва да неутрализират, от големи, за да се осигури стартиране на забавяне.
Транзисторът не е излишно :)

В момента има прекъсване при 1V Има разделител 1: 1, на прага на напрежение на транзистора - около 0.7V - 1.4V се обръща. Load (или друг бързото изпразване на захранващата електрическа верига) - да, наистина го мисля, но аз забравих да кажа за него.
Забрави за хистерезиса в IC щифтове. В усилията си за постигане на високо ниво на напрежение, за да изключите осветлението, ще получите отказ за включването му с появата на властта. Хистерезис, доколкото си спомням, не е достатъчно голям, за да се предотврати надеждно превключване щифт при смяна на напрежението между 3V и 5V.

Е, нека да разгледаме. Аз съм тук, за да бездомно фиш ATtiny2313 (което е неудобно с технически спецификации на СЖП, фиг ще намерите това, което ви трябва).
В съответствие с него, за това, което ще бъде сведен до нула, когато захранването 3B ние трябва да се 0.9V на ПИН за ниско ниво, което може да бъде максимум 0.3Vcc - от този момент нататък, не мога да пиша :)
Т.е. каквото и сплитера да се получи ниска от 0.3Vcc (максимално ниво нула), ние никога няма да използва същия този разделител не се 0.6Vcc (минимално ниво единица).

какви са неудобни техническите паспорти на СЖП, фиг ще намерите това, което трябва И това е вярно. И в глупости (истината, предварителен) на megu16 необходимите данни не е дори (макар и глупости на tini13 Намерих ги точно).
Но вие не сте на външния вид dennye. Това са насоки за нивата на логиката на цифровия сигнал, тъй като ние се интересуваме от конкретните параметри на TS за вход щифт.
В листа с данни на ATMEGA8A вече разполагате с тези данни. Фигури 26-37..26-39. горния праг

2.2V, 0.45V хистерезис. Въпреки това, те са обвързани с захранващото напрежение (странно, и изглежда, че не са обвързани с фиш за tini13 мен), това вече усложнява задачата. За да се прави разлика между 3V и 5V делител ще трябва да се направи от диод ценерови и резистор да 2В. Или озадачи бързото изхвърляне на външното захранване и не се притеснява да се разграничението между 3V и 5V на всички (sobsna сега е така, независимо от транзистора).

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

Свързани статии

Подкрепете проекта - споделете линка, благодаря!