- •Предисловие
- •Часть 1. Электроника для начинающих
- •Глава 1. Что на плате электронного устройства?
- •Резистор
- •Конденсатор и индуктивность
- •Диод и транзистор
- •Глава 2. Программы и схемы
- •PSIM в Linux
- •Qucs в Linux
- •Операционный усилитель
- •Цифровая микросхема
- •Глава 3. Путешествие по плате с осциллографом
- •Что такое осциллограф?
- •Что такое сигнал?
- •Что я увидел на плате с помощью осциллографа?
- •Глава 4. Электричество и магнетизм
- •Глава 5. Сигналы или переменный ток на практике
- •Разные законы изменения переменного тока
- •Генерация сигналов
- •Использование сигналов
- •Глава 6. С чего начать свой первый проект?
- •Усилитель мощности
- •Светофор
- •Блок питания
- •Глава 7. Усилитель
- •Включение транзистора с общей базой
- •Включение транзистора с общим коллектором
- •Включение транзистора с общим эмиттером
- •Определение зависимости тока базы от напряжения
- •Частотные характеристики усилителя
- •Стоп, стоп, стоп!
- •Глава 8. Бабахать или нет – вот в чем вопрос
- •Разговоры, разговоры
- •Проект «Громкоговоритель»
- •Глава 9. Теплоотвод
- •Разные режимы работы оконечных каскадов
- •Тепло. Что с ним делать?
- •Глава 10. Сигналы, немного больше
- •Прямоугольные импульсы
- •Получение импульсов некоторых видов из простых сигналов
- •Немного о сигналах и линиях
- •Больше об амплитудной модуляции
- •Другие преобразования напряжений
- •Глава 11. Немного больше об усилителях
- •Усилители в радиоприемнике
- •Предварительный усилитель НЧ
- •Снижение шумов и автоматическая регулировка
- •Глава 12. Автоматика, и зачем она нужна
- •Обогреватель-автомат или простые устройства автоматики
- •Автоматическая нянька для рассеянных
- •Глава 13. Один интересный преобразователь
- •Преобразователи постоянного напряжения в переменное
- •Разные типы современных преобразователей
- •Проблемы симуляции электрических схем
- •Глава 14. Как считает домашний компьютер
- •Пример расчета максимальной выходной мощности
- •Пример расчета схемы стабилизатора
- •Примеры соотношений в транзисторных схемах
- •Программы для более сложных расчетов
- •Глава 15. Микропроцессор и программирование
- •Галопом по европам
- •Как организована работа процессора
- •Что такое программа?
- •Глава 16. Микроконтроллеры
- •Что нужно для работы с микроконтроллером?
- •Завершение проекта «Светофор»
- •Некоторые особенности работы с программатором
- •Завершение проекта «Автомат для рассеянных»
- •Завершение проекта «Электроника для начинающих»
- •Глава 17. Измерения в электрических цепях
- •Схема коммутатора к осциллографу
- •Схема приставки к мультиметру для измерения L и C
- •Схема регулировки яркости светильника
- •Глава 18. Организация собственной разработки
- •Часть 2. Игра в программирование
- •Глава 1. Поиск печки, от которой танцевать
- •Два берега
- •Первое знакомство с Gambas
- •Компьютер может помочь с программированием
- •Почему Емеля ездил на печи?
- •А можно с этого места поподробнее?
- •Первый блин
- •Глава 2. Бряцая железом
- •Хорошее начало
- •Возвращение
- •Отладка в gpsim
- •Глава 3. У камелька
- •Начало проекта «Машинистка»
- •Развиваем успех
- •Заметки и пометки «на память»
- •Глава 4. Охота на кентавра
- •Засада в интерфейсе
- •Железное решение
- •Лирическое отступление
- •Грустное завершение рассказа о счетчике
- •Глава 5. Сказка о неудачливом радиолюбителе
- •Возвращение на круги своея
- •Расширение кругов (на воде?)
- •gpsim как зерцало грешника
- •Вялая попытка оправдаться
- •И оргвыводы
- •Глава 6. Сказка о ловком программисте
- •Предварительное рассмотрение проекта «Генератор»
- •Продолжение работы над проектом «Генератор»
- •Завершение
- •Конспекты
- •Gambas дружелюбен к пишущим на VB, но используя Linux
- •Разработка приложений в Gambas
- •Часть 3. Proteus в любительской практике
- •Что такое интегрирующая и дифференцирующая цепь?
- •Почему не выпрямляет диод?
- •Как работает транзистор?
- •Микроконтроллеры и Proteus
- •Как работать с линиями?
- •Помогите найти схему внешнего генератора импульсов 4-8 MHZ (например на 555ЛН1).
- •Собрал одно, собрал другое — не работает. Что делать?
- •Почему я работаю с AVR?
В.Н. Гололобов |
Экскурсия по электронике |
390 |
Глава 2. Бряцая железом
Можно сколь угодно долго спорить о том, что важнее «курица или яйцо», то есть, программирование или разработка и пайка схем. Но споры, даже научные, носящие благозвучное имя «дискуссия», быстро раздражают собеседников, поскольку основным аргументом в споре всегда является взаимное неприятие аргументов оппонента. Зачастую, сколь бы вдумчиво я ни пытался вникнуть в предмет спора, мне остаются непонятны ни истоки, ни существо спора. Мне кажется, что каждый волен выбирать то, что ему симпатичнее, и кажется правильным. И это совсем не значит, что выбрав что-то одно, он не может, если есть время и желание, попробовать другое. Право выбора остается за человеком всю его жизнь в любой момент. Всегда следует пользоваться этим правом. Но я опять отвлекся.
Хорошее начало
Итак. Первое приближение интерфейсной части проекта готово. Теперь время поговорить о «железной» части проекта. Я предполагаю использовать микроконтроллер PIC16F628A. Два основных аргумента в пользу этого выбора – наличие самой микросхемы, и наличие всего необходимого для работы с микросхемой, то есть, среда разработки с поддержкой языка Си и программатор, который успешно работает в этой среде. Я приведу ниже рассказ о среде программирования и схему программатора.
Но начать я хочу с того, как выглядела бы схема проекта, если бы была реализована вне ухода в программную сторону. Для этой цели, правда, я использую программу EDA, что много проще рисунка на бумаге с последующим сканированием этого рисунка.
Рис. 2.1. Схема проведения прямой проверки работы счетчика
Теперь о программе Piklab. К сожалению, когда я в предыдущей книге описывал работу с микроконтроллером, я не нашел этой программы, хотя, с другой стороны, программа MPLAB великолепна, ничего плохого сказать не могу.
Для работы с программой, особенно при использовании компилятора языка Си, потребуются дополнительные пакеты. Если программа устанавливается стандартным способом, то пакеты gputils и gpsim, скорее всего установятся по зависимостям. Так установилась программа в моем дистрибутиве Fedora Core 6. Второй дистрибутив Ubuntu не предложил ничего, но есть пакет для Debian, и в этом случае приходится доустанавливать
В.Н. Гололобов |
Экскурсия по электронике |
391 |
дополнительные утилиты, хотя этот процесс проходит быстро и безболезненно, в частности требуются пакеты для графической оболочки KDE. Пакет gputils необходим для программирования на ассемблере, gpsim для отладки программы. Для работы с языком Си можно воспользоваться бесплатным компилятором picc-lite, который можно найти на сайте www.htsoft.com. Я использую версию picc-lite_9.50PL2. Компилятор знаком мне по работе с программой MPLAB под Windows.
Схему программатора я выбрал под названием JDM picprogrammer. С программой работают и другие программаторы, хотя я проверял только один, купленный специально для проверки такой возможности при работе над предыдущей книгой. Чтобы не отсылать вас на поиски схемы в Интернет, или к своим прежним книгам, я приведу схему простого программатора в оригинальном виде. При сборке программатора я обнаружил, что забыл купить стабилитрон на 8.2 В, а стабилитронов на 5.1 В купил в избытке. По этой причине я к имевшемуся стабилитрону последовательно подключил в два светодиода (из расчета, что при прямом включении они дадут мне поведение стабилитрона с напряжением стабилизации около 3 В). Такой вариант сработал, и оказалось, что иметь светодиоды в этой цепи даже полезно – при обращении к программатору они светятся, видно, что программатор работает.
На схеме переделанный стабилитрон – это D6.
Рис. 2.2. Схема программатора для работы с программой piklab
Сейчас я извлеку программатор из «хламежки», и подключу его к первому COM-порту...
В.Н. Гололобов |
Экскурсия по электронике |
392 |
Рис. 2.3 Внешний вид программатора
Итак, первый запуск программы Piklab.
Рис. 2.4. Первый запуск программы Piklab
Внешне среда программирования микроконтроллера, как вы можете судить, очень похожа и на среду программирования Gambas, и на среду программирования KDevelop, если вы знаете такую. Что не удивительно, поскольку обе программы созданы для работы с одной операционной системой. Слева окно менеджера проекта, центральное место занимает встроенный редактор программирования, а в нижней части расположены окна сообщений, включая окно для работы с точками останова и консолью. На рисунке окно консоли открыто, в окне можно ввести любую команду.
В.Н. Гололобов |
Экскурсия по электронике |
393 |
Начну с основного меню программы. Кроме обычных для любой программы разделов меню, как раздел работы с файлами, кроме обычных разделов, характерных для любой среды программирования, связанных с отладкой программы, есть и специфический раздел, относящийся к работе с программатором.
Рис. 2.5. Основное меню программы Piklab
Хотя первым в списке разделов меню стоит File, относящийся к работе с файлами, я зайду в раздел Settings, раздел установок программы.
Рис. 2.6. Подменю раздела Settings
И более всего меня пока интересует установка программатора. По причине чего я захожу в раздел Configure Piklab..., чтобы открыть установки, относящиеся именно к программатору.
Рис. 2.7. Диалоговое окно установок программатора
После выбора последовательного порта COM-1 (ttyS0 для Linux) и типа программатора
В.Н. Гололобов |
Экскурсия по электронике |
394 |
Direct Programmer я сразу вижу, что рядом с надписью Connection: появляется ОК, то есть порт обнаружен. А следом за выбором типа контроллера в окне менеджера проекта (Progect Manager) я могу прочитать содержимое микроконтроллера, который остался в панельки со времен предыдущих экспериментов. Для этого можно зайти в раздел основного меню Programmer, на всякий случай выбрать пункт Connect, проверить, чтобы на панели состояния отображался правильный выбор Direct Programmer (Serial Port), и можно прочитать содержимое микроконтроллера.
Успокоенный этими удачными пробами, я собираюсь плавно перейти к рассказу об основном меню программы и соответствующих клавиш основного инструментального меню. Но мне приходит в голову проверить процесс отладки программы. Без достаточно удобной отладки работать с программой будет слишком трудно. Я знаю, что для отладки используется gpsim, но как это осуществить в программе piklab? Файл помощи, который я пытаюсь открыть, показывает, что документация отсутствует. В Интернете на странице проекта есть краткое введение в работу с программой (я ищу работу в графическом приложении), описание, касающееся этой части выглядит весьма кратким:
After your successful compilation (as you can see in the Compile Log) you only have to press the button connect to "virtually connect" the programmer Gpsim, to be able to start the simulation of your program. Just press the blue button with the "play" symbol, to start. After this, the Program Log shows some information output from gpsim.
Что означает, примерно, следующее:
После успешной компиляции программы (как можно видеть в Compile Log) вы должны только нажать клавишу connect для «виртуального подключения» к программатору Gpsim, чтобы иметь возможность начать симуляцию вашей программы. Достаточно нажать синюю клавишу с символом «проиграть», чтобы начать симуляцию. После этого Program Log покажет некоторую выходную информацию от gpsim.
Я повторяю эти действия вначале после трансляции программы на Си (я всегда для проверки использую простую и удобную программу, которую некогда нашел в Интернете, и уже, к сожалению, не помню автора). В окне Program Log появляется сообщение:
Connected.
Setting up debugging session.
Ready to start debugging.
Running...
И это все, что я вижу. Этот же результат и при трансляции ассемблерной программы. Этот результат дают оба дистрибутива, установленные на моем компьютере. Я прерываю работу на несколько дней, понимая, что если каким-то образом не решить эту проблему, то следует остановиться на этом месте и честно сказать себе: «Строили мы строили, и, наконец, построили!». Книга неожиданным образом завершена, добавить нечего.
Можно попытаться связаться с авторами проекта, но они могут быть либо заняты, либо могут охладеть к работе над проектом. В любом случае ответа от них можно ждать долго и не дождаться. Ассемблерный вариант выглядит несколько лучше в этом плане – при трансляции он дает файл с расширением .cod, который можно загрузить в gpsim, который, в свою очередь, запускается у меня из терминала. Но едва ли вам захочется сразу начать работу с микроконтроллером, используя ассемблер. Это возможно только в том случае, если вас
