Трансивер DRF7020D27

Недавно увидел у камрада в блоге пост про то, что он дескать, на работе балуется с 433МГЦ трансиверами. Я же, как человек в свое время словивший немало лулзов на построение системы из ISM радиопередатчиков, не мог не заинтересоваться и уболтал товарища выделить мне от фирмы где он трудится пару сэмплов. Люди не зажлобились и в результате две дивные игрушки попали в мои шаловливые ручки.

Так что за девайс, представленный на тестирование, спасибо компании ООО «Комплект-Индустрия». Они же продают данные трансиверы в России, покупая их напрямую у производителя.

Характеристики

  • 433Mhz ISM frequency band — стандартная нелицензируемая частота.
  • 9.6k bps data rate — скорость не самая быстрая, бывает и пошустрей. Но реально такими модулями обычно гонять команды управления или какую-нибудь небольшую инфу, вроде замеров с датчиков, так что вполне достаточно.
  • Возможность работы на разных каналах. Не проверял. В софтине для настройки что то подобное есть, но модуля у меня всего два, так что поиграть в разные хитрые топологии я не сумел.
  • Выходная мощность 27dBm — почти 500мВт. Это самый мощный модуль из линейки (я знал что просить ;) и один из самых мощных ISM трансиверов. Аналогом ему может служить RFM12BP-433 от HOPE-RF, но он требует 12ти вольт в питание и весьма заморочен в настройке.
  • 256 байт буфера — т.к. передача полудуплексная, то толстый буфер как нельзя кстати.
  • Ток режима ожидания < 5uA
  • Ток при передаче на максимальной мощности около 400мА
  • Питающее напряжение 4.7~8V
  • SMA разъем под антенну

Читать далее

Рубрика: Начинающим | Метки: , , | Комментарии (27)

Повышающий DC-DC преобразователь. Принцип работы.

Иногда надо получить высокое напряжение из низкого. Например, для высоковольтного программатора, питающегося от 5ти вольтового USB, надыбать где то 12 вольт.

Как быть? Для этого существуют схемы DC-DC преобразования. А также специализированные микросхемы, позволяющие решить эту задачу за десяток деталек.

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

Чтобы было предельно понятно покажу вначале пример для сантехников.

Фаза 1

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

Рубрика: Готовые устройства, Начинающим | Метки: , , | Комментарии (169)

ARM. Учебный курс. Тактовый генератор STM32

Нам разум дал стальные руки-крылья,
А вместо сердца — пламенный мотор.

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

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

Рубрика: ARM. Учебный курс | Метки: , , , , | Комментарии (37)

Знакомимся с LabView

Практически у всех разработчиков устройств на микроконтроллерах, будь то любители или профессионалы, рано или поздно возникает необходимость подключить микроконтроллерный девайс к его «старшему брату», а именно к PC. Вот тогда и встает вопрос, а какой софт использовать для обмена с микроконтроллером, анализировать и обрабатывать полученные от него данные? Часто для обмена МК с компьютером используют интерфейс и протокол RS232 — старый добрый COM порт в той или иной реализации.

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

Некоторые пишут подобное ПО самостоятельно на каком либо языке программирования (Delphi, C++), наделяя необходимым функционалом. Но эта задача не из легких, нужно знать, помимо самого языка, устройство операционной системы, способы работы с комуникационными портами, множество других технических тонкостей, которые отвлекают от главного — реализации алгоритма программы. В общем, быть попутно еще Windows/Unix программистом.

На фоне этих подходов резко отличается концепция виртуальных приборов (vi). В этой статье пойдет речь о программном продукте LabView фирмы Nationals Instruments. Я только начинаю осваивать этот замечательный продукт, поэтому могу допускать неточности и ошибки. Спецы поправят :-)) Собственно что такое LabView?

LabView — это среда разработки и платформа для выполнения программ, созданных на графическом языке программирования «G» фирмы National Instruments.

