Архив по категории учим мк avr Category

 avr cd4094 аналоговый 1wire

Апрель 11, 2010

Просматривая немецкий форум по мк, я наткнулся на пример кода управления регистром по одному проводу. Тут ананимус подумает, что рс232  и так по одному проводу работает и dallas 1wire тоже. Но для рс232 нужен кварц и специальная мс, а dallas - вообще есть только в готовых мелкасхемах и требует жесткие тайминги.

В нашем же случае все куда проще.

1w4094

Дабы много букв 2 раза не писать, лучше почитать уже готовую статью.
Я только перевел асм код в си, основываясь на своем коде. Самое главное у нас - чтобы напряжение на конденсаторе в момент переднего фронта было равно лог1, что соответствует примерно 3.5в. В этот момент у нас передается единица. Как видно из осциллограммы, 2 точки синей линией имеют 3.78в.

osc

Рассчеты мне лень приводить, т.к. там много матана. Элементы довольно критичны, если не использовать задержки в коде. У меня 2 конденсатора - керамический и пленочный на 10н, но на пленочном в реале уже не работает, т.к. емкость его видать отличается. Резистор 800ом. Изначально в схеме стоит 1к и 10н для частоты 1мгц.

Какие изменения в коде?

#define CD4094_CLK            {CD4094_DATA_OFF; CD4094_DATA_ON} сначала мы ставим 0, потом 1. Если будет глючить, то надо ввести паузу 1-2мкс.

CD4094_DDR = (1<<CD4094_PIN_DATA);
CD4094_PORT = (1<<CD4094_PIN_DATA);

Вывод ставят в 1 для зарядки конденсатора. Хотя если ставить в 0, то тоже все работает. Единственное, что тут надо - не забыть прогнать нули по регистрам для инициализации.

Где можно применить такую схему?
Т.к. такой вариант включения регистров является нетипичным и параметры рц цепить будут плыть от температуры, то схема годна только для домашнего использования в устройствах расширения портов с некритичным состоянием. Например для подключения 8-16 светодиодов. У меня работает нормально на 3 индикатора. Так же схема критична к повышению частоты мк.

В последних номерах “радио” за 2009 была схема вольтметра на тини15 с такой схемой включения, только там вместо регистра был индикатор от телефона, который управляется по 2м проводам.

 7 seg динамическая индикация

Март 15, 2010

Как и обещал - в этом уроке будет рассмотрен один пример динамической индикации на 4 разряда без дополнительных деталей.
Плюсы этого метода в том, что можно сократить количество выводов у модуля индикации. Минусы - постоянно занят 1 таймер, схема генерирует помехи, целый порт уходит на сегменты. Использовать динамическую индикацию выгодно начиная с 3-4х разрядов.

 

 управление 3мя регистрами cd4094 по двум проводам

Февраль 22, 2010

 100_0511

В этот раз речь пойдет о управлении целой платой с регистрами типа cd4094, включенными последовательно. Код остался тот же, только немного увеличился в соответствии с индикаторами.

 управление регистрами 74hc595 и 4094 с 7 сегментными индикаторами

Февраль 21, 2010

proteus_register

Иногда возникает задача, когда не хватает выводов для светодиодов или индикаторов, вобщем там, где требуется что-то задействовать из дискретных исполнительных или указательных устройств в большом количестве. Для этого используются расширители портов на регистрах.

Tags: , ,

категория: учим мк avr, 3 каментов

 avr 7 segment display

Январь 30, 2010

В последнее время на форумах видел много тем по подключению светодиодных индикаторов к контроллеру, но не все знают, как управлять индикатором. Типичная ошибка - это непонимание принципа организации сегментов. На самом деле не надо конвертировать десятичные числа в формат bcd и не надо цеплять внешние декодеры. Контроллер много умнее.
Чтобы зажигать цифры, надо представить, что мы подключили к контроллеру обычные светодиоды. В определенные моменты нам надо одновременно зажигать определенные светодиоды. Для этого есть некая договоренность, как распологать эти диоды.

 7seg_pinouts

