Что такое программа в электронике

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

В.Н. Гололобов Экскурсия по электронике 309

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

Вот, если говорить о предыдущем фрагменте работы процессора, как могла бы выглядеть команда записи числа из ячейки памяти в регистр: Переместить число по адресу A3 в регистр 0. Мы можем ей сопоставить, укоротив ее, такой вариант ПРМ А3, R0. В основном используется англоязычная аббревиатура, по причине чего команда выглядит так: MOV a3, R0.

Программа «Начала Электроники»

Здесь MOV – это сокращение от английского move . Согласитесь, такую команду легче запомнить, чем безликую 48 или, того хуже, 1001000. Так программисты некогда перешли от программирования в машинных кодах к программированию на языке ассемблера. Чтобы программа, понятная программисту, была понятна и процессору, ее переводят на машинный язык.

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

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

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

Обычно это во многих языках программирования выполняется операторами If. then. else (Если. то. иначе) . Подобные команды высокого уровня разбиваются на ряд машинных команд, но суть остается – есть необходимость и возможность выполнить разные действия в разных ситуациях. Принято программы записывать в виде алгоритмов – структурных схем программы – перед написанием кода программы. Алгоритм примера приведенного выше выглядел бы похожим на такой:

Как изучать электронику правильно. Советы и рекомендации.

В.Н. Гололобов Экскурсия по электронике 310

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

Поскольку все, что я хотел рассказать о процессорах и программах, я сделал «в прицеле» к микроконтроллерам, я не буду детально описывать ни один из языков программирования, а только упомяну о том, что есть во всех, практически, языках. Очень часто возникает необходимость многократно повторять один и тот же набор операций. Если вы точно знаете, когда нужно остановиться, вы можете использовать цикл . Это монотонно повторяющееся действие, которое заканчивается либо тогда, когда

В.Н. Гололобов Экскурсия по электронике 311

выполняется условие, например, переменная принимает определенное вами значение, либо выполняется определенное количество раз, если вы знаете, сколько раз следует повторить операции. Еще более общий смысл вкладывается в повторяющийся набор операций, когда вы объявляете его подпрограммой – частью программы, которая используется многократно.

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

Организация программы с применением функций дает возможность не только многократно использовать эти функции в программе, но создавать библиотеки функций, а в программе просто ссылаться на эти библиотеки, используя уже готовые функции. Чаще других при работе с микроконтроллерами используют ассемблер и язык программирования «С».

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

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

Читайте также:
План как управленческий документ отличие его от прогнозов и программ

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

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

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

Вспомнил я это не только потому, что обещал, но и по другой причине: в микроконтроллере с наблюдениями еще хуже. В этом виновата, однако, их сущность. Так какова она?

Источник: studfile.net

Разработка своего устройства от А до Я. Часть 1: От концепции до макета

Задумывались ли вы когда-нибудь о том, чтобы разработать собственное электронное устройство, но не знали, с чего начать? Тогда приглашаем вас к прочтению данной статьи, в которой мы постараемся осветить весь процесс создания своего электронного устройства – от концепции до реального девайса на примере хобби-проекта одного из наших сотрудников. Статья разделена на две части и имеет следующий план:

  • Часть 1: От концепции до макета
  • Что такое электронное устройство
  • Концепция устройства
  • Функциональная схема
  • Принципиальная схема
  • Закупка компонентов
  • Макетирование и симуляция устройства
  • Разработка печатной платы
  • Разработка корпуса и оснасток
  • Верификация и исправление ошибок
  • Отправка платы на производство
  • Создание корпуса
  • Сборка и отладка устройства

Далее повествование будет вестись от лица сотрудника.

Введение

Еще в университете я заинтересовался разработкой электронных устройств, в частности гитарных эффектов. В период учебы на 3–4 курсах мне удалось собрать несколько таких «примочек», некоторые из них легли в основу моих курсовых работ. Конечно же, это были копии всем известных приборов, а качество таких девайсов оставляло желать лучшего. В то же время мне очень хотелось повысить их надежность, поработать над дизайном и научиться в конечном итоге делать что-то свое, а главное, качественно.

Моя первая гитарная педаль – копия Big Muff

