Жж рожденный с паяльником – Рождённый с паяльником — LiveJournal

Жж рожденный с паяльником – Рождённый с паяльником — LiveJournal

Рождённый с паяльником — LiveJournal

Доброго времени суток. Камраден, пост о программирование СОМ-портов в linux!

Ваяем тут одну железяку с кучей СОМ-портов, работающую под линем. И для отладки драйверов и железа ваяю программу тестирования СОМ-портов. Чтобы не изобретать велосипед за основу была взята программа linux-serial-test (рекомендую программулинку заценить нуждающимся).

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

[спойлер примера кода]

void process_write_data()
{
    int count = 0;
    unsigned char write_data[1024] = {0}; //буфер 1 килобайт
    while (1) {
        int i;
        for (i = 0; i < sizeof(write_data); i++) { //заполняем буфер данными
            write_data[i] = _write_count_value;
            _write_count_value++;
        }

        int c = write(_fd, &write_data, sizeof(write_data));

        if (c > 0) {
            _write_count += c;
            count += c;
        }
        if (c < sizeof(write_data)) { //проверяем всё ли передали?
            _write_count_value -= sizeof(write_data) - c;
            break; //да, всё, выходим из цикла
        } else {
            count += c;
        }
    }
}

Мы не можем быть уверенны в том, что данные передались. Фактически получается так, что система нам говорит о готовности передачи, мы продолжаем укладываем туда данные, а фактически мы укладываем 4 килобайта внутреннего буффера, и данные ещё даже не начали передаваться.

Внимание вопросы. Изготовление двухканального универсального фазового регулятора: пошаговая инструкция

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

Компоненты и функциональность двухканального фазового регулятора

Двухканальный универсальный фазовый регулятор представляет собой сложное электронное устройство с широким функционалом. Рассмотрим его основные компоненты и возможности:

  • Микроконтроллер ATtiny26 для ПИД-регулирования и индикации
  • 10-битный встроенный АЦП для обработки сигналов с датчиков
  • Усилитель LM358 для предварительной обработки сигналов
  • Регистр 74ALS573 для управления индикацией
  • Двухразрядный семисегментный индикатор
  • Кнопки управления «+», «-«, «Mode», «Func», «Power»
  • Оптопары 4N35 для развязки с силовой частью
  • Симисторы для управления мощной нагрузкой
  • EEPROM 24С04 для регистрации и хранения данных

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


Подготовка к изготовлению печатной платы

Процесс изготовления печатной платы начинается с подготовки необходимых материалов и инструментов. Что потребуется для работы?

  • Фольгированный текстолит
  • Калька или прозрачная пленка для печати
  • Фоторезист
  • Ультрафиолетовая лампа
  • Щелочь для проявления
  • Хлорное железо для травления
  • Растворитель для удаления фоторезиста
  • Флюс и припой для лужения

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

Процесс изготовления печатной платы фотоспособом

Изготовление печатной платы фотоспособом включает несколько ключевых этапов:

  1. Нанесение фоторезиста на фольгированный текстолит
  2. Совмещение трех слоев топологии и экспонирование платы ультрафиолетом
  3. Проявление засвеченных участков в щелочном растворе
  4. Травление платы в растворе хлорного железа
  5. Удаление оставшегося фоторезиста растворителем

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


Финальная обработка и подготовка платы к монтажу

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

  • Лужение платы с помощью активного флюса и легкоплавкого припоя (например, сплава Розе)
  • Отмачивание платы в воде не менее суток для удаления остатков флюса
  • Нанесение маркировки компонентов с помощью мелованной бумаги
  • Сверление монтажных отверстий

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

Особенности монтажа и настройки компонентов

Монтаж компонентов на подготовленную плату требует внимательности и аккуратности. На что следует обратить особое внимание?

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

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


Применение и возможности использования готового устройства

Готовый двухканальный фазовый регулятор обладает широкими возможностями применения. В каких областях он может быть использован?

  • Контроль температуры в промышленных печах и термокамерах
  • Управление системами отопления и кондиционирования
  • Регулирование мощности электроприборов
  • Использование в качестве цифровой паяльной станции
  • Автоматизация процессов в сельском хозяйстве (например, в теплицах или овощехранилищах)