Говоря простым языком, LabView — Это среда создания приложений для задач сбора, обработки, визуализации информации от различных приборов, лабораторных установок и т.п. А также для управления технологическими процессами и устройствами. Однако с помощью LabView можно создавать вполне себе обычное прикладное ПО. У меня нет цели подробно описывать этот продукт и работу с ним. По LabView написаны тысячи страниц отличной документации и сотни книг. В интернете полно ресурсов, посвященных LabView, на которых можно получить ответы на все вопросы.
Читать далее

Рубрика: Софт | Метки: , , | Комментарии (177)

ARM. Учебный курс. IAR EWARM. Создание проекта часть 2. CMSIS и Standard Peripherals Library

Каждый выбирает для себя
женщину, религию, дорогу.

Итак, создавать проекты и настраивать их параметры, в минимально необходимом объеме, мы научились, и руки так и чешутся попробовать свои силы в программировании микроконтроллера. Не буду оригинальничать, и предложу вам попробовать свои силы на классическом примере – поморгать светодиодом, да и название проекта из прошлой статьи недвусмысленно на это указывало :-)

Сей, кажущийся тривиально простым пример (который на самом деле таким и является), на самом деле все-таки несет в себе некий глубинный смысл, т.к. на нем мы научимся подключать в свой проект CMSIS (что это такое, уже рассказал уважаемый Di Halt в своей статье про создание проекта в Keil ) и узнаем о существовании Standard Peripherals Library (стандартной библиотекой работы с периферией), вещью весьма полезной и часто упрощающей жизнь программиста.
Читать далее

Рубрика: ARM. Учебный курс | Комментарии (93)

ARM. Учебный курс. IAR EWARM. Создание проекта.

Если ничего нет, но очень хочется… :-)

Не Keil’ом единым…
Есть такая компания, называется она IAR Systems. Делает много вещей, в том числе и среды разработки и компиляторы для различных архитектур, список которых довольно обширен. Также в числе продуктов компании есть отладчики, наборы разработчиков и т.д. Более подробно со всем этим разнообразием можно ознакомиться на их родном сайте iar.com

Нас же сейчас интересует среда для разработки приложений для архитектуры ARM, в частности Cortex-M3. Есть в их ассортименте и такой продукт и называется он EWARM, что является сокращением от Embedded Workbench for ARM, что в свою очередь, в моем вольном переводе на великий и могучий, звучит примерно как «Среда разработки для встроенных систем на архитектуре ARM», впрочем, за точность я не ручаюсь…

Данная среда поддерживает большое количество микропроцессоров и микроконтроллеров построенных на базе архитектуры ARM разных версий. Полный список можно посмотреть на их сайте Т.к. это серьезная среда разработки, то она поддерживает различные отладочные интерфейсы и средства сопряжения как производства самой IAR так и сторонних компаний, имеет встроенный отладчик, симулятор и т.д.

Но по причине отсутствия у меня какого либо девайса для внутрисхемной отладки рассказать я про все это не могу. А пользоваться симулятором как-то в голову даже не приходило. Я по старинке, пишу, заливаю в контроллер и смотрю что происходит. (Зато их есть у меня. И я вам скоро выдам пример того, какой это рулез. прим. DI HALT)

Есть мнение, что компилятор С/С++ у IAR один из самых лучших, но за это я не ручаюсь, хотя кое какие мои сравнения с Keil uVision v3 показали его превосходство.

В общем, это мощнейшая полноценная среда для разработчика. Кому интересно, изучайте описания на официальном сайте Есть ли версия для линукса я на сайте нигде не углядел, поэтому точно не скажу. (Боюсь, что как всегда ;) Впрочем, там есть могучий и универсальный GCC и обязательно есть поддержка ARM. Так что если есть желающие показать старт проекта под линухом — ждем с распростертыми обьятьями. Пишите на dihalt@dihalt.ru прим. DI HALT)
Читать далее

Рубрика: ARM. Учебный курс | Метки: , , | Комментарии (35)

Проектирование печатной платы и изготовление устройства в Eagle Cad на примере PICKit2