В июле 2018 года, сразу после окончания универа, я пришел устраиваться в «НТЦ «Вулкан». На собеседовании я рассказал, что интересуюсь созданием таких девайсов. Меня взяли на испытательный срок, за время которого мне нужно было разработать устройство, написать прошивку под STM32 и небольшое тестовое ПО. В конце концов я попал в команду Raccoon Security, которая занимается исследованием и разработкой embedded-девайсов.

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

Проект мультиэффекта shape mimic, который я закончил совсем недавно

Что такое электронное устройство?

Давайте разберем этот вопрос на примере стереохоруса Uni-Vibe Stereo Chorus от Dunlop.

Так выглядит наш «пациент»

Гитарные педали эффектов в целом предназначены для изменения звука инструмента во время игры. В частности, название этой педали говорит само за себя – она имитирует хоровое звучание музыкальных инструментов, добавляя к исходному сигналу несколько копий, сдвинутых по времени на 10–30 мс. Время этой задержки постоянно изменяется генератором низкой частоты. Если мы проведем вскрытие этой «магической коробочки», то под капотом обнаружим следующее:

Внутренности Uni-Vibe Stereo Chorus

Теперь можно поговорить о том, из чего вообще она состоит. Здесь мы видим зеленую печатную плату [1] с кучей разных электронных компонентов [2], которые соединяются между собой медными дорожками-проводниками. Видим три потенциометра [3], которые отвечают за управление эффектом, а также кнопку включения [4] и входные-выходные гнезда [5]. Все это помещается в металлический корпус [6], на котором есть маркировка [7], подсказывающая назначение ручек управления. И как финальный аккорд – множество разных крепежных элементов [8], соединяющих все это вместе.

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

Концепция устройства

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

Что можно сделать лучше или по-другому?

К примеру, идея моего последнего устройства заключалась в том, чтобы создать девайс на популярном DSP-чипе FV-1 с возможностью загружать разные эффекты, которые можно найти на просторах Интернета или написать самому. Несмотря на солидный возраст (первые документы датированы аж 2006 годом), микросхема способна выдавать очень разнообразные звуки – от простых заигрываний с фильтрами до сложных алгоритмов реверберации с различными модуляциями и задержками.

DSP-чип FV-1 в своем великолепии

Проектов по этой теме было уже много, но на просторах Рунета я не видел реализации со встроенными программатором и USB, с помощью которого можно легко прошивать память разными прошивками. Конечно же, на сайте производителя FV-1 уже была отладочная плата, и буквально во время проработки концепции на сайте pedalpcb появился еще один открытый проект отладочной платы с программатором.

Читайте также:
Как написать рассказ программа

Мне же хотелось упаковать все это в форм-фактор стандартного гитарного эффекта и добавить несколько фишек, которые стали популярны в гитарном мире:

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

Функциональная схема

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

Составлять такие схемы удобно, например в бесплатной программе yED или в платной Microsoft Visio. Подробно на плюсах и минусах программ останавливаться не будем, а перейдем непосредственно к получившейся схеме.

Функциональная схема shape mimic

Давайте я вкратце расскажу, как это должно работать. Гитарный сигнал поступает на DPDT-переключатель, которым выбирается тип обхода устройства (с буфером или без). Далее сигнал поступает на реле, которое управляется микроконтроллером. Если эффект выключен, то реле прокидывает сигнал сразу на выход.

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

Через miniUSB можно прошивать микросхему памяти, в которой хранятся эффекты для FV-1. Выбор эффекта происходит с помощью переключателя SPDT, а управление параметрами эффекта – с помощью трех потенциометров. В качестве питания используются стандартные для гитарных эффектов 9В DC, которые после стабилизаторов дают 3,3 В и 5 В для питания элементов схемы.

Как это работает на самом деле

После составления функциональной схемы я рекомендую подумать о том, какие ключевые компоненты вам потребуются. В моем случае с FV-1 все понятно, а в качестве управляющего микроконтроллера я выбрал PIC16F630, т. к. ранее не работал с этими микроконтроллерами и мне было интересно попробовать. В итоге работать с PIC мне не очень понравилось, и в следующий раз управление я буду делать на STM32.