Благодаря возможности регистрации данных в EEPROM, устройство позволяет вести долговременный мониторинг контролируемых параметров. Это может быть полезно для анализа эффективности работы системы и оптимизации процессов.

Перспективы модернизации и расширения функционала

Разработанное устройство имеет потенциал для дальнейшего усовершенствования. Какие возможности открываются для его модернизации?

  • Добавление интерфейса для связи с компьютером (например, USB) для более удобного анализа данных
  • Расширение количества каналов управления
  • Интеграция с системами «умного дома»
  • Добавление беспроводного управления (Wi-Fi, Bluetooth)
  • Разработка мобильного приложения для удаленного мониторинга и управления

Одним из перспективных направлений является объединение функционала устройства с возможностями USB. Это позволит не только обеспечить питание устройства от компьютера, но и реализовать удобный интерфейс для настройки и анализа данных.


Вопросы безопасности при работе с силовой электроникой

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

  • Использование качественной изоляции между силовой и управляющей частями схемы
  • Применение предохранителей и устройств защитного отключения
  • Правильный подбор компонентов с учетом максимальных токов и напряжений
  • Обеспечение адекватного охлаждения силовых элементов
  • Проведение тщательного тестирования перед подключением к реальной нагрузке

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


Рождённый с паяльником — LiveJournal

Доброго времени суток. Камраден, пост о
программирование СОМ-портов в linux!

Ваяем тут одну железяку с кучей СОМ-портов, работающую под линем. И для отладки драйверов и железа ваяю программу тестирования СОМ-портов. Чтобы не изобретать велосипед за основу была взята программа linux-serial-test (рекомендую программулинку заценить нуждающимся).

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

[спойлер примера кода]

void process_write_data()
{
    int count = 0;
    unsigned char write_data[1024] = {0}; //буфер 1 килобайт
    while (1) {
        int i;
        for (i = 0; i < sizeof(write_data); i++) { //заполняем буфер данными
            write_data[i] = _write_count_value;
            _write_count_value++;
        }

        int c = write(_fd, &write_data, sizeof(write_data));

        if (c > 0) {
            _write_count += c;
            count += c;
        }
        if (c < sizeof(write_data)) { //проверяем всё ли передали?
            _write_count_value -= sizeof(write_data) - c;
            break; //да, всё, выходим из цикла
        } else {
            count += c;
        }
    }
}

Мы не можем быть уверенны в том, что данные передались. Фактически получается так, что система нам говорит о готовности передачи, мы продолжаем укладываем туда данные, а фактически мы укладываем 4 килобайта внутреннего буффера, и данные ещё даже не начали передаваться.

Внимание вопросы:

1. Возможно ли изменить с помощью, например, ioctl размер буфера записи/чтения (драйвер пока перепахивать не очень хочется)?
2. Есть ли возможность сделать более real time передачу через СОМ-порт (со стороны user space и kernel space)?

ru-radio-electr.livejournal.com

про питание (просто история) — Рождённый с паяльником — LiveJournal

Казалось бы простоя вещь — подать +12 вольт на СТМ-овскую нуклею (446 в данном случае). А вот не всегда…
Отлаживал я тут на днях одно поделие на СТМ, и естественно нужно его для начала запитать. PCB пока полупустая, для простоты аксиоматики, кроме собственно нуклеи, ftdi и мелочи для связи с видеокамерой и нет ничего. (то, что STM32 неплохо работает по USB без ftdi я знаю — но заказчики порой такие заказчики…)
В итоге, схема питания получается такая — +12 с лабораторного источника на плату, там сходу диод имени товарища Шотки (MBR0520L), электролит на землю (2200.0), и пошло на ногу Vin нуклеи, там по дороге еще несколько 10nF керамических кондеров тоже на землю. Все, больше ничего.
Включаю. Естественно, работает — куда денется, потребление 3мА, все хорошо. Запускается прошивка, разгоняет АЦП до максимума, начинает дергать порты — потребление поднимается до 130мА — и тут напряжение на входе СТМ проседает до 7 вольт, диод Шотки превращается точечный тепловой источник. Гм… Говорю себе я. Что-то не так. Выпаиваю диод, проверяю — на нем действительно на постоянном токе падает около 3 вольт при токе около 150 мА. Поминаю недобрым словом китайцев с их пониманием РОСХа (перегрели, сволочи, бессвинцовым припоем), впаиваю новый диод — вижу ту же картинку. Понятно, говорю, видимо партия такая… Но коллега проверят новый диод из линейки до включения — все отлично, чуть меньше 0.2 в падение, как в даташите. Ага. Впаиваю, включаю. Опять оно. В мой мозг закрадывается нехорошее подозрение по имени «паразитная генерация», и, не дав себе подумать слишком долго («Так трусами нас делает раздумье»), напаиваю керамики 220uF параллельно электролиту — напряжение поднимается на 1 вольт. Оба-на… Заменяю диод снова — пожалте, +11.83 как доктор прописал. Ради интереса отрываю керамику — напряжения проседает, диод греется, и после примерно 5 сек работы в таком режиме поджаривается, и начинает просаживать напряжение даже с керамическим кондером до 8 вольт.
Осциллогаф, естественно, ничего на питании не видит, поставленный в жлущий режим — не запускается. Одно слово, инструстра 205, чего с него просить.
То есть понятно, что это какая-то достаточно выскочастотная генерация. Но на роль активного элемента претендент только один — тот самый диод Шотки. Но разве такое возможно?
Проблемы нет — я просто вместо 2200 электролита поставлю десяток 220 керамики (емкость взята не совсем с потолка, сильно уменьшить нельзя, не процессор там главный потреблятор). Но забавно, может пригодится кому при случае.

ru-radio-electr.livejournal.com

Рождённый с паяльником — LiveJournal

? LiveJournal
  • Main
  • Ratings
  • Interesting
  • Disable ads
Login
  • Login
  • CREATE BLOG Join
  • English (en)
    • English (en)
    • Русский (ru)
    • Українська (uk)
    • Français (fr)
    • Português (pt)
    • español (es)
    • Deutsch (de)
    • Italiano (it)
    • Беларуская (be)
ru_radio_electr — 18 position in moscow region rating

ru-radio-electr.livejournal.com

Рождённый с паяльником — LiveJournal

Станция
worklog

Подробный worklog процесса изготовления с накатной маркировкой.


Двухканальный универсальный фазовый регулятор. ПИД регулирование и индикацию осуществляет ATtiny26. Для этого с датчиков через усилитель LM358 сигналы идут на встроенный 10 битный АЦП МК. Все необходимые смещения нуля делаются программно. Холодный спай не нужен (записывается в EEPROM при калибровке). Наклон кривой (коэф. усиления) выставляется многооборотником в усилителе для каждого канала. С помощью дополнительного регистра на 74ALS573 (1533ИР33) отображается температура на двух 3-х сегментных «восьмерках» (хотя не обязательно температура). Под каждой восьмеркой находятся кнопки управления «+», «-«, «Mode». Также имеется «Func» и «Power».

Для опторазвязки с КР1182ПМ1 используются простейшие 4N35. Если нагрузка меньше 100Вт, то дополнительный симмистор не нужен. С симмистором, например ВТ136, на радиаторе типа KG247, нагрузка до 1кВт. С выносными симмисторами — 10кВт. Кроме того рядом с tiny26 стоит 24С04 для ежедневной (ежечасной, ежеминутной) регистрации и записи температуры.

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

Через разъем можно скопировать ежедневное изменение температуры. Предположительно связка tiny12+24C04 — чтобы донести до компьютера и посмотреть. Разъем подобный USB. Если взять исходники USB Objective Development, то можно объединить их.

Силовая часть:

Управляющая часть:

Дисплей и клавиатура:

Изготовление

Итак, готовим топологию будущей платы.

Размечаем на листе место печати

Приклеиваем кальку на быстрый канцелярский клей.

Делаем три копии рисунка.

Уже покрашенные заготовки у меня хранятся в таких конвертах.

Засвечиваем, предварительно совместив все три слоя.

Уже засвеченные области становятся синими.

Смываем щелочью засвеченные участки.

Готовим раствор хлорного железа, или используем старый.

Травим плату.

В свежем растворе это занимает 3-5 минут. После промывки.

Смываем растворителем фоторезист.

Спомощью активного флюса и сплава Розе лудим плату. Затем отправляем на отмачивание не менее суток.

В подобных журналах используют мелованную бумагу. Она замечательно подходит для маркировки и ЛУТ.

ru-radio-electr.livejournal.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *