Технологическая мелочевка. Штырьевые разъемы
Автор DI HALT
Опубликовано 29 июня 2009
Рубрики: Начинающим
Метки: Монтаж, Радиолюбительские Технологии
Я не переношу макетные платы, потому что там легко что нибудь перепутать и ошибиться. А я человек рассеяный и часто косячу там где можно накосячить :) Поэтому предпочитаю под любую мелочь делать печатку. По времени выходит также, зато надежно.
А еще я люблю делать микроблоки, думаю вы не раз и не два видели их на фотках в статьях.
![]() |
Раскуривая очередную незнакомую мне микруху я делаю под нее отладочный микроблок со всей необходимой обвязкой и выведеными наружу интерфейсами и питаловом. В итоге, постепенно собирается целый конструктор из таких вот гарантированно работающих кирпичиков. И в один прекрасный момент понимаешь, что на создание аппаратной части прототипа нового девайса из этих кусочков уходит буквально считанные минуты. Но я хотел рассказать не об этом, а о способах соединения блоков. Читать полностью
10Вт светодиод ARPL-10W
Автор DI HALT
Опубликовано 27 июня 2009
Рубрики: Новости
Метки: Видео, Прикол, Светодиоды
Специально зашел в Элемент чтобы пощупать этот могучий прожектор своими руками, заодно сфотографировать и заснять все вживую.
Итак, вот он такой:
![]() |
Часы реального времени PCF8583
Автор DI HALT
Опубликовано 25 июня 2009
Рубрики: Начинающим
Метки: Assembler, RTC, Часы
Делал я тут один коммерческий девайсик и требовалось там вести лог событий. А конкретно фиксировать управляющие команды пользователя, а также время и дату, чтобы если оператор где накосячит его можно было взять за задницу. Вот такой вот электронный цербер.
Задача несложная, но для ее реализации нужен был способ замерять время, причем делать это независимо, с сохранением результатов даже если питалово вырубили. Данные можно хранить во флеше, а что делать с временем?
![]() |
Я решил поставить микросхему часов реального времени PCF8583 от NXP. Стоит она рублей 80, дороговато, конечно. Можно было дешевле выкрутиться, на одном лишь асинхронном таймере AVR, но при цене девайса в жутки тыщи на таких спичках не экономят, а тут готовое промышленное решение :) Сам таймер PCF8583 представляет собой восьминогую тараканину, которой из обвяза нужен только кварц на 32768Гц, батарейка резервного питания на 3.3 вольта и собственно все.
Общается она с микроконтроллером по протоколу I2C который я недавно разобрал. Читать полностью
Типы корпусов микросхем
Автор DI HALT
Опубликовано 22 июня 2009
Рубрики: Начинающим
Метки: Корпус
Во чо нарыл в своих закромах. Пожалуй многим будет полезно знать. Конечно тут не все корпуса, но зато самые популярные. Хоть будете знать что покупаете/заказываете.
![]() |
Скачать в полный размер (1МБ!)
Перебаскин А.В. Бахметьев А.А. Маркировка электронных компонентов
Автор DI HALT
Опубликовано 21 июня 2009
Рубрики: Книги
Метки: Конденсатор, Резистор, Транзистор
![]() |
Автор: Перебаскин А.В. Бахметьев А.А. Название: Маркировка электронных компонентов Издательство: Додэка
Хороший цветной справочник по маркировке современных компонетов. Особенно полезен будет начинающим, так как в начале идет подробнейший ликбез по базовым кодам на резисторах, конденсаторах. Все эти цветовые полоски и коды. Также есть справочник по SMD кодам с подробным описанием детали. Впрочем, однозначного ответа SMD код не дает, можно лишь резко сузить круг “подозреваемых”, а потом, проведя разведку платы вычислить какя это деталь уже конкретно. Также в справочнике есть габаритные размеры разных корпусов, преимущественно россыпухи - всяки там SOT, DO и прочая мелюзга.
AVR. Учебный Курс. Оценка загрузки контроллера.
Автор DI HALT
Опубликовано 18 июня 2009
Рубрики: AVR. Учебный курс
Метки: AVR, RTOS, Отладка, Трюки, ЦАП
Как оценить загруженность микроконтроллера? С памятью все понятно — размеры занимаемого кода и оперативной памяти показывает компилятор, а что делать с процессорным временем? Конечно, в линейной программе можно взять и посчитать время выполнения каждой процедуры и станет ясно успеет микроконтроллер выполнить все на него повешанное или слажает в каком-нибудь критичном месте.
Куда сложней оценивать время в кооперативной операционной системе реального времени. Тут задачка получается нетривиальной — у нас куча процессов скачут через диспетчер. В ходе программирования задачи навешиваешь одну за другой, как бусинки на нить — каждый процесс обработки чего либо составляет подобную цепочку, а всего их может быть просто тьма. Ядро же у контроллера всего одно, а значит выполнять можно всего одну задачу за раз и если у нас в диспетчере скопится много критичных ко времени процессов (вообще их лучше развешивать на прерывания, но бывает и прерываний на всех не напасешься), то возможно либо переполнение очереди диспетчера, либо превышение времени ожидания, что тоже не праздник.
Самое западло в том, что умозрительно отлаживать такие вещи довольно сложно. Единственный вариант — рисовать временные диаграммы запуска каждой задачи и смотреть где у нас узкие места. Еще можно попробовать в AVR Studio поставить Break Point на переполнение диспетчера, но студия не сэмулирует всю ту прорву периферии, а в пошаговой отладке этого не увидеть — да и момент надо подобрать так, чтобы все навалилось.
В один момент мне пришла в голову одна идея — а почему бы не заставить рисовать временные диаграммы работы задач сам контроллер? Это же просто! Берем и в диспетчере, перед вызовом задачи выставляем бит порта в 1. А когда диспетчер задач опустошается полностью, то есть выполняется переход на Idle — сбрасываем бит в 0. В результате, у нас на выходе будет подобие ШИМ. Если постоянно крутится Idle — будут нули перманентно. Если же проц в поте лица гонит через себя непрерывно код, то будут высокий уровнь сплошняком. А если все прерывисто — что то ШИМообразное. Причем чем больше загрузка процессора тем выше заполнение. Можно поставить интегрирующую RC цепочку и получим аналоговый сигнал. Хоть на стрелочный индикатор заводи :). Сказано — сделано.
Читать полностью
AVR. Учебный Курс. Управляемый вектор прерывания
Автор DI HALT
Опубликовано 12 июня 2009
Рубрики: AVR. Учебный курс
Метки: Assembler, RTOS, Алгоритм, Трюки
Бывает такая ситуация, когда надо на один периферийный девайс повесить много разных задач, а он всего один и что то надо с этим делать.
Простой пример — таймер и его прерывание по переполнению.
Мы можем задавать выдержку и по прерыванию делать какие-нибудь операции. Но если в один момент времени мы хотим чтобы таймер по прерванию сделал одну операцию, а потом другую, третью. Да сколько угодно, в зависимости от состояния. А вектор один.
Или, например, USART. Нам запросто может потребоваться, чтобы в зависимости от режима на прерывание по приходу байта выполнялся разный код. В одном режиме - выдача приветствия, в другом посыл матом в баню. В третьем удар в голову. А вектор один.
Конечно, можно добавить в обработчик прерывания switch-case конструкцию и по выбору режима перейти на нужный участок кода, но это довольно громоздко, а самое главное — время перехода будет разное, в зависимости от того в каком порядке будет идти опрос-сравнение switch-case структуры.
То есть в свитче вида:
1 2 3 4 5 6 7 | switch(x) { 1: Действие 1 2: Действие 2 3: Действие 3 4: Действие 4 } |
Будет последовательное сравнение х вначале с 1, потом с 2, потом с 3 и так до перебора всех вариантов. А в таком случае реакция на Действие 1 будет быстрей чем реакция на Действие 4. Особо важно это при расчете точных временных интервалов на таймере.
Но есть простое решение этой проблемы — индексный переход. Достаточно перед тем как мы начнем ожидать прерывание предварительно загрузить в переменные (а можно и сразу в индексный регистр Z) направление куда нам надо перенаправить наш вектор и воткнуть в обработчик прерывания индексный переход. И вуаля! Переход будет туда куда нужно, без всякого сравнения вариантов.
Читать полностью
Робоконструктор Robo-PICA
Автор DI HALT
Опубликовано 10 июня 2009
Рубрики: Робототехника
Метки: PIC, Микроконтроллер, Робот
В Челябинском Элементе появилась прикольная вещь — робоконструктор Robo-PICA. Пользуясь моментом, пришел туда с фотиком и зафоткал все содержимое коробки, а потом выложил на всеобщее обозрение.
![]() |
| кликабельно — больший размер |
Дальше будут в основном фотки с моим кратким описанием.
Читать полностью
Ультразвуковая ванна CT-406
Автор DI HALT
Опубликовано 08 июня 2009
Рубрики: Инструмент
Метки: Инструмент, Ультразвук
![]() |
Недавно обзавелся новой УЗ ванной — CT-406 Обошлась в полторы тыщи, брал в Элементе. Агрегат знатный — кладешь плату всю угаженую флюсом, достаешь чистую, словоно только что с завода. Отмыло у меня все, даже толстый, почти миллиметровой толщины, слой обычной канифоли, которым какой то гоблин угваздал всю плату. 10 минут пожужжала и никаких следов. А про гадость типа ЛТИ-120 и говорить нечего, в момент уносит. За две 10минутные итерации вынесла с текстолита тонер, оставшийся после травления. Читать полностью
Джонсон Г. Грэхэм М “Конструирование высокоскоростных цифровых устройств. Начальный курс черной магии”
Автор DI HALT
Опубликовано 08 июня 2009
Рубрики: Книги
Метки: ВЧ
![]() |
Автор: Джонсон Г. Грэхэм М Название: Конструирование высокоскоростных цифровых устройств. Начальный курс черной магии. Издательство: Вильямс
Мало кому из тех кто ходит на мой сайт прям сейчас пригодится инфа из этой книжки. Но все же выкладываю. Полезно будет почитать, хотя бы по диагонали, а вдруг столкнешься с ВЧ приколами (из той же Меги запросто можно выпустить мегагерцовый сигнал на какую нибудь внешнюю ОЗУ), а так будет хоть теоретическая база или вектор куда рыть. Разобрано практически от самых азов как возникают ВЧ наводки, как начинает вести себя простой проводник на высоких частотах, какие паразитные цепи образует. В общем, полезно будет это знать, как ни крути. Тем более с каждым годом скорости то все выше и выше… Написано весьма приятным и легко читаемым языком без излишнего перегруза формулами и расчетами. Я так с удовольствием почитал.
AVR. Учебный Курс. Программирование на Си
Автор DI HALT
Опубликовано 05 июня 2009
Рубрики: AVR. Учебный курс
Метки: AVR, Макро язык, Программирование, Язык Си
== Запись была удалена ==
DI HALT
Измерительные цепи
Автор DI HALT
Опубликовано 01 июня 2009
Рубрики: Начинающим
Метки: smd, Аналог, АЦП, Датчик, Опорное напряжение, ОУ, Схемотехника
При работе автоматической системой нам в подавляющем большинстве случаев будут нужны будут датчики, способные замерить разные величины. И хоть сейчас получают распространение цифровые датчики, вроде термометра DS1820, все же аналоговых датчиков намного больше. Постараюсь кратко описать как со всем этим хозяйством работать.
Выход с датчика может быть трех основных видов (если кто вспомнит еще, добавьте в комментах)
Напряженческий, токовый и резистивный. Как понятно из названия, тут выходная датчик превращает колебания измеренной величины в колебания напряжения, тока или сопротивления, осталось только эти величины привести к виду удобному для запихивания в АЦП микроконтроллера.
Читать полностью