Сегменты обозначаются буквами от a до h, причем последняя обозначает точку (в данном случае это буква р). Порядок букв идет справа налево. Если надо зажечь сегмент, то под буквой ставим 1. Как видно, сегмент h во всех цифрах выключен. Однако в процессе мы разсмотрим, как его включить в нужный момент.

Tags: ,

категория: учим мк avr, без каментов

 2 урока для старта

Ноябрь 25, 2009

Писалось давно. Включает в себя основы по сям, как понимать типы переменных, битовые операции, системы счисления и кодирования. Так же есть пример работы с лпт портом для зажигания светодиодов через драйвер.
скачать

Tags: ,

категория: учим мк avr, 1 камент

 arduino

Апрель 12, 2009

Что-то давно ничего технического не писал. Посмотрел у http://olga-the-dark.livejournal.com/224158.html про быдлокодеров и желание поковырять мк. Она там упоминает ардуино, который я видел давненько, когда он еще не был так распеарен.
Посмотрел и как-то случайно нашел там код для управления простыми модулями. А кода такого нет во всем инторнете. Где он был, там уже сплыл.
А тут как раз код есть и вообще куча примеров и готовых библиотек.. Фимозники с аврфрика, что делают винавр, до сих пор не написали стандартных либ для работы с разной периферией и шинами. Типа каждый должен писать свой код, а мы только минимум даем.
А вот у ардуинщиков все есть.

Стал я значит компилить готовый код приемника и передатчика и ахуел. Он не влазит даже в 2кб, а я надеялся воткнуть в 1к в тини13, коих вчера аж 20 штук купил.
Кроме того, вся иде сдалана через жопу и нет кнопки тупо скомпилить. Есть кнопка заливки сразу в плату. При нажатии на нее вся прога зависает, ибо платы у меня нет.
И нельзя выставить свой мк, а только мега 8 или 168. Скомпилировавшийся код ни под 8, ни под 168 не работает.
Даже самый простой пример вывода юарт и тот выводит нули. Или это новый протеус тупит? Хотя примеры из самого протеуса работают.

Короче не хотит работать этот код. Придется переделывать код из ардуино в нормальный с код без обвязки.
И функций там что-то дахуя лишних. Все эти установки надо делать дефайнами, а не функциями.

2009 год, а до сих пор нет нормальных инструментов и библиотек.
Посему не юзайте ардуино иде. Она привязана к платам и дорогим мк. Юзайте авр гцц или иар под свои платы.

Кстати о платах. Скоро займусь проектированием разных плат под разные мк с минимумом универсальной обвязки. Плата будет вставляться в breadboard. Так же туда же будут вставляться другие платы при помощи шлейфов. Потом все это будет соединяться специальными проводками со штырьками. А то бывают фотки, где все проводами окутано и ничего не понять.

категория: учим мк avr, 12 каментов

 #8 счетчики

Сентябрь 11, 2008

Как уже говорилось в предыдущей части, счетчики являются одними из главных частей любого мк и позволяются отсчитывать время и запускать процессы.
Счетчики имеют несколько разных режимов, которые включаются соответствующим битами в определенных регистрах. Описывать все регистры тут не имеет смысла, ибо есть даташит.
Следует описать возможности и варианты применения счетчика в конкретных случаях.
Самый простой случай

 #7 прерывания

Сентябрь 9, 2008

Основа любого мк. Что такое прерывание?
Само слово говорит за себя. Программа состоит из 2х частей: главной функции main и кусков кода, называемых обработчиками прерываний.
Когда срабатывает прерывание, то прерывается главная программа, и выполняется код в обработчике прерывания. Когда он выполнился, то программа продолжает работать с той точки, где она остановилась.
Прерывания можно сравнить с обычной жизнью.
Главная программа обычной офисной крысы - сидеть за компом и делать вид усердной работы, копипастя в жежешечку очередной баян.
Каждодневная рутина.
Однако время от времени звонит шеф и просит посмотреть его комп.

 #6 внутренности мк

Сентябрь 8, 2008

Image Hosted by ImageShack.us
Сразу должен сказать, что назначение и работу некоторых блоков я представляю себе плохо и поэтому писать про нее не буду особо. При работе на си оно и не надо.
МК состоит из нескольких главных блоков:
озу
пзу
алу
шина
периферия