FT232 это не только USB <> UART (Часть 1)

Кроме очевидной функции преобразования интерфейсов эта микросхема умеет целых три режима bit bang. А еще разные свиселки-перделки, которые можно вывести на ножки CBUS.

Сначала решил свалить все в одну кучу, но потом передумал — будет несколько небольших постов.
В первом — описание функционала FT232 и её тюнинга с помощью FT Prog. Интересен будет наверное, лишь начинающим.
Дальше CBUS битбанг, синхронный и асинхронный битбанг. На дельфи и LabView.



Читать дальше

Светильник со звуковым управлением

Вот уже почти восемь месяцев (чуть ранее, чем с 11 октября 2010) у меня живет светильник со звуковым управлением. По-идее должен реагировать на три хлопка в ладоши, но, по свей глупости, принимает за хлопок любой короткий резкий звук (чем иногда доставляет).

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

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

acoustic_light_1.JPG

При переезде схемы в маленький светильник, внезапно, выяснилось, что трансформатор (который изначально все питал) туда уже не влезает. Пришлось приколхозить кусок зарядника для телефона — уж больно лениво было переделывать плату.

По-хорошему надо было переделать схему под микрофон, ибо совковый пьезодинамик, торчащий а проводках из красивого светильника, выглядел «немного не в тему». Но дело спасла обычная белая мышь, которая теперь держит пищалку в лапах и гордо смотрит в потолок.

acoustic_light_2.JPG

Для того, чтобы можно было бесшумно включать свет, я повесил выключатель на веревочке.
Да, теперь у меня мультипроцессорная система :)

Что касается работы устройства — ложных срабатываний мало (бывает, если кто-то громко спорит, свтильник паникует и выключается. ЧСХ, после этого обычно следует аргумент типа «ты так громко кричишь, что даже лампочка пугается» :))

Чуть более часто случается противоположная ошибка — светильник ни под каким предлогом не реагирует на команду. Вся фишка в том, что он воспринимает три хлопка с определенным ритмом. Я и домашние уже привыкли, а друзья-знакомые, даже один раз научившись с первого раза рулить лампочкой, через неделю теряют со светильником общий язык. Сидят и хлопают в ладоши как дети малые (что-уже само по себе весело), причем напрочь забывая о том, что таймер, запустившись после 1го хлопка, отмеряет 2сек и только потом принимает решение о том, включать свет или нет. Они-же, хлопнув три раза, и не получив результата — повторяют паттерн снова, чем приводят бедную тиньку в замешательство.

Асло, замечено, что некоторым персонажам сам факт включения света хлопком в ладоши доставляет немало лулзов. Они мучают несчастный светильник, а он вынужден подчиняться, ибо МК созданы, чтобы служить людям. Эх, надо-бы припилить к нему говорилку, да разрешить светильнику, при слишком большом количестве команд-в-минуту, посылать всех на йух. Но для этого точно придется переделывать плату… а мне лень :)

ImageDrop - утилита для удобного размещения изображений через Dropbox

Как-то на форуме я заикнулся о том, что хочу написать программу, упрощающую размещение в форумах и блогах фоток схем, и прочих рисунков через DropBox. И вот сейчас она готова чуть более, чем на половину (ver 0.5), в связи с чем представляю свое тварение сообществу.


Читать дальше

Задумал девайс

Решил я себе сделать что-то типа переносного БП. Со SLA аккумулятором на борту. В наличие есть не нужный SLA 12V 1,3Ah — его и заюзаю.

Суть такова:
Вариант1: плата, которая крепится на аккумулятор сверху. Прямо на плате закреплены ножевые клеммы, которые цепляются к аккумулятору. На плате располагается МК, 7сегментный индикатор, разъемы для вывода стабилизированного питания и зарядки аккума.

Вариант2: Коробочка с дисплеем, кнопами, разъемами. Внутри аккумулятор. Сверху ручка для переноски :)

Функционал:
— Зарядка аккумулятора. От источника постоянного/переменного тока. С индикацией напряжения на аккумуляторе и звуковым сигналом об окончании зарядки.
— Регулируемый стабилизатор напряжения. Допустим, от 1 до 12 Вольт. Самые «популярные» напряжения (3.3, 5, 9, 12) можно повесить на отдельную кнопку. Алсо, можно прикрутить звуковую сигнализацию о КЗ.
— Стабилизатор тока для тестирования всяких светодиодов и не только.
— Пара USB разъемов с +5V для заправки различных гаджетов.

Пожелания/предложения/идеи?...

Управление 3W светодиодом

Понадобилось мне управлять 3W белым светодиодом. Регулировать ток в пределах от 50мА до максимума — 800мА. Покупать специальный драйвер не хотелось, поэтому решил делать из говна и палок транзисторов и резисторов.

Управлять светодиодом будет МК, реагируя на нажатия кнопок. Питание силовой части 5-6 Вольт.



Читать дальше

Водяное охлаждение

Заряжаю SLA аккумулятор подручными средствами.
Блок питания на 24V (намного больше, чем нужно. Есть другой на 12.25V — слишком мало)
Стабилизатор тока из LM317. С бооольшим таким радиатором и цанговыми разъемчиками для смены шунтирующих резисторов.

На LM317 падает почти 12 Вольт, из-за чего на ней выделяется два с половиной Ватта тепла. Через 10 минут радиатор уже больно трогать пальцами.

Надо было как-то охладить стабилизатор, причем всерьёз и надолго. Решение пришло в виде стакана с водой, в котором я утопил радиатор:


Читать дальше

Внутренняя опора в ATMega8

AVR
Начало тут.
Провел пару экспериментов. Первый при комнатной температуре, второй — в морозилке, где -20.

Общие условия тестов таковы:

Продолжительность: 1 час.
Питание: 5V через 7805 от SLA аккумулятора. На питании конденсаторы на 470uF и 1uF (керамика).
Питание аналоговой части: через дроссель в 100мкГн. На AVCC и AREF конденсаторы по 1uF.
Импровизированый ИОН никуда не делся. Это многооборотный подстроечник на 10к, включенный потенциометром и выставленый на напряжение 0.5V

Тесты проводились так-же, как и в прошлый раз: записывалось значение при запуске, минимальное и максимальное.

Результаты

на этот раз ничего криминального.

Комнатная температура:
При старте: 2.721V
Минимум: — (не зафиксирован, т.е. то-же, что и при старте)
Максимум: 2.736V

Морозилка:
При старте: 2.750V
Минимум: — Максимум: 2.765V

Напомню, что обещали нам 2.56 Вольт с оговоркой, что может быть от 2.3 до 2.7. Получили чуть больше нормы. Это не страшно — юзать можно.

Что самое интересное — за час опора почти не уплыла. Я поставил всю конструкцию на ночь — еще один тест при комнатной температуре. Посмотрим, что будет. Пока все круто :)

С другой стороны, многие, увидев число 256 (2.56V) забывают про все на свете, ибо такое круглое число упрощает математику. Оказывается, что нифига не упрощает, ибо ни разу не круглое.

P.S. Хочу увидеть другие результаты, чтобы было понятно, насколько отличается опорное напряжение у разных МК той-же модели (Mega8 без буквы А, в дипе). Для этого надо повесить кондер на AREF, набросать программу, которая-бы включала АЦП с внутренней опорой и тупо замерить тестером напругу на AREF.

Насколько стабильна внутренняя опора?

AVR
Решил я заюзать в своем проекте внутреннюю опору в АЦП, дабы было удобнее измерять маленькие напряжения.

Но один факт меня настораживает: народ говорит, что эта опора кривая чуть более, чем полностью. Хотя доказательств тому я не видел. «Поэтому мы решили провести собственное расследование»(с) :)

Суть теста:

МК: ATTiny13A-20PU.
Питание: 5V через 7805 от SLA аккумулятора (12V).
На входе АЦП: источник напряжения в пол-вольта.
Боевая задача: Замерять напряжение стабильного источника относительно нестабильной опоры и записывать в EEPROM: максимум, минимум, значение через секунду после старта.

Нафига?Значение сразу после старта покажет насколько значение внутренней опоры отличается от указаного в ДШ. Макс и мин значения покажут насколько опора плавает во время работы.

Питание от аккумулятора через линейный стабилизатор сделал по одной причине: первое, что под руку попалось стабильность и отсутствие шумов, которые генерят импульные БП и ШИМ стабилизаторы.

Источником напряжения в пол вольта является многооборотный подстроечный резистор. Ничего другого у меня не было.

Вот так. Тест проводится при комнатной температуре в течении часа. Через 36 минут будут результаты :)

Результаты:

Опорное напряжение при старте (через секунду после сброса МК): 765mV
Максимальное опорное напряжение: 813mV
Минимальное опорное напряжение: все те-же 765mV.

Выглядит как-то странно, учитывая то, что по ДШ обещают 1.1V +-100mV. У нас-же наибольшее отклонение во время работы = 48mV, но при этом сама опора почти на 350mV меньше, чем обещают.

Неужели все так плохо?

P.S. Just 4 lulz, проведу тот-же тест в холодильнике :)

Из холодильника,

где было 8-10 градусов.

При старте (после 10 минут лежания в холодильнике) — 674mV (!)
Максимум: 784mV.
Минимум, что странно, 674mV.

Вывода два:
1) На холоде опора ниже, чем при комнатной температуре.
2) Видимо, при запуске опора имеет минимально значение. Потом напряжение поднимается.

Из полярного края,

где медведи до -20.

Старт (в свежезамороженом состоянии): 663mV
Максимум: 3.10 V (кажись какой-то всплеск. может я рукой дорожку задел. Поставил еще раз замерять) повторные испытания показали подобный результат. что странно.
Минимум: 0,639 mV

AVR - Запись данных во флеш память

AVR
Встроенная EEPROM стремительно заканчивается, а данные куда-то записывать надо. Знакомая ситуация, не правда-ли?

Что мы обычно делаем в таких случаях? Ставим внешнюю EEPROM, флеш или SD карточку на 32 гига. Это оправдано, если устройство достаточно сложное. А если оно состоит из одной тиньки и двух с половиной светодиодов? Тогда подключение внешней памяти грозит кардинальными изменениями в алгоритме, а может и пинов банально не хватит.

Но ведь у нас есть своя флеш память, которая в подавляющем большинстве случаев заполнена чуть менее, чем на половину. Отлично! Её и используем для записи данных.



Читать дальше

Продолжаю мучать ARM...

Вчера/сегодня разобрался с семисегментными индикаторами (пока только на 1 разряд), энкодером и пьезопищалкой.



Энкодер по-началу отказывался работать: пропускал шаги или наоборот отсчитывал лишние. Решилось корректировкой алгоритма (тот, что был в статье Ди так и не заработал — написал по-своему) и кондерами по 1мкФ для подавления дребезга.

Есть у меня один вопрос к тем, кто работает с дискавери:
После выхода из режима отладки, дискавери подвисает и возвращает её к жизни только очередной запуск по F5 из режима отладки. Я конечно не против, но хотелось-бы иметь возможность запустить прогу, сразу после заливки в МК. Без входа в отладочный режим.
(Все вышесказаное относится к Keil uVision4)



Читать дальше