В качестве реле я выбрал NA5W-K, а в качестве оптопары – TLP222G. Такой выбор обусловлен тем, что идею управления на реле я подсмотрел в статье на сайте Coda-Effects. Я подумал, что начинать знакомство с подобным типом байпаса следует с таких же компонентов. Для буферов и усилителя отлично подойдут TL072 – малошумящие, распространенные и недорогие операционные усилители.

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

Принципиальная схема

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

Отличным стартом для разработки собственных схем являются типовые схемы включения из даташитов. У меня же под рукой было еще несколько готовых референс-проектов на FV-1 (PedalPCB и Universe Zen), большой топик с форума Guitar-Gear, реализация релейного байпаса с Coda-Effects и популярная схема буфера на TL071. Теперь, имея на руках уже готовую функциональную схему, мне достаточно просто воссоздать все эти блоки, а затем соединить их согласно моей концепции. На практике это напоминает конструктор лего.

Выдержка из даташита DSP-микросхемы FV-1

Я советую разделять схему на несколько листов по функциональному смыслу – так повышается читаемость и появляется некая инкапсуляция. У меня получилось разделить проект на схему питания, основную схему FV-1, схему с программатором и схему управления и реле.

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

Небольшой фрагмент принципиальной схемы shape mimic

Закупка компонентов

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

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

Дейл покупает компоненты после изготовления печатной платы

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

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

Читайте также:
Лучшая программа для проверки орфографии и пунктуации русского языка

Далее можно обратить внимание на тот же «Чип и Дип». У них большой выбор и много магазинов в Москве. Однако цены намного выше остальных, а еще стоимость компонентов в интернет-магазине сильно отличается от того, что вы увидите, придя в магазин. Доставка дороже чем у «Терраэлектроника», а срок доставки – дольше. Тем не менее иногда я заказываю некоторые позиции здесь.

Есть еще и своеобразный магазин «КВАРЦ». Сайт у них, конечно, давно устарел и поиск реализован неудобно, но иногда там можно найти очень интересные и эксклюзивные позиции.

Еще есть Mouser Electronics. Лично я не заказывал компоненты оттуда для своих «домашних» проектов. Из плюсов могу отметить, пожалуй, очень большой ассортимент и удобный параметризированный поиск. Из минусов – не все компоненты поставляются в Россию. Если вы имели опыт покупки с Mouser для своих проектов, то обязательно напишите в комментариях.

В качестве альтернативы Mouser Electronics можно обратить внимание на LCSC, который чем-то похож на последних, но заказывать оттуда проще, а цены ниже. Опять же, я не заказывал ничего у этих ребят, но периодически подумываю это сделать.

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

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

Макетирование и симуляция устройства

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

Для создания макета отлично подойдет макетная плата – компоненты на ней соединяются без всякой пайки.

Макетная плата и устройство на макетной плате

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

Мой макет педали фуз-дисторшн — клон Wolf Computer с модификациями

Если вы планируете использовать какой-нибудь микроконтроллер, то подумайте о покупке отладочной платы. Рекомендую обратить внимание на STM32, но если совсем не знакомы с embedded-разработкой, то Arduino тоже прекрасный выбор.

Отладочные платы STM32 Nucleo и Arduino Uno

Давайте подумаем, зачем нам вообще нужен макет:

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

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

К примеру, есть отличная программа LTSpice – бесплатная, с легким интерфейсом, а главное, обладает большим набором инструментов и компонентов.

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

Еще можно обратить внимание на Proteus, в котором куда больше инструментов для симуляции цифровых схем, чем в Multisim и LTSpice. Программа тоже платная, но есть бесплатная пробная версия с тестовыми схемами.

Еще существует условно-бесплатный онлайн-сервис Circuit Lab. Несомненный плюс которого в том, что он позволяет быстро засимулировать что-то очень простое, ничего не устанавливая.

Онлайн-сервис Circuit Lab

Есть приложение EveryCircuit под Android и iOS, поэтому если работаете с планшетом или под рукой нет компьютера, то можно воспользоваться им.

Итог

Основы электроники. Учебный курс – от простого к сложному.

Доброго всем дня, мы рады приветствовать вас на сайте microtechnics.ru! Этой статьей мы положим начало новой рубрике под названием «Основы электроники».

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

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

Так что до скорых встреч, мы будем рады видеть новых посетителей и постоянных читателей на нашем сайте

Источник: microtechnics.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru