AVR. Учебный курс. Операционная система. Диспетчер задач.

Автор DI HALT
Опубликовано 30 марта 2009 
Рубрики: AVR. Учебный курс
Метки: , ,

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

Общая диаграмма работы ОС

Что из себя представляет задача
Это практически то же самое, что и процедура, вызываемая командой RCALL с тремя отличиями:

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

Комментариев (33)

Управление семисегментными индикаторами по одному проводу

Автор DI HALT
Опубликовано 26 марта 2009 
Рубрики: Начинающим
Метки: , , ,

Часто бывает ситуация, когда надо выполнить простую задачу с которой справится даже грошовый контроллер вроде ATTiny12, но вот незадача - нужна индикация, а под какой нибудь семисегментный индикатор придется убить дофига выводов, а их всего восемь, из которых два питание, а один Reset. Можно, конечно, взять просто МК потолще, но мне больше по душе разные схемотехнические извраты. Вот и тут камрад Kalobyte подкинул ссылку на прикольную схему управления тройным (а в перспективе хоть десятерным) семисегментным индикатором по одному проводу.

Индикатор зажигается посредством сдвигового регистра 74HC164, всего таких регистров можно навесить очень много, просто соединив по цепи несколько регистров. Если отбросить RESET, то для проталкивания данных в регистр нужны две линии - Data и Clock. Путем небольшого изврата можно эти две линии обьединить в одну.
Читать полностью

Комментариев (88)

Немного про наводки

Автор DI HALT
Опубликовано 23 марта 2009 
Рубрики: Начинающим
Метки: ,

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

Именно поэтому не следует оставлять висеть просто так выводы микроконтроллеров. Их нужно либо изнутри (конфигурацией DDR или аналогов) либо снаружи подтягивать до единицы или до нуля. Чтобы не болтались. Да, надо еще добавить, что вот так вот хаотично болтаясь, вывод генерирует множественные переключения внутренних ключей, а значит, потребляет больше энергии, создает микроброски напряжения в цепи питания. Как следствие хаотичного снижения и повышения энергопотребления. Про самопроизвольную генерацию всяких событий вроде прерываний (если они не выключены) я и не говорю. Также такое вихляние напряжения на выводе при включении может стать причиной так называемой тиристорной защелки. Когда транзисторы на выходе заклинивает в открытом состоянии, образуется внутрикристальное короткое замыкание. При этом микросхема начинает греться как утюг и чаще всего сгорает. Из защелки выход только один - вырубить питание.

Комментариев (19)

Настольные тисы Proxxon

Автор DI HALT
Опубликовано 22 марта 2009 
Рубрики: Инструмент
Метки:

По наводке Elementus’а. Обзавелся на днях замечательной вещью - настольными тисочками от немецкой фирмы Proxxon. Обошлись они мне в полторы тысячи. Отличает наличие шаровой опоры, что позволяет закрепить под разными углами, а также возможность как прикрепить их к столу посредством струбцины, так и, сняв струбцину, просто поставить их на стол, благо основание широкое, а сами тисы весьма массивны и устойчивы. Я их просто поставил на стол, стоят как влитые, только снизу резинку подклеил, чтобы не скользила по столу. Теперь зажимаю в них платы во время пайки — плата не ездит и над столом наклоняться не нужно. Ну и выглядят они гламурненько и опрятно. В общем, мне нравится. Рекомендую =)

Размах губок до 60мм
Ширина губок 75мм
Есть сьемные резиновые накладки
Вес примерно 2кг.

В общем, полезная вещь. Уже привык к ним и без них неудобно :)

З.Ы.
В Челябинске такие тисы можно прикупить на радио барахолке, если прийти туда в субботу часиков в 11, справа от входа тусуются продавцы Proxxon‘овской техники.
З.З.Ы.
Есть также версия этих тисков только с основой в виде большой присоски

Комментариев (27)

Параллельный Цифро Аналоговый Преобразователь по схеме R-2R

Автор DI HALT
Опубликовано 19 марта 2009 
Рубрики: Начинающим
Метки: , , ,

Порой надо выдать точный аналоговый сигнал, да еще с быстро менющийся. Например, функцию. Раньше я рассматривал как это можно сделать с помощью ШИМ, но у этого метода есть проблема — он очень медленный. В самом деле, чтобы получить один уровнь на ШИМ, нужно, по меньшей мере, 256 тиков таймера. А если надо развернуть функцию в которой 256 отсчетов? Да еще на каждый отсчет по 256 тиков? Это какая же должна быть частота процессора? Да еще надо учесть, что ШИМ требует интегрирующей цепочки с конденсатором. А значит для четкого установления уровня должно пройти еще несколько импульсов, что снижает скорость еще раза в три. Короче, получить что либо быстрей чем 50 ГЦ на ШИМ очень сложно. Я не говорю даже о том, что у ШИМ изза свойств емкостного заряда сильно плывет линейность, так что это приходится учитывать.
Читать полностью

Комментариев (65)

В. Уразаев “ТРИЗ в Электронике”

Автор DI HALT
Опубликовано 18 марта 2009 
Рубрики: Книги
Метки:

Автор:		В. Уразаев
Название: 	ТРИЗ в Электронике
Издательство: 	Техносфера

Есть такая замечательная наука. Точнее это не столько наука, сколько методика - ТРИЗ. Что расшифровывается как Теория Решения Изобретательских Задач. Допустим, предстоит придумать решение какой нибудь проблемы. Есть разные способы выхода из этого положения. Можно сидеть и тупить, в надежде, что когда нибудь придет озарение. Можно хаотично перебирать варианты, пусть даже бредовые. Возможно придет решение проблемы. А ТРИЗ дает мощный инструмент для анализа причин по которым наша задача не решается, а также как эти причины разрулить. Разработанный Генрихом Сауловичем Альтшуллером в СССР в 40х годах, активно внедрялся и, возможно, именно по этому наши конструкторы умудряются из говна и палок, за сущие копейки, на коленке, сварганит то, над чем их западные коллеги расшибают головы и тратят миллионы. Конечно, сама методика не дает откровений, но помогает настроить мозги на нужный настрой и копать в правильном направлении.

Простой пример из книги:
Надо провести тест анализатора жидкостей, причем жидкости должно быть много, то есть через датчик должно протекать не меньше литра в секунду иначе ничего не замерить. Но в условиях лаборатории, на столе, осуществить такой эксперимент нереально — где взять столько исследуемого вещества? Да и прогонять ее литрами — это какая установка будет по габаритам.

Возникает ТРИЗ противоречие: “Жидкости должно быть много — Жидкости должно быть мало”.
Как сделать из малого много? Скопировать малое много раз.

В итоге, через датчик прошили тонкую трубку несколько раз и пустили по ней стакан жидкости. Обьем небольшой, но прокручивается по многим виткам одновременно и создается эффект протекания большого обьема через сечение датчика.

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

Скачать с DepositeFiles

Комментариев (5)

AVR. Учебный курс. Операционная система. Введение.

Автор DI HALT
Опубликовано 14 марта 2009 
Рубрики: AVR. Учебный курс
Метки: ,

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

В результате было написано микроядро. Камрад Serg2×2 подглядел концепцию в прошивке сотового телефона Motorola и портировал на микроконтроллер АТ89С2051, после ее перенесли на AVR, а я привел все в библиотечный и структурированный вид, обвязал все удобными макросами, а также подробно описал и задокументировал. Так что теперь интеграция ядра операционки в проект под микроконтроллер AVR занимает буквально пару минут работы Copy-Paste.

Ядро обеспечивает очередь задач (пока без приоритетов, но это в планах) и службу таймеров. Многозадачность кооперативная, что накладывает соответствующие ограничения на стиль написания. Фактически, каждую процедуру мы пишем как прерывание, максимально коротко и быстро, все задержки вешая на службу таймеров.

Параметры и системные требования микроядра:

Читать полностью

Комментариев (16)

Сдвиговый регистр

Автор DI HALT
Опубликовано 13 марта 2009 
Рубрики: Начинающим
Метки: ,

Иногда требуется ОЧЕНЬ много выходных портов. Особенно если хотим сделать что нибудь на светодиодах. Гирлянду какую-нибудь навороченную. Что делать? Брать под это дело ATMega128 с ее полусотней выводов? Избыточно — для ламеров. Ставить i2с расширитель портов? Дорого. Для мажоров. Тут на помощь из вековых глубин выплывает старая добрая дискретная логика. На этот раз нас выручит грошовый сдвиговый регистр. Возьму, для примера, 74HC164 он же, для любителей совковых трешевых микросхем в неубиваемом каменном корпусе, наш КM555ИР8.

У него есть 8 выходов и четыре входа. R-сброс, С-тактовый, А1 и А2 вход. На самом деле, внутри они заведены через логический элемент 2И-НЕ и идут на D триггеры. D — это такой тип триггера, который по тактовому импульсу схватывает и отправляет на выход то, что у него на входе. Как видишь, тут они цепью стоят ,передавая бит от одного к другому и нет принципиальной разницы сколько их тут будет, восемь штук или восемь миллиардов. Но чем больше, тем дольше по этой эстафете гнать данные до конца. Поэтому мы смело можем эти регистры соединять последовательно. Читать полностью

Комментариев (61)

Трансивер Radiocrafts RC1240

Автор DI HALT
Опубликовано 08 марта 2009 
Рубрики: Начинающим
Метки: , ,

В поисках идеального трансивера я надыбал пару RC1240. Дорогие, падлы, по две тыщи штука. Намутил, пора приступать к жестоким экспериментам.

Итак, что нам обещают разработчики?

В общем, неслабый фарш. Хотя, за такие деньги это нормально. Немного потупив в мануалы я приступил к сборке.

Несколько дней назад меня предупредили, что эти радиомодули ОЧЕНЬ БОЯТСЯ статики. Чтож, кто предупрежден, тот вооружен. Перед работой обработал одежду и стул антистатиком (обычный бытовой, продается в хозмаге), а также зачистил на батарее отопления контактную площадку к которой прикладывался перед каждым взятием модуля в руки.
Читать полностью

Комментариев (56)

Ремонт Palm m100 замена батареи на ионистор

Автор DI HALT
Опубликовано 05 марта 2009 
Рубрики: Диагностика и ремонт
Метки: ,

У многих из нас есть старенький КПК серии Palm. Штучка очень удобная. А если на него поставить программу Serial, то можно легко рулить девайсами, у которых есть RS-232 (или UART, через MAX232). В общем игрушка очень удобная, функциональная. Хотя по современным меркам весьма убогая. Но для наших целей вполне ещё послужит. Однако со временем у них случается такая болезнь — подыхает внутренняя батарейка. Это чревато потерей данных при смене основных батарей, или даже при носке. Лично у меня был случай, что я в нём написал программу (да, под него есть сразу встроенные компиляторы), и меня тряхнуло в маршрутке, так что отошли батарейки, и я потерял кучу кода, над которым корпел ни один день, и забыл забекапиться.

Решение проблемы
В результате пришло решение как-то решить проблему. И я его разобрал и выпаял основную батарею. Но поскольку сразу батарея не была куплена, он так и валялся у меня в разобранном виде несколько лет. Сейчас возникла необходимость в его использовании, и я вспомнил, что есть способ его реанимации. Если в него вставить батарею подходящую по размеру, то есть вероятность того, что она быстро сядет, и придётся снова повторять процедуру сбора-разбора. По сему было принято решение искать альтернативы. Читать полностью

Комментариев (18)

Мы тут пошаманили…

Автор DI HALT
Опубликовано 05 марта 2009 
Рубрики: Новости
Метки: ,

Стараниями моей любимой, по совместительству нашим вебмастером, изменили комменты. Теперь оно работает на аяксе и не требует обновления страницы. Что снижает нагрузку на сервер и не приходится тупить пока страница с доброй сотней комментариев загрузится полностью. Есть правда бага — написанный текст продолжает висеть в поле ввода, но это не проблема, удалить его оттуда мгновенное дело, думаю багу эту мы скоро пофиксим. Удобства превышают недостатки.

Также, изменилась система подписки. То есть теперь если кто то ответит на твой комментарий, то тебе на почту придет ответ. Разумеется, при желании, можно подписаться вообще на все новые комментарии в теме, как это было раньше.

О всех багах и глюках, обнаруженных в связи с этими приколами, пишите в форуме поддержки.

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

Комментариев (18)

Цифровой осциллограф RIGOL DS1042CD

Автор DI HALT
Опубликовано 04 марта 2009 
Рубрики: Инструмент
Метки: , ,

RIGOL DS1042CD
RIGOL DS1042CD

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

Итак, что из себя представляет сей агрегат.

Внешний вид
Сам осциллограф RIGOL 1042 весьма компактен. Габариты примерно 30х15х12 см — немногим больше стандартной буханки хлеба.
Корпус весь из пластика, собран основательно и ощущения хлипкости нет. Легкий, порядка двух килограмм. Большой экран, диагональю в 14.2см. Экран цветной, разрешение 320х230. На морде разъем для втыкания USB флешки и гнездо для подключения логического анализатора. В правой части кнопки управления. Кнопки резиновые, нажимаются легко и мягко. Ручки крутятся с плавным фиксированием щелчков. Каждая ручка еще и нажимается, вызывая встроенную функцию. Например установка на ноль.

Сбоку втыкается шнур питания - стандартный комповый. Сзади шнур USB и RS232 подключения и калибровочный вход.
Читать полностью

Комментариев (78)


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: