All posts by DI HALT

Saturn PCB Toolkit

Проектируя главную деталь электронного устройства — печатную плату периодически приходится делать разные расчеты. Обычно у меня это толщины переходных отверстий и дорожек, чтобы прошли по току. Иногда надо рассчитать импенсданс дифференциальной линии или, банально, прикинуть делитель напряжения. Для таких задач под рукой болтается Saturn PCB Toolkit. У меня версия 7.05, старенькая, еще 18 года, но более новую я не нашел. А с официального сайта почему-то нельзя уже скачать. Поэтому выкладываю дитрибутив у себя.

Бегло опишу что умеет. (далее…)

Read More »

Интерфейс RS-485

Интерфейс RS-485

Последнее время я делаю по большей части промышленные устройства и все чаще там используется именно RS-485. Потому как он используется как физический для множества протоколов, принятых в проме, таких, например, как MODBUS или ProfiBUS.

▌Принцип работы
Интерфейс RS485 хорош тем, что он, по сути дела, является дифференциальным вариантом RS-232 и его можно вешать на банальный USART любого микроконтроллера.

Физически он состоит из двух линий связи. А и B. Наличие земли желательно, но вовсе не обязательно. Отсутствие земли чаще всего чревато тем, что входящие данные будут иногда начинаться с нуля. Т.е. шлешь строку 0xBA 0xDF 0xF0 0x0D, а приходит 0х00 0xBA 0xDF 0xF0 0x0D, а дальше все нормально.

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

По линии А идет прямой UART, как он есть, а по линии В его зеркальная копия. А в приемнике, на дифференциальном операционном усилителе, одно вычитается из другого и получается исходный сигнал.


(далее…)

Read More »

Контроллер дверей

Для решения одной локальной проблемы с дверями, таблом и освещением автомойки запилил подобие небольшого ПЛК, или, скорее, умного реле. Проект выходного дня, так сказать. Ничего особо выдающегося собой не представляет, но все равно выложу, мало ли кому понадобится что-то похожее, а тут все уже готовое. Заказывай в китае платы, да делай. А там только свой код написать, но это же не сложно, да? ;) Тем более я покажу как все работает.

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

Пляшем от корпуса. Нам нужен корпус на DIN рейку. Я взял Gainta D2MG

Чтобы сразу попасть во все размеры, была нагуглена и скачана 3D модель этого корпуса в step формате. Импортировал все в Fusion360 и снял размеры платы. Решено было делать два этажа, соединенных проводом. Внизу будут располагаться релюшки и модуль питания, а вверху мозги.
(далее…)

Read More »

Реанимация засохшей паяльной пасты

Обычно smd монтаж я делаю просто паяльником, ручками. Даже если устройств надо с десяток. При том, что в JLCPCB или PCBWAY трафарет для пасты делается одной галочкой и стоит баксов 7. И да, я их тоже часто заказываю, но паяю все равно ручками… Дело в том, что устройства требуются внезапно. И редко, но метко. А у паяльной пасты есть одно мерзкое свойство — эта падла моментально сохнет. Вскрыл баночку, израсходовал ну процентов 30.. Через пол года открыл, а она уже засохла. Хоть как храни, хоть в холодильнике. Как ни закрывай, а засыхает. Мелкие же банки, чтобы использовать на один раз, стоят неадекватно. Меня жаба давит.

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

А тут досталась мне большая банка пасты. На килограмм почти. Нахаляву. Старая, усохшая до состояния замерзшего пластилина, с комками жесткими как засохшая грязь… Выкинуть бы ее, но нахаляву и уксус сладкий :)))) В общем, давай я тут развлекаться и ставить эксперименты.

Не буду перечислять все способы ее развести, но успешным признан следующий метод:

