Прошиваем AVR при помощи AVRISP mkii
Прошить ATMEGA328P можно при помощи AVRDUDE и скомпилированного при помощи Arduino исходного кода. Поскольку AVRDUDE является основным прошивальщиком в Arduino для прошивки без загрузчика, то он уже имеется в системе и обычно располагается в папке с установленной Arduino IDE, далее в hardware, tools, avr и там в папке bin. Можно найти его и поиском в системе на наличие файла avrdude.exe. AVRDUDE — утилита командной строки, поэтому работать с ней придется руками. Компилируем файл, указываем все параметры. А если ошибемся, то могут прописаться неверные fuses и чип скорее всего придется выкинуть.
Интерфейс с установленными FUSEs, выбранным файлом для прошивки
А можно применить AVRDUDESS, специальную графическую оболочку, существенно облегчающую работу по прошивке AVR руками
При работе с AVRDUDESS важно проверить установку всех fuses, так как то, что было прописано в настройках платы в Arduino тут уже не имеет никакого значения, все нужно переустанавливать с нуля или считать с работающей микросхемы. Кстати, при помощи AVRDUDE или AVRDUDESS можно не только прошить AVR, но и считать прошивку, в откомпилированном виде, с микросхемы, если такая функция не была отключена при предыдущей прошивке, разумеется
Для получения скомпилированной прошивки, в Arduino IDE выбираем меню Sketch, а в нем Export Compiled Binary, не забыв выбрать в качестве платы нашу ATmega328 on a Breadboard. В разных версия IDE пункт экспорта находился в разных меню, поэтому есть определенная сложность в его определении при обновлении версий.
Откомпилированные файлы модифицированного мигателя. Версия с загрузчиком почти в половину больше.
Перед прошивкой еще раз проверяем все настройки в интерфейсе программы, выбираем верный чип, проверяем, что он читается, выбираем нужную прошивку и жмем на Go. Если последующая загрузка через bootloader не предполагается, то прошивать можно версию файла без загрузчика, экономится место и микросхема быстрее стартует (так как нет загрузчика, то управление передается сразу на основной код).
↑ Характеристики ATMega163
• Высокопроизводительные, мало потребляющие AVR 8- битные микроконтроллеры• 130 исполняемых команд, большинство за один машинный такт• 32 рабочих регистра общего назначения• Полностью статический режим работы• Производительность до 8 MIPS при 8 МГц• Встроенный 2-х тактовый умножитель• Энергонезависимая память программ и данных• Внутрисистемно самопрограммируемая FLASH память• 16К байт с количеством циклов перепрограммирования до10 000.• Опционно загрузочная область памяти (256б-2Кб) с независимыми ключевыми битами, внутрисистемное программирование встроенной загрузочной программой, без внешнего программатора• 512 байт EEPROM с допустимым количеством циклов стирания записи до 100 000.• 1024 байт внутренней SRAM• Программируемый ключ защиты программ• Периферийные функции два 8-битных таймера/счётчика с программируемым предделителем и режимом сравнения один 16-битный таймер/счётчик с программируемым предделителем, режимом сравнения и захвата счётчик реального времени с программируемым генератором три ШИМ генератора 8-и канальный, 10-и битный АЦП байт-ориентированный, двухпроводный интерфейс программируемый USART• Master/Slave SPI последовательный интерфейс• Программируемыи Watchdog таймер с программируемым генератором• Встроенный аналоговый компаратор• Специальные функции Reset по включению питания и выключение при снижении напряжения питания Внутренний калиброванный RC генератор• Внешние и внутренние источники прерывания Четыре экономичных режима: Idle, подавления шумов АЦП, экономичный, режим Выкл.• Потребляемый ток при 4 МГц, 3.0 В, 25°С Активный — 5.0 мА Idle — 1.9 мА Выкл. — 1мА• 32 программируемых вывода вход-выход• 40 выводной корпус PDIP и 44 выводной корпус TQFP• Напряжение питания: 2.7 В до 5.5 В для ATMega163L 4.5 В до 5.5 В для Atmega163• Тактовая частота: 0-4 МГц Atmega163L 0-8 МГц Atmega163Объем флеш-памяти и частота вдвое меньше, чем у ATMega328P, применяемом в наиболее популярном Arduino NANO. Однако этого вполне достаточно для большинства несложных проектов.Поскольку данный МК является устаревшей моделью, современные средства разработки его как правило не поддерживают.Из поддерживаемых можно отметить следующие:• AVR CodeVision 3.12• AVR Studio 4.19• Программатор AVR DUDE PROG версии 1.0
Загрузчик для ATmega128A
Для того, чтобы записать программу в память микроконтроллера непосредственно из Arduino IDE потребуется специальная программа-загрузчик (bootloader), размещенная в специальной области памяти микроконтроллера, которая постоянно опрашивает UART.
Это немного измененная версия загрузчика с сайта www.chip45.com.
Bootloader Mega128 bootloader_mega128.zip
10.0 KiB 2064 Downloads
Категория: | Programs |
Дата: | 27.10.2015 |
Для компиляции я использовал AVR-GCC.
$ avr-gcc -mmcu=atmega128 -Wall -Os -o boot_mega128.o boot_mega128.c $ avr-objcopy -O ihex boot_mega128.o boot_mega128.hex
В архиве содержится исходный C-файл, объектый файл и готовый hex-файл. Для дальнейших действий понадобится только последний.
Устанавливаем фьюзы микроконтроллера и прошиваем загрузчик, используя программатор USBasp и AVRDUDE:
$ sudo avrdude -p m128 -c usbasp -P usbasp -Uefuse:w:0xff:m -Uhfuse:w:0xca:m -Ulfuse:w:0xff:m -Ulock:w:0x3F:m $ sudo avrdude -p m128 -c usbasp -e -U flash:w:boot_mega128.hex -Ulock:w:0x0F:m
В Windows sudo писать не нужно.
Создадим папку atmega128 и перепишем в нее файл boot_mega128.hex в папке с загрузчиками среды Arduino для того, чтобы можно было прошивать bootloader прямо из Arduino IDE.
В MacOS X путь к папке с загрузчиками выглядит следующим образом:
.../arduino/Contents/Java/hardware/arduino/avr/bootloaders
Собираем всё вместе
Предположим, что программатор подключен к AVR на вашей макетной плате, как было описано выше, и вы почти готовы запрограммировать ваш AVR микроконтроллер. Для примера воспользуемся простым примером мигания светодиодом.
Теперь следуйте следующим инструкциям:
- Запустите Atmel Studio 7.
- В стартовом окне слева нажмите New Project. Откроется окно нового проекта.
Стартовое окно Atmel Studio 7 - В окне нового проекта нажмите GCC C Executable Project, назовите проект New Blink, как показано выше, и нажмите OK. Откроется окно выбора устройства Device Selection.
Окно выбора устройства Device Selection - В окне выбора устройства выберите AVR устройство, которое вы используете: ATmega328P или ATtiny45, как показано ниже. Нажмите OK. Будет создан новый проект, и будет открыто окно проекта New Blink.
Окно проекта New Blink - Нажмите на меню Tools, выберите External Tools…, и нажмите кнопку Add.
- В поле Title введите название инструмента, которой создаете; хорошо, если название описывает устройство. Например, вы можете ввести комбинацию названия программатора и названия устройства.
- В поле Comand введите путь к месту, куда установили AVRDude, плюс команду для запуска AVRDude.
-
В поле Arguments введите одну из двух следующих строк, в зависимости от AVR контроллера, который используете.
Для ATmega328P введите:Для ATtiny45 введите:
- В поле Initial directory введите путь к месту, куда установили AVRDude.
- Убедитесь, что поставлена галочка Use Output window, а в двух других чекбоксах галочки не стоят. Состояние окна должно быть похоже на скриншот ниже, но с учетом AVR контроллера, который вы используете.
Окно добавления внешнего инструмента - Нажмите Apply, а затем OK. Окно внешних инструментов должно закрыться.
- Скопируйте код программы, приведенный выше.
- Перейдите к окну New Blink.c в окне Atmel Studio 7 и вставьте в него код, приведенный выше.
Код программы - Если в правом верхнем углу Atmel Studio 7 не открыто окно менеджера проекта Solution Explorer, нажмите на выпадающее меню View и нажмите Solution Explorer. В правом верхнем углу должно появиться окно Solution Explorer.
- Кликните правой кнопкой на main.c и выберите «переименовать». Переименуйте файл main.c в New Blink.c.
- Нажмите на меню File и нажмите Save All.
- Нажмите на меню Build и нажмите Build Solution (собрать проект).
- Нажмите на меню Tools (инструменты) и нажмите на название инструмента, созданного в шагах с 5 по 11. Скомпилированный код New Blink должен будет быть загруже в AVR контроллер на вашей макетной плате, а светодиод LED1 должен начать мигать: ½ секунды включен, ½ секунды выключен, 60 раз в минуту.
Обзор платы Arduino UNO R3 ATmega328P ATmega16U2.
Перед вами обе стороны Arduino UNO R3
Плата Arduino UNO R3 состоит из:
1. Микроконтроллер ATmega328P в качестве главного процессора.
2. Микроконтроллер ATmega16U2 для связи с компьютером через USB порт.
3. USB разъем для загрузки программ и подачи питания на плату.
4. Разъем для подключения от внешнего источника питания.
5. ICSP разъем для прошивки ATmega16U2.
6. ICSP разъем для прошивки ATmega328P.
7. Шина питания.
8. Шина аналоговых входов.
9. Две шины цифровых входов-выходов
10. Кнопка сброс (RESET)
11. Светодиод питания.
12. Светодиоды передачи данных по UART (RX, TX).
13. Светодиод подключенный к 13 контакту платы.
Принцип работы УМЗЧ на TDA7496SA
Напряжение звуковой частоты поступает на входы микросхемы DA2 через защитные резисторы R7, R8, R12, R13. Последовательно включенные маломощные стабилитроны VD13, VD14 и VD15, VD16 защищают входы микросхемы от перегрузки. Наличие защитных цепей на входах микросхем УНЧ обязательно при отсутствии на входах УМЗЧ относительно высокоомных резисторов и регулятора громкости. Конденсаторы С15, С16 предотвращают поступление на вход УМЗЧ радиочастот. В этом усилителе установлены два входных гнезда XS1, XS2 разных типов, необходимые для подключения различных источников сигнала. Оба двухканальных входа включены параллельно, что позволяет использовать устройство как пассивный переходник-удлинитель.
Электронный регулятор громкости выполнен на переменном резисторе R10. С подвижного контакта этого резистора управляющее напряжения через резистор R14 поступает на вывод 3 DA1. Конденсатор С20 устраняет «шорохи» переменного резистора. Для питания узла регулятора громкости достаточно напряжения +5 В, но в этой конструкции используется напряжение +6,8 В, выбранное с целью возможной дальнейшей модернизации конструкции, например, оснащение усилителя мощности предварительным УНЧ.
Динамические головки подключены к выходам DA2 через разделительные конденсаторы С27-С30, замкнутые контакты выключателя SA2 и дроссели L1, L2. Демпфирующие цепочки R15С25 и R16C26 устраняют возможное самовозбуждение DA2 на ультразвуковых частотах. Дроссели L1, L2 уменьшают влияние на работу DA2 мобильных телефонных аппаратов и радиомодемов. К выходу УМЗЧ (гнездо XS3) могут быть подключены головные телефоны. Резисторы R19, R20 ограничивают поступающую на наушники мощность. Резисторы R17, R18 предназначены для устранения щелчка в момент подключения к работающему усилителю динамических телефонов или наушников.
Наушники не отключаются при подключенных динамических головках, что удобнее, в сравнение с тем, когда динамики и наушники могут работать только попеременно. Конденсатор С22 установлен ёмкостью в десять раз меньшей, чем рекомендовано типовой схемой включения микросхемы TDA7496SA, это необходимо для ускорения установления половинного напряжения на обоих выходах DA2. Модуль УМЗЧ питается нестабилизированным напряжением около 20В постоянного тока. При таком напряжении питания размах амплитуды сигнала на подключенных к выходу УМЗЧ динамических головках будет около 17 В.
Выходная мощность музыкального сигнала на подключенных нагрузках сопротивлением 8 Ом составит честные (не «китайские») 2×2 Вт. Это для небольшой комнаты будет гораздо громче и качественнее, чем «китайско-калининградские» 2×10 Вт (звуковой мощности) у LED телевизоров с экраном 32-42 дюйма.
How to install
Boards Manager Installation
This installation method requires Arduino IDE version 1.6.4 or greater.
- Open the Arduino IDE.
- Open the File > Preferences menu item.
- Enter the following URL in Additional Boards Manager URLs:
- Open the Tools > Board > Boards Manager… menu item.
- Wait for the platform indexes to finish downloading.
- Scroll down until you see the MegaCore entry and click on it.
- Click Install.
- After installation is complete close the Boards Manager window.
Manual Installation
Click on the «Download ZIP» button in the upper right corner. Extract the ZIP file, and move the extracted folder to the location «~/Documents/Arduino/hardware». Create the «hardware» folder if it doesn’t exist.
Open Arduino IDE, and a new category in the boards menu called «MegaCore» will show up.
Supported microcontrollers
- ATmega1284
- ATmega644
- ATmega324
- ATmega164
- ATmega32
- ATmega16
- ATmega8535
* All variants — P, PA, A, PB. Select the correct version in the ‘Variant’ menu
Can’t decide what microcontroller to choose? Have a look at the specification table below:
mega1284 | mega644 | mega324 | mega164 | mega32 | mega16 | mega8535 | |
---|---|---|---|---|---|---|---|
Flash | 128kiB | 64kiB | 32kiB | 16kiB | 32kiB | 16kiB | 8kiB |
RAM | 16kiB | 4kiB | 2kiB | 1kiB | 2kiB | 1kiB | 0.5kiB |
EEPROM | 4kiB | 2kiB | 1kiB | 0.5kiB | 0.5kiB | 0.5kiB | 0.5kiB |
Serial ports | 2 | 2 | 2/3* | 2 | 1 | 1 | 1 |
PWM pins | 8 | 6 | 6/9* | 6 | 4 | 4 | 4 |
IO pins | 32 | 32 | 32/39* | 32 | 32 | 32 | 32 |
* ATmega324PB has 3 serial ports, 9 PWM pins and 39 IO pins if internal oscillator is used.
Avrdudeprog
Avrdudeprog – утилита от русского программиста, являющаяся удобной оболочкой для avrdudue. Скачать AVRDUDE_PROG можно с официального сайта (прямая ссылка на загрузку, на всякий случай зеркало на моём ЯД и FTP этого сайта). В рамках этого урока, программа умеет следующее:
- Чтение/запись/очистка flash памяти
- Чтение/запись/очистка eeprom памяти
- Полная очистка чипа
- Калькулятор фьюзов и локбитов (чтение/запись)
Более подробный обзор на avrdudeprog можно посмотреть здесь. Давайте посмотрим на калькулятор фьюзов. Выбираем свой микроконтроллер и программатор (можно добавить другие модели микроконтроллеров и программаторов, читай тут). Переходим во вкладку Fuses, нажимаем прочитать. При успешном чтении увидим текущий набор настроек своего чипа. Можно их поменять и загрузить
Важно! Галку инверсные биты не трогаем! Лок-биты и отключение RST заблокирует микроконтроллер, не трогайте их, если такой цели нет! Можно загружать прошивку или загрузчик из .hex файла, указав путь к ней на первой вкладке в окне Flash. Очень удобная утилита для низкоуровневой работы с МК
Камрад, рассмотри датагорские рекомендации
Внимание! 800 рублей для новичков на Aliexpress Регистрируйтесь по нашей ссылке. Если вы впервые на Aliexpress — получите 800.00₽ купонами на свой первый заказ.
Цифровой осциллограф DSO138
Кит для сборки
Цифровой осциллограф DSO138. Кит для сборки
Функциональный генератор. Кит для сборки
Настраиваемый держатель для удобной пайки печатных плат
Владимир (vladimirm2) Хайфа Список всех статей
Профиль vladimirm2
Живу в Израиле, родом из Одессы, бывший военный психолог, сегодня инженер сетевых компьютерных технологий или просто сисадмин.Лет десять, как увлекся ламповым звуком, в то время построил свой первый усилитель. Полгода выслушивал и настраивал, доволен. С тех пор были построены разные устройства, некоторые из них благодаря материалам и помощи людей этого портала. Нашел на вашем ресурсе много полезной для себя информации.С уважением ко всем! )
PROGMEM with flash sizes greater than 64kB
The usual attribute stores constant data such as string arrays to flash and is great if you want to preserve the precious RAM. However, PROGMEM will only store content in the lower section, from 0 and up to 64kB. If you want to store data in other sections, you can use (64 — 128kB), (128 — 192kB), or (192 — 256kB), depending on the chip you’re using.
Accessing this data is not as straight forward as with , but it’s still doable:
const char far_away[] PROGMEM1 = "Hello from far away!\n"; // (64 - 128kB) const char far_far_away[] PROGMEM2 = "Hello from far, far away!\n"; // (128 - 192kB) const char far_far_far_away[] PROGMEM3 = "Hello from far, far, far away!\n"; // (192 - 256kB) void print_progmem() { uint8_t i; char c; // Print out far_away for(i = ; i < sizeof(far_away); i++) { c = pgm_read_byte_far(pgm_get_far_address(far_away) + i); Serial.write(c); } // Print out far_far_away for(i = ; i < sizeof(far_far_away); i++) { c = pgm_read_byte_far(pgm_get_far_address(far_far_away) + i); Serial.write(c); } // Print out far_far_far_away for(i = ; i < sizeof(far_far_far_away); i++) { c = pgm_read_byte_far(pgm_get_far_address(far_far_far_away) + i); Serial.write(c); } }
Двухканальный усилитель на TDA7265 (20Вт+20Вт)
Усилитель, схема которого представлена в данной статье, построена на одной из популярных микросхем – TDA7265. Она представляет собой двухканальный усилитель НЧ, работающий в классе AB, который может применяться в музыкальной аппаратуре высокого качества, типа музыкальных центров и телевизоров. Также ее можно применить как в виде отдельного оконечного усилителя НЧ.
Микросхема выполнена в корпусе Multiwatt и имеет одиннадцать выводов.
Усилитель может работать как на 8Ом нагрузку, так и на 4Ома и если верить даташиту, то микросхема защищена от короткого замыкания (КЗ) на выходе. Если TDA7265 не оригинальная, то защита от КЗ может отсутствовать, и при нулевом сопротивлении на выходе обязательно выйдет из строя. Кроме защиты от «козы» имеется тепловая защита, которая срабатывает при внутренней температуре равной 145°С.
Основные характеристики микросхемы TDA7265
Напряжение питания (рекомендованное) ………. ±20В
Напряжение питания (max) ………. ±25В
Выходная мощность (8Ом, ±20В, THD = 10%) ………. 25Вт (на один канал)
Выходная мощность (4Ома, ±16В, THD = 10%) ………. 25Вт (на один канал)
Выходная мощность (8Ом, ±20В, THD = 1%) ………. 20Вт (на один канал)
Выходная мощность (4Ома, ±16В, THD = 1%) ………. 20Вт (на один канал)
Пиковый выходной ток ………. 4,5А
Температура срабатывания защиты ……… 145°С
Остальные интересующие вас характеристики можете найти в даташите.
Схема двухканального усилителя на TDA7265
Компоненты схемы
Все резисторы мощностью 0,25Вт, кроме R7 и R10 (0,5Вт).
Конденсаторы C1-C4 и C6 электролитические и должны быть рассчитаны на напряжение 35В, хотя можно и на напряжение 25В, но только если питание усилителя не будет превышать ±18В. Остальные конденсаторы керамические или пленочные, разницы в данном случае вы не услышите, так что ставьте то, что есть под рукой.
Транзистор VT1 можно заменить на BC547.
Радиатор необходимо установить через силиконовую или слюдяную прокладку и фторопластовую втулку, если корпус усилителя металлический.
Режимы MUTE и ST-BY
Для удобства чтения я на схему наложил подсказку по данным режимам. За эти режимы отвечает вывод 5.
Для дальнейшего понимания примем напряжение питания (Vs) = ±20В.
Если на выводе 5 присутствует напряжение в диапазоне +Vs …+Vs-2.5В (от +17,5В до +20В) то усилитель находится в спящем режиме (ST-BY) с минимальным потреблением тока (3мА).
Если на выводе 5 присутствует напряжение в диапазоне +Vs-6В …+Vs-2,5В (от +14В до +17,5В), то усилитель выйдет из спящего режима, но включится режим приглушения MUTE.
Если на выводе 5 присутствует напряжение менее +Vs-6В (менее +14В), то усилитель войдет в режим воспроизведения звукового сигнала.
Теперь простыми словами о режимах MUTE и ST-BY
Для того чтобы усилитель начал работать необходимо с помощью переключателя SW1 замкнуть вывод резистора R1 на плюсовую шину. Далее, чтобы появился сигнал на выходе усилителя (т.е. отключить режим MUTE), необходимо замкнуть контакты выключателя SW2. Для тех, кто в танке, положения SW1 и SW2, установленные как на схеме обеспечат звучание в колонках.
Печатная плата двухканального усилителя на TDA7265
Даташит на TDA7265
3, 2, 1, поехали!
Итак, теперь прошиваем контроллер, запускаем терминал
Arduino выводит сообщение о старте и дает приглашение:
Для терминала я реализовал следующий набор команд (help не реализовывал):
После самого первого запуска можешь посмотреть, что в EEPROM микроконтроллера пусто и взяты настройки по умолчанию. Отправь команду и ищи адрес 0x100 — это стартовый адрес. Начиная с этого адреса, идет 20 слов (по 2 байта) значений задержек для состояния нормы, за ними контрольный байт первого блока, после этого 20 слов значений задержек для состояния аварии и контрольный байт второго блока.
Рис. 1. Просмотр EEPROM
Давай теперь изменим значения для состояния нормы:
Теперь скажи Arduino, чтобы он перечитал настройки:
Замечу, что здесь ты не перезагрузил микроконтроллер и прочитал настройки при старте, а настройки перечитались и применились на лету. Теперь смотри на светодиод Arduino, он стал мигать в соответствии с вновь заданными настройками.
Рис. 2. Просмотр EEPROM
Давай теперь заглянем в EEPROM и посмотрим, что там изменилось. Снова давай команду . Ты должен увидеть что‑то подобное рисунке.
Рис. 3. Замкнули контакты
Ну а теперь самое волнующее. Возьми скрепочку (у меня это кусочек зачищенной витой пары) и замкни контакты. Теперь Arduino стал моргать аварийно. И сразу же возникает вопрос, ведь авария должна быть на размыкание? Да, для отладки состояния перемешаны. Чтобы сделать боевую версию, найди анализ состояния дискретного входа и поменяй местами режимы:
www
- Пример реализации буфера FIFO, использованный в статье
- Очень популярный форум разработчиков для AVR
- Хорошая статья про настройку таймеров на русском
Write to own flash
MegaCore uses Optiboot Flash, a bootloader that supports flash writing within the running application, thanks to the work of @majekw.
This means that content from e.g. a sensor can be stored in the flash memory directly without the need of external memory. Flash memory is much faster than EEPROM, and can handle at least 10 000 write cycles before wear becomes an issue.
For more information on how it works and how you can use this in you own application, check out the Serial_read_write for a simple proof-of-concept demo, and
Flash_put_get + Flash_iterate for useful examples on how you can store strings, structs and variables to flash and retrieve then afterwards.
The Read_write_without_buffer example demonstrate how you can read and write to the flash memory on a lower level without using a RAM buffer.
Конструкция и детали стереоусилителя
Большинство деталей блока питания установлены на монтажной плате размерами 95×80 мм, рис.З. Все компоненты блока питания установлены в корпусе одной из колонок размерами 180x128x140 мм. В конструкции можно применить постоянные резисторы типов С1-4, С1-14, МЛТ, РПМ, С2-23, С2-33.
Резистор R2 желательно применить проволочный мощностью 2…5 Вт сопротивлением 10… 33 Ом. Переменный резистор R10 типа СПЗ-З0а или аналогичный с линейной характеристикой зависимости сопротивления от угла поворота подвижного контакта. Вместо варистора MYG20-431 подойдёт FNR-20K431, FNR-20K471, LF14K471, LF20K471, GNR20D431 К, TVR14-471.
Неполярные конденсаторы С1 – С4, С15, С16 керамические К10-17, К10-50 или импортные. Остальные неполярные конденсаторы малогабаритные плёночные. Электролитические конденсаторы оксидные алюминиевые или танталовые типов К50-35, К50-68, К50-29, К53-19 или аналоги.
Диоды FR155 можно заменить любыми из 1 N5391 – 1 N5399, FR151 -FR157, FR201 – FR207, КД258, КД411. Диоды Шотки 1N5822 можно заменить SR360, SR306. Вместо стабилитрона Д815А подойдёт 1N5338. Стабилитроны BZV55C- 5V6 можно заменить 1N4734A, КС156Г. Светодиоды могут быть любыми непрерывного свечения с повышенной светоотдачей без встроенных резисторов, например, серий КИПД40, КИПД66.
Германиевый р-п-р транзистор МП26А можно заменить МП26А.Б, МП25Б, МП40А, МП21А, Б. Вместо микросхемы AN7805 подойдёт KIA7805, МС7805, TL780-05C, КА7805, L7805CV. Отечественные микросхемы типа КР142ЕН5А и КР142ЕН5В для работы в этой конструкции не подходят. Микросхему стабилизатора напряжения устанавливают на ребристый дюралюминиевый теплоотвод с площадью охлаждающей поверхности 70 см2 (одна сторона).
Микросхему УМЗЧ типа TDA7496SA в этой конструкции можно заменить TDA7496. Микросхема TDA7496S для работы в этой конструкции не подходит. Микросхема TDA7496SA является наиболее совершенной по встроенным дополнительным функциям, но в описываемой конструкции из них используется только электронная регулировка громкости. Эту микросхему устанавливают на ребристый дюралюминиевый теплоотвод с площадью охлаждающей поверхности 160 см². Большинство деталей УМЗЧ установлены на монтажной плате размерами 95×80 мм, рис.4.
Понижающий трансформатор можно изготовить самостоятельно. Подойдёт Ш-образный магнитопровод с площадью центрального керна 8,2…9 см2. Первичная обмотка содержит 1410 витков обмоточного провода (типа ПЭЛ или ПЭВ) диаметром 0,23…0,27 мм. Обмотка II содержит 70 витков обмоточного провода диаметром 0,68 мм. Обмотка III — 120 витков обмоточного провода диаметром 0,68 мм. Между обмотками прокладывают несколько изоляционных слоёв лакоткани. Ток холостого хода такого трансформатора будет всего около 10 мА.
Вместо самодельного трансформатора можно применить унифицированный ТТП-40. Выключатель IRS-101-3C можно заменить IRS-201 -ВС, IRS-101 -1АЗ, IRS101-12C. Выключатель SA2 типа П2К с четырьмя группами контактов, соединенных попарно параллельно, можно заменить SDDF-3, KDC-A04, ПКН-41-1-2. Дроссели L1, L2 представляют собой проволочные перемычки с надетыми на них ферритовыми трубками длиной 10…20 мм. Держатель предохранителя в цепи 230В типа ДП1-ЦМ.
При компоновке элементов УМЗЧ следует внимательно отнестись к разводке сигнальных и силовых цепей общего провода. На принципиальной схеме (рис.2) силовые цепи УМЗЧ показаны утолщёнными линиями. К общей точке соединения минусов конденсаторов С23, С24 индивидуальными проводниками или отдельными дорожками должны быть подключены выводы 11, 15, 8 DA1, соответствующие выводы ВА1, ВА2.
Популярные статьи Стихотворение на Масленицу
Сигнальный общий провод берёт начало от вывода 8 DA2. АС с модулем УМЗЧ соединяют с АС с модулем питания с помощью четырёхжильного кабеля длиной 2…4 метра, сечение по меди каждой жилы 0,75…1,0 мм2. Внешний вид конструкции в сборе показан на фото в начале статьи. Безошибочно изготовленное из исправных деталей устройство начинает работать сразу и не нуждается в налаживании.
Прошиваем AVR при помощи FabISP мимикрирующего под USBTiny44/USBTiny85 с 6 выводами ISP
Модуль FabISP является детищем FabLab MIT (того самого, Массачусетского Технологического). По сути FabLab — мастерская при университетах, где студенты могут сваять что-то своими руками. Вот один из студентов и навяаял внутрисхемный программатор для AVR на основе USBTinyIPS. Ознакомиться с его творчеством, равно как и скачать драйвера под программатор можно на страничке отчета студента по проделанной работе. Страничка уже находится в архиве, поэтому не ясно как долго она просуществует. Но FabISP используется в учебных курсах и видимо не скоро совсем уйдет с арены.
FabISP в исполнении китайских товарищей.
Интересная особенность. Через 6-ти пиновый кабель, который, кстати не поставляется вместе с модулем, FabISP может питать и микроконтроллер. В таком случае не требуется дополнительное питание, как у AVRISP mkii. Так же хочу заметить, что оригинальный FabISP требует предварительной прошивки и программатора, по типу того же AVRIPS. Но с Китая модули (GY ARDUINO ISP V2) приходят уже прошитыми, что существенно облегчает задачу.
Прошивка ATmega328P посредством AVRDUDESS через FabLAB USBTiny
Я не стал устанавливать драйвера со странички студента, а установил их от Lady Ada (изобретателя USBTiny). После установки драйверов программатор определился как Atmel USB Devices – USBtiny. Для того, чтобы программатором можно было пользоваться, необходимо распаять, если она у вас не распаяна, перемычку SJFAB (в некоторых нотациях это перемычка обзывается как SJ1). Перемычка используется для возможности программирования самого программатора. Более того на плате присутствует и вторая перемычка SJ2 (или же SJVCC). Она отвечает за подачу питания на микроконтроллер с программатора. Если ее распаять, то для микроконтроллера потребуется внешнее питание. Ознакомиться со схемой можно все с того же сайта MIT.
При прошивке через FabISP необходимо обратить внимание, что поскольку программатор использует порт USB, то в AVRDUDESS необходимо так же выбрать порт USB. Никакого моста на последовательные порты не создается
При прошивке в Arduino IDE в качестве программатора выбираем USBTiny. Порт выбирать не требуется. В среде отсутствует возможность выбрать USB, поэтому опция просто игнорируется, AVR находит программатор самостоятельно.
Соответственно, при помощи FabISP можно прошивать внутрисхемно, в том числе и загрузчик, как при помощи AVRDUDE, так и напрямую из Arduino IDE (порт можно не указывать, загружаем через меню Sketch – Upload Using Programmer или Burn bootloader, в качестве программатора выбираем USBtinyISP).