Предыстория
На днях возникла необходимость собрать программатор PicKit2, да и сам программатор хотелось сделать маленьким, дабы можно было удобно с собой таскать. Как раз на форуме видел несколько тем про двухсторонние платы по методу ЛУТ или ЛЛТ, в частности про изготовление двухсторонних плат, в которых основная засада это совмещение двух сторон идеально точно. Постараюсь на конкретном примере именно этого программатора рассказать, как это делаю я. Разумеется, в своем повествовании буду использовать программу Eagle Cad.

Недавно DI HALT на своем сайте публиковал ряд статей по Eagle Cad (Часть 1, Часть 2 и часть 3)

Программа сама по себе довольна интересна, хотя и заточена на автоматическое производство и сравнивать ее с Sprint Layout не имеет смысла, т.к это две абсолютно разные программы. Каждая из которых хороша для своих масштабов.

Например, мне в Eagle нравится то, что и схема и плата все вместе. Как отмечал DI HALT, при разводке очень удобна подсветка связей которые в данный момент трассируешь, если есть желание то можно сразу, после того как плата готова, создать выходные файлы и отдать на производство. В итоге получить красивую зелененькую плату, но в данной статье речь пойдет не об этом.

Но я немного отвлекся… Итак, скачали Eagle Cad, установили ту версию какая нравится (Demo или порыскали и нашли ключик), прочитали прошлые статьи и получили примерное представление о том что же представляет из себя Eagle Cad.

Последняя версия на данный момент Eagle Cad 5.10.0, вот в ней и будем рисовать, трассировать, печатать и потом делать наш программатор PicKit2.

Читать далее

Рубрика: Готовые устройства, Начинающим, Радиолюбительские Технологии | Метки: , , , , | Комментарии (65)

ARM. Учебный Курс. Keil + CMSIS. Создание проекта

Хотел вначале толкнуть речугу за ядро, но потом подумал, что этой то инфы на каждом углу, да и рано пока еще. А вот создать простейший проект будет полезней. Также я решил краешком поддерживать и описывать не только STM32F103, но и LPC1343. LPC я буду уделять меньше времени, скорей показывать различия и аналогии. Но, думаю, проблем в освоении не возникнет.

Среда разработки
Я тут однозначно остановился на Keil uVision 4. Эта IDE, пожалуй, является одной из самых мощных и самых массовых не только на ARM, но и на С51 и ряде других камней.
Собственный, весьма неплохой, Си компилятор. Весьма продвинутая и функциональная IDE, плюс в нагрузку там идет мощный симулятор, в том числе с поддержкой периферии, а также всяких виртуальных приборов.
Не как в Proteus, конечно. Схему там не нарисуешь, но вот поглядеть на виртуальный логический анализатор или UART можно запросто. Плюс удобная система создания мастеров кода на ровном месте (всякие визарды аля CVAVR тут дружно пьют йад).
А также Keil поддерживает огромное число разных отладочных систем и JTAG адаптеров. В том числе и ColInkEx, который юзаю я.

Недостатки тоже есть. Во-первых, Keil uVision идет только под винду. Так что линухоиды либо извращаются с виртуалками (но не факт что получится), либо обламываются и корячат из подручного материала что то свое. Впрочем, им не привыкать к геморою со спец софтом :)
Во-вторых, Keil платный. И стоит он весьма неслабых денежек.
Кряки, конечно же, валяются на каждом углу. Но! Мы же честные и на наше счастье в Keil есть демо режим, дающий нам ограничение в 32кила. Под наши заморочки с Cortex M3 хватит вполне (а в LPC1343 больше и нету, кстати ;) ).
Читать далее

Рубрика: ARM. Учебный курс | Метки: , , , | Комментарии (169)

ИК дистанционное управление

Завязка или «Как начинался девайс»

…Когда я пришёл, Виктория сидела на диване, уставившись в телевизор. День выдался тяжёлый, поэтому ей не хотелось ничего делать. Несколько минут мы смотрели какой-то попсовый сериал, потом он закончился, и Вика выключила телевизор. В комнате стало темно. На улице шумел дождь, и от этого казалось, что дома тоже холодно.
Вика поднялась с дивана и принялась, на ощупь, искать выключатель от светильника. Настенный светильник висел, почему-то, не у дивана, а на другой стене и приходилось топать через всю комнату, чтобы зажечь свет. Когда она, наконец, включила его, комната наполнилась тёплым светом лампочки накаливания.
Около меня, на помятой простыне, лежал пульт от телевизора. Нижние кнопки без опознавательных знаков и, скорее всего, не использовались. И тут у меня возникла интересная мысль…
- Вик, а хочешь, я сделаю так, что твой светильник можно будет пультом от ящика включить? Там даже кнопки лишние есть…

Концепция
Наше устройство должно уметь принимать сигнал с ИК-пульта, отличать «свою» кнопку от других, и управлять нагрузкой. Первый и последний пункты простые, как топор. А вот со вторым немного интереснее. Я решил не ограничиваться каким-то конкретным пультом (Почему? – «Не интересно так!»), а сделать систему, которая может работать с разными моделями пультов от разной техники. Лишь бы ИК-приёмник не спасовал, и уверенно ловил сигнал.

Ловить сигнал будем с помощью фотоприёмника TSOP. Причем не каждый приёмник подойдёт – несущая частота должна совпадать с частотой пульта. Несущая частота приёмника указана в его маркировке: TSOP17xx – 17 это модель приёмника, а хх – частота в килогерцах. А несущую частоту пульта можно найти в документации или в инете. В принципе, сигнал будет приниматься, даже если частоты не совпадают, но чувствительность будет фиговой – придётся тыкать пультом прямо в приёмник.
Читать далее

Рубрика: Готовые устройства | Комментарии (83)

Детектор звуков

Привет! Сегодня мы будем собирать акустический датчик.

Анализ голоса и другой хай-тек оставим профессионалам, а себе возьмём задачу попроще: по команде (пара хлопков в ладоши) устройство должно выполнять какое-либо действие. Пусть, таким действием будет включение/выключение освещения. При этом, конечно, устройство должно отличать команду от всякого шума.

Преобразовать звук в электрический сигнал можно двумя способами: с помощью пьезодинамика или микрофона. На выходе у них напряжение. У пьезодинамика, в состоянии покоя выход = 0В, а у микрофона, обычно, около 2В, в зависимости от подтягивающего резистора.

Пьезодинамик подойдёт не всякий. Простая «пластинка с двумя проводками» имеет маленькую чувствительность, хотя если её запихнуть в резонатор, то, наверное, станет лучше. Идеально подходят пьезодинамики марки 3П-22. Это такая кругляшка 3 см в диаметре, с отверстием в центре. Выглядит так:

Такие стоят в совковых часах с будильником, и ещё много где.
Читать далее

Рубрика: Готовые устройства, Начинающим | Комментарии (101)

ARM. Учебный Курс. Подключение контроллера и демоплата

Выбор контроллера
Контроллеров на ядре ARM Cortex множество. И мне пришлось поломать голову чтобы выбрать и взять за основу. В народ уверенно идут две линейки это LPC1xxx от NXP и STM32 от ST. Остальные дорогие и/или труднодоставаемые, либо в неадекватных для домашнего применения корпусах. Решил если брать, то из этой серии. Но какую именно? В результате поковырял и те и другие.
 

И вот мои соображения:
 

NXP
Берут низкой ценой. Реально многие из них продаются рублей по 50-80р за микруху. И это в розницу! Может это, конечно, маркетинговая акция и скоро все изменится. Но ситуация такая есть. С другой стороны, у NXP три линейки процов. LPC1000, LPC1300, LPC1700 (про LPC2xxx речь не идет, там ARM7 TDMI ядро).
 

  • LPC1000 закастрированные донельзя (но дешевые). Там от всех вкусняшек ARM ядра только таймер да 32 разряда. Корпуса от 33 до 48 выводов. Есть даже PLCC, но обычно LQFP.
  • LPC1300 уже интересней, но тоже нет ряда полезных фич вроде DMA или быстрого доступа к портам. Корпус от также от 33 до 48 выводов. Самый адекватный LQFP.
  • LPC1700 уже как в лучших домах — есть полный фарш, но камни там с 80ю и более ногами. И куда их такие здоровые?

 

Причем все три линейки весьма сильно отличаются друг от друга. Т.е. код с LPC1300 копипастой хрен перетащишь на LPC1700. Будут отличаться и имена регистров, и способы доступа к периферии. По разному будет выполняться конфигурация портов. В общем, хочешь перелезть на линейку послабже — изучай даташит с нуля. Конечно библиотека CMSIS сильно все сглаживает, но тем не менее от лишнего чтения доков не избавляет. Ну и документация у NXP тот еще аббадон. Давно я такой каши не видел. Бррр…
 

STM
Стоят дороже. Пока самый дешевый STM32F103C8T6 видел за 150р штука. Где найдете дешевле свистните. Но зато у них одна линейка F10x и один даташит на всех. Более того, ходят слухи, что периферия очень похожа и на STM8, так что при случае параллельно раскурим и эти камни :)
 

Процессоры в линейке отличаются только количеством ног и наличием на борту тяжелой периферии вроде USB/Ethernet/CAN. Причем в том же STM32F103C8T6 есть уже и DMA и полноценный BitBanding и все это в корпусе LQFP48 т.е. вполне компактный и паяемый в домашних условиях. Сами камни внутри выглядят более продумаными чтоль. Нет зоопарка периферии на разных линейках. Хорошо расписанные библиотеки CMSIS (о том что это такое расскажу попозже). Т.е. изучил его один раз и можешь уже смело программировать хоть 36 ногих козявок, хоть 100 выводных монстров. Плюс очень многие выводы у STM32F103 имеют 5V Tollerance т.е. их можно смело заводить на пятивольтовую периферию.
 

В общем, мне STM32 понравился больше. Хотя от применения LPC я не отказываюсь, но подробно на них останавливаться не буду, в лучшем случае вскользь упоминать.
 

Читать далее

Рубрика: ARM. Учебный курс | Метки: , , , , , | Комментарии (140)

Управление множеством сервомашинок

При построении разных роботов порой приходится использовать несколько сервоприводов. А если это какой-нибудь шестиногий паук, то приводов там этих просто тьма. Как ими управлять? На форуме кое кто даже сокрушался, что ему бы для этих целей плисину применить. Хотя на кой черт там ПЛИСка, когда с рулением даже трех десятков сервоприводов справится самый рядовой микроконтроллер, затребовав под это дело всего один таймер.

Итак, кто не помнит как управляются сервы может прогуляться в старую статью и освежить знания.

Возьмем, для начала, 8 сервомашинок. На каждую серву идет вот такой сигнал:

На каждую серву со своей ноги контроллера должна идти такая вот последовательность. Итого подобие ШИМ’a на 8 каналов. Как сгенерировать эту бодягу? Да проще простого. Принцип тут простой. Импульсы медленные — всего то 50Гц, меняются тоже нечасто — серва штука инерционная, поэтому даже сто раз в секунду ей не подергаешь. Так что времени на обработку у нас вагон и маленькая тележка.

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

  • Сброс бита на порту первого канала
  • Загрузка в регистр сравнения таймера значения длительности второго импульса

Читать далее

Рубрика: AVR. Учебный курс, Робототехника | Метки: , , , | Комментарии (121)

Приспособление для вертикального сверления отверстий

Иногда, хотя я это и очень не люблю, мне приходится делать двусторонние платы. Обычно это редко происходит, все часто удается раскидать по одному слою. В худшем случае с перемычками-пофигисторами. Но когда делаешь двусторонку, то сразу же возникает проблема. Нет, совмещение слоев при травлении это задача элементарная. Я травлю сначала одну сторону, потом, совместив по трем отверстиям, накатываю второй слой и вытравливаю его.
Главная проблема тут в сверловке. Практически нереально ручной дрелькой просверлить идеально перпендикулярное плате отверстие, а малейший перекос, хотя бы на 10 градусов даст расхождением порядка 0.5мм, а то и больше. Что черевато несовпадением переходных отверстий (которые я делаю диаметром около 1.3мм, при отверстии в 0.5мм), а то и площадок. Не говоря уже о том, что выглядит в высшей мере убого.

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

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

Два крохотных кусочка макетки. Идеальны тем, что дырочки на них просверлены на заводе, заведомо правильные и соосные. Несколько штырьков PLS и обоймы от них. Спаяно все в незатейливую конструкцию. На нижнем «этаже» лишние уголки сковырены, чтобы не заслонять обзор.

А дальше, придерживая козлика рукой и нацеливая ушком на нужное место, борзо сверлим отверстия, Не волнуюясь на счет перекоса сверла. Красота!

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

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

Рубрика: Радиолюбительские Технологии | Метки: , | Комментарии (78)

Работа в Eagle CAD. Часть 3. Автоматическая трассировка плат

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

Расставляем компоненты
Один из главных недостатков Eagle CAD — отсутствие авторасстановщика компонентов. Это минус, т.к. от оптимальной расстановки зависит очень много. Но не беда, расстановку можно делать и вручную, главное делать это сразу же, по мере добавления деталей на схему. Словно мы хотим развести все вручную. Если сначала нарисовать схему, а потом пытаться расставить, то получится такая каша, что понять что то там будет совсем нереально. А так мы сожрем этого слона по кусочкам, сильно облегчив автороутеру жизнь.

Был у меня вот такая схема:

зазырить в полный рост

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

Рубрика: Софт | Метки: , , | Комментарии (81)

ARM. Учебный Курс. Вводная

Intro
Потихонечку, дабы не выпадать из модных течений, решил я запилить обучалку по ARM контроллерам.

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

Disclaimer
Информация будет не столько для тех кто начал с нуля, а тех кто уже наигрался с 8ми битными контроллерами и решил полезть выше.
И я буду отталкиваться от этого уровня, не сильно упираясь в разжевывание подробностей и мелочей (т.к. сам их еще не знаю ;) ), а действуя по индийской методике, где часто доказательство теоремы выглядит в виде одного слова «смотри».

Также, по дефолту, буду считать, что читатель, раз освоился на PIC/AVR/C51, умеет читать даташиты и ковырять инфу сам.
Это не значит, что я не буду отвечать на вопросы в комментариях. Буду, но знайте, что для этого мне придется вместо вас лезть в даташит и разбираться. Я могу это делать — знаете как быстро в таком режиме идет самообразование! Метод «Я гуру и вам щас все вжую» пинает круче любой сессии, т.к. в отличии от сессии не кончается никогдааа :) А могу не делать. В зависимости от моего свободного времени и желания общаться :) Да, у меня есть преимущество — освоив несколько разных архитектур я уже задницей чую где и что надо искать в даташите, но свою голову никто не отменял :)
Читать далее

Рубрика: ARM. Учебный курс | Метки: | Комментарии (171)

Работа с портами ввода-вывода микроконтроллеров на Си++

При разработке программ для микроконтроллеров (МК) работа с внутренний и внешней периферией является очень важной частью (а иногда и единственной) программы. Это своего рода фундамент, на котором основывается более высокоуровневая логика программы. От эффективности взаимодействия с периферией напрямую зависит эффективность программы в целом. Под эффективностью здесь следует понимать не только скорость выполнения и минимальный размер кода, но и эффективность написания и сопровождения кода.
Многие внешние устройства подключаются к МК через порты ввода-вывода общего назначения (GPIO). Эффективность взаимодействия с этими устройствами во многом зависит от способа работы с портами ввода-вывода.

Тут возникают два, на первый взгляд, противоречивых требования:

  • 1)Драйвера внешней периферии хочется писать максимально абстрагировавшись от конкретного способа подключения к микроконтроллеру, а ещё лучше независимо от типа микроконтроллера. Переписывать «библиотечный» код для каждого проекта не очень хорошо.
  • 2)Скорость и размер кода в большинстве случаев имеют большое значение.