Берем небольшое количество пасты, примерно 30мл (баночка от соевого соуса, что шел к роллам) и пару пшиков туда из пульверизатора спирта этилового. Просто у меня спирт в пшикалке, сколько там в одном пшике? 0.2мл? Примерно так. И размешиваем, прям от души. Потом еще пару пшиков, опять размешиваем. Закрываем, убираем на сутки. Это надо, чтобы спирт дифундировал в остальной объем. А не был там локальными каплями жидкой фракции. На следующий день повторяем. И так до нужной консистенции. Еще я туда бахнул 0,1 кубика FluxPlus от Nordson. Он еще добавил тягучести и как бы сделал всю эту хрень более «сухой». Размешал тщательно. Выдержал еще сутки.

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

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

Read More »

Контроллеры от GigaDevice GD32F103xxxx. Попытка миграции с STM32F103xxxx

В связи с тем. что последнее время цена на контроллеры растет быстрей чем стоимость битков, а, например, наш основной STM32F103VGT6 стал стоить вместо 500р аж 5000+, да еще с непонятными сроками ожидания от года и более, то мы начали вынужденную миграцию на аналоги. И взгляд пал на GD32, как на наиболее вменяемого и адекватного представителя китайпрома. А главная задача стала сделать универсальную прошивку которая бы одинаково работала как на STM32 так и на GD32. Чтобы можно было не глядя лить в наши машины смерти, не обращая внимания на то на какой архитектуре там мозги.

Купили мы небольшую партию этих чипов на Алиэкспрессе :))) Уже звучит жутко, но вариантов особо не было :)

Итак, на смену STM32F103VGT6 идет GD32F103VGT6 — китайцы не заморачивались вообще с названиями. И то правда. Чего нам париться? Совместимость у него по ногам полная, так что впаиваем его как есть.

А вот дальше начинаются различия. Во первых, памяти у него может быть больше. Аж до трех мегабайт флеша, против мегабайта у STM. Что, впрочем, не более чем потенциальная возможность, в моем случае, т.к. GD32F103VGT6 по объему памяти идентичен STM овскому камню. А еще у китайца тактовая частота выше, 108Мгц против 72Мгц у STM. Подозреваю Errata там тоже исправлена. Но, не факт что это к лучшему :)
(далее…)

Read More »

Аккумуляторная бормашина Dremel 8220

Купил я ее несколько лет назад, активно пользуюсь. Раз в неделю то точно. Что могу сказать — чего же я не купил ее раньше то!!! :) Не, гравер у меня был. Похожей мощности, размера и веса. Только проводной. Какой то Bort…. чето там. Вполне себе приятная зуделка была, единственное почему я ей редко пользовался — провод, мать его. Этож надо взять, размотать, найти розетку, потом смотать. Да ну нахрен, проще надфилем поддрочить и все делов. В итоге, пользовался я ей редко. А потом как наткнулся на аккумуляторный вариант, так сразу и купил. И с тех пор это один из самых юзаемых девайсов на рабочем столе. Сравнимый с шуруповертом. Подточить, подрезать, отпилить, просверлить в неудобном месте.

▌Внешний вид
Обычный гравер. Ухватистый, тяжеленький. Сзади втыкается аккумулятор, полностью совместимый с бошевской домашней, «зеленой», серией.

Что было прекрасно, т.к. у меня и зарядников таких несколько штук и батарей штук пять наберется. Спереди стандартная дремелевская резьба для насадок:
(далее…)

Read More »

Гальваническая развязка аналогового сигнала

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

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

И даже можно попробовать на нем что-то изобразить. Но возникает несколько проблем. И главная даже не в нелинейности. В конце концов, в большинстве случаев, у нас сигнал все равно идет на АЦП какое-нибудь. А там нелинейность можно бы и программно исправить — бомбануть табличку или по формулам с кусочно-линейной аппроксимацией. Нет, главная проблема тут в разбросе параметров самих оптронов от штуки к штуке, даже в пределах одной партии, более того, они еще и с температурой очень сильно изменяют свои характеристики. Получится система которую сложно повторить и откалибровать. Скорей получится сделать всратый термометр чем линию связи :)
(далее…)

Read More »

Простая работа с биполярным сигналом датчика

Работая с разными аналоговыми датчиками часто натыкаешься на то, что у датчика сигнал биполярный. Ну то есть он не 0…5 вольт, а, например, -2.5…+2.5. И вот ради такой фигни городить двуполярное питание ну совсем не хочется, добавлять ОУ, чтобы сместить уровень до съедобного для АЦП тоже. Если точность позволяет, то есть такое вот простое и ультрадешевое решение:

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

Ну, а считается он элементарно. Скажем, минимальное напряжение сигнала -2 вольта. Ток в АЦП не течет, значит весь ток идет только по ветке In — R2 — R1 — 5V При -2 вольтах на входе, разница потенциалов с питанием будет 7 вольт. По закону Ома 7V / 20kOhm = 0.00035A. Падение на резисторе R1 будет 3.5 вольта. А значит на средней точке делителя будет 5-3,5 = 1.5 вольта.

Если же на входе 2 вольта, то точно также: Разница напряжений 3V, ток в ветви 3V / 20kOhm = 0.00015A. Падение на резисторе R1 будет 1.5 вольта, а значит на средней точке делителя будет 5-1.5 = 3.5 вольта.

Понятно, что у данного решения хватает минусов. Например то, что плаванье питания непременно скажется на амплитуде выходного сигнал нашего датчика. Можно, конечно, застабилизировать его каким-нибудь LOW-DROP стабилизатором, выведя на отдельную ветку от основного. Но тут надо смотреть, чтобы стабилизатор не стал дороже нормального решения на ОУ :) Также мы теряем в размахе сигнала. На входе был размах в 4 вольта (-2…2), а на выходе получили всего 2 (1.5…3.5) вольта.

Еще не помешает защитный диод. Его задача не дать напряжению обратной полярности входного сигнала пролезть в питание и натворить там дел.

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

Read More »

Торцовочная пила Proxxon KGS-80

▌Прецезионна пальцерезка
Я последнее время частенько мастерю разную умную и, порой, всратую механику для вендинговых автоматов, которые делают странное. Например, убивают людей кучей разных изощренных способов :) А под это дело постоянно приходится отпиливать разные валы, конструкционный профиль, отпиливать кусочки от кругляка с последующей токаркой. И делать это с достаточной точностью. Ну чтобы попасть хотя бы в треть миллиметра.

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

Read More »

Объединение JLCPCB и EasyEDA

Недавно две дружественные конторы JLCPCB и EasyEDA слились в одну. Теперь это единая экосистема из облачного САПРа и производителя плат. Собственно оно уже давно так, видать теперь это как то юридически произошло. Ждем когда в эту же когорту окончательно войдет еще и LCSC, чтобы уже официально. И тогда можно будет в один тык отправлять сразу на производство готового изделия.

Но на всю эту корпоративную возню как бы наплевать, если бы они под этот повод не выдавали купоны на 10 баксов под новый заказ. Выдают их тут. Я правда не понял можно ли им оплатить сразу весь заказ или только часть. А если часть, то какую. Кто попробует — напишите в комментах. Если не получится, то тоже напишите :)

Read More »

Гальваническое разделение. Часть 1

▌А зачем?
Порой приходится работать с системами где крайне нежелательно, чтобы была электрическая связь между блоками устройства. Скажем между блоком датчиков, линиями ввода-вывода и блоком управления. Обычно это связано с тем, что линии IO находятся на горячей стороне с высоким напряжением, а цепи управления мало того, что работают на низком напряжении, так еще до них может дотянуться своими шаловливыми ручонками человек и убиться об них если что-то пойдет не так. Разделение часто делают, чтобы отрезать крайне шумную часть от нежных мозгов сложной логики, вроде контроллера, чтобы ему не прилетело в голову какой-нибудь высоковольтной помехой. Также гальваническую развязку делают в том случае если есть проблема с объединением земель между блоками из-за блуждающих токов, наводок и прочих бед.

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

▌Гальваническое разделение питания
Обычно гальванически разделяют информационную составляющую сигнала связи, а питание каждый блок берет из своего источника. Но иногда надо выделить изолированную часть в одном приборе, а чем ее питать? Тут то на помощь и приходят изолированные преобразователи питания.

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

Я обычно использую три типа преобразователей в своей практике и держу их в запасе.

MeanWell NSD15-12S5

Это преобразователь 12 в 5 вольт. Но у MeanWell есть и другие номиналы похожего питальника. Ток у него до 3А. Я про него писал уже как то раз отдельную статью, несколько лет назад. Отличная штука. Надежная, дубовая. Работает как часы. Громоздкая только немного.

Aimtec AM1D-Z
Для меньшей мощности применяю блок от Aimtec AM1D-Z. Линейка преобразователей у Аймтека довольно большая, я обычно использую и держу в наличии всегда AM1D-0505SZ. Он принимает на входе 5 вольт и отдает 5 вольт, но уже гальванически отвязанные. И ток около 200мА, чего достаточно, чтобы запитать интерфейсные микросхемы, да микроконтроллер какой. КПД порядка 80%

По ссылке на картинке находится даташитик, точнее перечень вариантов этого преобрзователя. Там страницы две мелким шрифтом :)

Габариты у него совсем небольшие. А цена около 150-200р, не текущий момент.

(далее…)

Read More »

STM32. Контроллер внешней параллельной памяти FSMC

У микроконтроллеров собственной памяти мало, даже если говорить о каком-нибудь жирном прежирном Corteх, все равно: как волка ни корми, а у медведя, т.е. полноценного компьютера, толще. Поэтому практически все микроконтроллеры, в своем жирном исполнении так или иначе позволяют подцеплять к себе внешнюю параллельную память. Даже древний, как говно мамонта, АТ89С51 это умел. Что уж говорить про AVR и STM32.

▌Параллельная память

Для такой памяти характерны две черты: наличие двух шин: адреса и данных, и разных там стробов. На чтение, запись, тактовых и прочих. А вся суть работы с ними предельно простая. Чтение — мы выставляем на ногах адресной шины (коих обычно от 16 до 32) адрес нужной ячейки, отдельной ногой указываем, что у нас чтение, дергаем стробом и на шине данных (8 или 16 бит, обычно) появляется желанные байты. Запись похожим образом, только тут на шину данных мы выкладываем то, что хотим записать, на адресную шину кладем адрес куда надо записать, расставляем контрольную линию в режим записи и дергаем стробом. Опа, данные в памяти. Поскольку тут не требуется совершать сложных логических действий, то это все работает очень быстро, а реализовать можно даже на логике рассыпной. Естественно, что в разных МК такие интерфейсы были всегда.
(далее…)

Read More »

Электроника шаг за шагом. Переиздание

Одна из лучших книг по электронике для начинающих, «Электроника шаг за шагом» от Рудольфа Анатольевича Свореня, готовится к переизданию. И, что мне особенно нравится, дизайн обложки не изменился.

Это не репринт, издание немного было переработано под редакцией Юрия Всеволодовича Ревича, автора многих книг по микроконтроллерам и электронике. Часть устаревшего материала убрали. Где-то добавили пояснений. Практикум приведен в соответствие с современной элементной базой.

Издательство ДМК Пресс. Предзаказ там же. Ждем с нетерпением.

А, еще есть промокод. «Svoren_Di_Halt» Дает скидку 25% при покупке в предзаказ.

Read More »

Операционный усилитель. Примеры схем с описанием работы ч. 3

▌Антилогарифический усилитель

Если переставить диод в логарифмическом усилителе, то получим антилогарифмический, с экспоненциальным усилением. Работает точно также, ток, ничем не ограниченный, течет в виртуальное заземление, увеличиваясь примерно по экспоненте, как это принято у pn перехода. Ну, а поскольку это тот же ток, что течет в ООС, то помноженный на сопротивление резистора он даст нам выходное напряжение увеличивающееся по экспоненте. Все просто :))) Правда вместо диода лучше использовать транзистор. Используя его БЭ переход в качестве диодного pn перехода, а база при этом заземляется. У него характеристика лучше. Или, вообще специализированные усилители с готовой характеристикой.

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

▌Умножитель и делитель
Как упростить умножение? Заменить его сложением логарифмов. Ln(A*B) = Ln(A) + Ln(B). А деление это, соответственно Ln(A/B) = Ln(A)-Ln(B). Проще некуда, лол. Но так на самом деле выходит сильно проще :) Т.е. если нам надо помножить два аналоговых сигнала, то мы сначала прогоняем их через логарифмирующие усилители, потом загоняем в сумматор с коэффициентом усиления 1, а дальше прогоном через антилогарифмический усилитель достаем из под логарифма.

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

Для таких задач есть специальные микросхемы, вроде AD633 (умножитель) или AD734 (умножитель/делитель), тысячи их.

(далее…)

Read More »

Операционный усилитель. Примеры схем с описанием работы ч. 2

▌Преобразователь тока в напряжение

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

Вот так. Но у данного метода есть боольшой недостаток — высокое входное сопротивление. Т.е. нам, чтобы получить напряжение надо наш ток умножить на сопротивление, ну по закону Ома U=I*R. А если ток маленький? Скажем, дает датчик 0…1мА? А нам снять для АЦП нам надо хотя бы несколько вольт. Первое что приходит в голову это просто поставить резистор побольше, скажем на 5кОм. Получим, в максимуме, 5 вольт на выходе. Ага… По идее, и то если источник тока, которым является наш некий датчик, будет обладать достаточно высоким внутренним сопротивлением, чтобы развить на выходе такое напряжение, чтобы через эти 5кОм продавить 1мА. А это далеко не всегда так. Датчик может быть хиленьким и дохленьким и от нашего нагрузочного сопротивления просто сдуется и не даст своего тока.

В таком случае надо датчик нагрузить на КЗ и снимать непосредственно ток уходящий в это КЗ. Но чтобы КЗ как бы и не было, чтобы было откуда брать падение… Ну, в общем, вы поняли к чему я клоню ;)


(далее…)

Read More »

Изготовление плат в PcbWay

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

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

Потом я у них платы и за свои деньги делал, удобно было с формой оплаты, обычно я в JLCPCB делаю, а тут надо было webmoney сбросить, а JLC их не принимают, потому сделал в PcbWay. Но о приколах с оплатой ниже будет. Ну и раз обещал, запилю таки обзор их сервиса, описав процесс заказа.

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

На сайте у них полный визуальный хаос, аж глаз дергаться начинает. Но это не страшно, главное нажать в любую ссылку с надписью quote now, коих там предостаточно. И вас выбросит в меню заказа. Которое подозрительно напоминает такое же в JLC. Ну очень похоже, хотя может это просто стандарт уже такой. Во всяком случае не то днище в виде заполнения дебильных экселевских файлов которые так любят российские производители. Как вспомню так вздрогну :)

Рекомендую сразу ткнуть влева сверху на ссылку Quick-order PCB ⇒(only 1 min) и там можно сразу подгрузить гербер файл, по крайней мере не придется вручную вписывать размеры платы, они определятся автоматически. Остальное же остается таким же.


(далее…)

Read More »

Маленькая хитрость

Я думаю многие сталкивались с тем, что подключаешь программатор к девайсу, а он из системы пропадает. И надо его перетыкать. Особенно если речь идет о каком-нибудь ST-Link или USBASP/AVRISP за копейки с Алиэкспресса. Схемотехника там говеная, чего уж там. Все по минимуму.

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

Берем да вкорячиваем в разрез питания нашего кабеля конденсатор и дроссель. Кондер берем микрофарад так на 470, нехай подавится, скотина. А дроссель на максимальную индуктивность, какую не жалко и чтобы ток держал рабочий. Хотя бы миллиампер на 500. У меня это дроссель на 220мкГн и 1А. CW68-221K. Задача дросселя не дать броску тока заряда конденсатора при включении программатора в USB что-нибудь спалить. А при включении программатора в девайс этот же дроссель не позволит броску тока дать по рогам контроллеру программатора.

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

Ну и парочку супрессоров на напряжение линии уж тогда до кучи. Вначале и в конце. Можно прям к разъему припаять.

Делов на пять минут, а польза неимоверная. Сделайте уже и не матюкайтесь :)

Да, про ST-Link… Знаете какая самая частая причина выгорания этого свистка?

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

И еще один прикол с ним же. У него распиновка может отличаться от версии к версии. Причем даже в одной партии, купленной у одного и того же китайца. Это вообще веселое западло :) Я уже три разных версии распиновки видел. А разъем то тот же самый. Берешь и втыкаешь не глядя, а тут опа… Самая жопа когда оно вроде бы работает (на паразитном питании через порты, ага), но глючит адово и сидишь и не понимаешь, то ли ты олень, то ли лыжи не едут и вообще вчера все работало.

Read More »

Операционный усилитель. Примеры схем с описанием работы

Продолжение статьи «Операционный усилитель. На пальцах. Для самых маленьких»

Разберем еще пару схем, чтобы было понятно что и как. Как обычно, усилитель у нас идеальный.

▌Преобразователь напряжения в ток
Иногда надо получить источник тока. Это такой источник энергии который обеспечит протекание нужного тока через любое сопротивление. Вот есть у нас источник на 10мА и если мы его замкнем накоротко, то будет через точку КЗ течь ток в 10мА, а если мы оборвем его, то через обрыв … будет течь ток в 10мА, для этого источник тока загонит свое выходное напряжение до такого уровня, что заряды побегут через воздух, образовав пробой. Ну это в идеальном случае конечно. В реале источник тока при обрыве просто выставит свое максимально возможное напряжение.

Зачем нужно такое? Ну… по разным причинам. Светодиоды питать, например. Или есть линии связи на токовой петле. Когда у нас по проводу передается сигнал не напряжением, а током. Это очень удобно — от длины линии и роста ее сопротивления сигнал не меняется, всегда можно детектировать состояние линии — обрыв это нулевой ток, КЗ это ток выше лимита.

Я как то уже писал про токовую петлю 4-20мА. И вот там был пример применения ОУ для создания преобразователя напряжение-ток. Вот его схемотехника:

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

И можно смело вычислить ток I который будет, просто по закону Ома, равен как I = Uвх/R3. Но так как на самом деле никакого КЗ нет и, более того, во входы ОУ ничего не течет из-за его бесконечного сопротивления, то Ioс = 0. А раз Iос равна нулю, то ток I = Iout и жестко задается ТОЛЬКО входным напряжением и значением R3. Как бы не менялось побочное сопротивление линии R1 ток останется неизменным. Ну, конечно, при условии, что источник питания U может это обеспечить должным напряжением.
(далее…)

Read More »

Удобная работа с GPIO на STM32

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

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

В общем, суть такова:
(далее…)

Read More »

Набор для детей GeeGrow лаборатория гика. Базовый курс.

Недавно, общаясь с одним из поставщиков, с Димкой Снежинским, он упомянул, что дескать начали пилить свой собственный обучающий набор для детей на базе Arduino и уже давненько его продают. На мой вопрос, мол, чего мне не закинул на обзор, как бы сотрудничаем давно, я бы подтолкнул тему. Он как то засмущался, мол у меня тут злые дяди, придут обосрут, скажут arduino фу отстой. Не та аудитория.

Да блин, это же детский конструктор! Для детей 8-16 лет ардуйня самое-то. Просто, дуракоустойчиво, куча мануалов и цветных картинок. Для вхождения в тему самое то. Плохо когда на ней засиживаются и пытаются серьезные вещи делать. Вот это фейспалм, да. Но об этом речи и не идет.

▌GeeGrow. Базовый курс
Итак, что у них получилось. Вроде как очередной ардуиновский конструктор, тысячи их. Но тут есть ряд приятных моментов которые мне понравились и которых нет у других.
(далее…)

Read More »