Читать далее

Рубрика: AVR. Учебный курс | Комментарии (59)

Простейший индикатор расхода топлива на инжекторный двигатель

Сразу же после покупки автомобиля (Mitsubishi Lancer, 2003) озадачился установкой индикатора расхода топлива. Японцы сильно сэкономили на этом авто и не установили некоторые полезные функции — пришлось исправлять ситуацию.
Первой мыслью было или покупка готового — существуют множество промышленных устройств, в том числе заточенных под Lancer 9, или самостоятельная сборка какой-нибуть любительской конструкции — и таких немало. Поизучав немного тему выяснил, что все предложенные девайсы обладают избыточностью функций — а мне-то всего навсего нужен расходомер. Поэтому и было решено делать самому. Единственное место на панели куда-бы приборчик вписывался — на место штатных часов, поэтому хочешь-не хочешь он должен и время показывать. Ну и так как при применении 2-х строчного ЖК в этом случае остается незаполненный угол — значит и туда надо что-нибуть более-менее полезное вставить, например индикацию температуры. Кстати говоря, поначалу задумывалась индикация и некоторых других параметров — зарядка аккумулятора, расход на 100 км, мгновенный расход в цифрах и т.д. уже и не припомню — и почти все задумки были реализованы в первой версии индикатора.

Читать далее

Рубрика: Автоэлектроника | Метки: , | Комментарии (99)

Питерцы, минуточку внимания

Есть в СПб такое место — Аничков Дворец, он же дворец творчества юных. А в нем есть отличный детский радиокружок (с 12 до 16лет), где бесплатно обучают нашей премудрости. От мультиметра до программировани МК и ПЛИС. Сам курс кружка рассчитан на три года, вот, кстати, его обучающая программа. Думаю не стоит говорить насколько это важно и полезно для радиоэлектроники вообще. Я, например, был сильно удивлен тому факту, что данный кружок вообще существует.

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

Адрес:
Санкт-Петербург, Невский пр., д.39. Отдел «Техника». Лаборатория радиоэлектроники.

На все вопросы по работе кружка вам с удовольствием ответят по телефону:
(812) 310-79-40

Ну и сайт кружка radiostudy.ru

З.Ы.
От себя прошу донести эту инфу дальше, глядишь благое дело не загнется.

Рубрика: Новости | Комментарии (36)

Кибермашинки VIAC уже в Челябинске

Судя по трэкингу, они сейчас где то в районе Труда/Васенко. А завтра, если я правильно понял сообщение из блога, будет презентация/демонстрация. Где пока неизвестно. Обещали сообщить.

Челябинцы, айда туда толпой! =) Скоординироваться можно тут. Я сильно постараюсь добраться до них и поглядеть на эти автобусы. Заодно можете оставлять заявки на то, что сфоткать подробней.

О чем это я? Читать далее

Рубрика: Новости | Метки: | Комментарии (22)

Работа в Eagle Cad. Часть 2

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

Теперь возьмемся за редактор компонентов. Т.к. библиотеки хоть и обширные, но нельзя обьять необьятное. Так что рано или поздно попадется тебе такая деталька которой нет в библиотеках. Либо библиотечная не понравится. И придется рисовать свою. Что до меня, так я постоянно то готовые правлю, то новые создаю.

Создание своего компонента в Eagle cad
Когда я впервые сел за орла, мне это покзалось очень запутанным и сложным, но на деле, если отбросить мишуру, все будет очень и очень просто. Давайте-ка создадим, для примера, что нибудь несложное. Например линейный стабилизатор LM-1117-3.3 в разных корпусах. Его я не нашел в библиотеках.

Итак, вначале даташит на LM1117

Задача ясна, будем творить. Открывай главное окно Орла и в меню выбирай File—New—Library
Читать далее

Рубрика: Софт | Метки: , , , | Комментарии (98)