Один из рекомендованных спобосов для работы с микроконтролерами семейства С51 — это написание прошивки в среде Keil C51 и прошивка с помощью нормальных програматоров.
В статье Прошивка AT89S52 с помощью AVRDUDE мы уже сделали небольшое отступление в сторону и начали прошивать микроконтролер AT89S52 с помощью avrdude и Arduino.
К сожалению, Keil C51 доступна только под Windows. Поэтому мы сделаем еще один шаг и начнем писать прошивки под Linux, с использованием только открытого ПО.
В рамках этой инструкции подразумевается, что для прошивки используется способ, описанный в Прошивка AT89S52 с помощью AVRDUDE. Ниже описывается процесс установки утилиты avrdudess и IDE «MCU 8051 IDE» под Ubuntu, Elementary OS и подобные системы.
Первый пункт — установка утилит для прошивки МК. Точно так же, как и на Windows, для прошивки МК нам поможет avrdude и графический интерфейс avrdudess.
Установите avrdude и другие завивимости вручную.
Полный список зависимостей указан на странице загрузки avrdudess. Коротко это: avrdude, утилита для прошивки, и mono, реализация .NET Framework под Linux.
Чтобы не тратить время, этот список приведен ниже:
sudo apt install libmono-system-windows-forms4.0-cil avrdude gcc-avr
Загрузите свежую версию avrdudess
Свежую версию утилиты можно найти по ссылке https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/.
Для Linux загрузите ZIP-архив с программой. Распакуйте архив в любую папку, которая вам нравится.
Примечание
В этой инструкции подразумевается, что avrdudess будет находится в папке /home/srgk/.local_apps/avrdudess
. Замените этот путь на тот, который используется
в вашей системе.
Запустите avrdudess
Для запуска avrdudess используется mono:
mono /home/srgk/.local_apps/avrdudess/avrdudess.exe
Для простоты использования эту консольную команду можно заменить на desktop файл.
Но это уже тема для другого разговора.В любом случае, перед вами должен появиться интерфейс avrdudess.
Изменение конфигурации avrdude
В директории /home/srgk/.local_apps/avrdudess
измените файл avrdude.conf
.
В этот файл нужно добавить секции, которые отвечают за поддержку микрокнтроллеров AT89S52 и AT89S51. Тут все аналогично с версией для Windows: просто откройте список изменений по адресу https://git.io/fA15B и сделайте аналогичные изменения для вашего файла конфигурации.
Изменение настроек avrdudess
Нажмите кнопку «Options» и перейдите в настройки avrdudess.
В поле «File locations» -> «avrdude.conf» укажите путь к папке с новым файлом avrdude.conf
:
/home/srgk/.local_apps/avrdudess
На этом базовая настройка avrdudess закончена. Дальше следуйте по инструкции Прошивка AT89S52 с помощью AVRDUDE, секция «Настройки AVRDUDESS».
Теперь перейдем к установке IDE для разработки под AT89S52.
Выбор у нас не большой. Один из основных вариантов — это довольно старая открытая среда «MCU 8051 IDE» в паре с компилятором «ssdc». Именно эти компоненты мы и установим:
sudo apt install ssdc mcu8051ide
На этом установка заканчивается. Можно создавать собственные проекты или открыть готовый. Например этот: https://git.io/Jesku.
avrdude-gui — это простой графический интерфейс для avrdude ( http://savannah.nongnu.org/projects/avrdude ), который является инструментом командной строки, работающим в нескольких ОС для программирования микроконтроллеров Atmel AVR.
Официальный сайт
avrdude avr frontend
Официальный сайт
embedXcode — это шаблон для Xcode.
Условно бесплатно Xcode Mac
IDE
9
AVR8 Burn-O-Mat — это графический интерфейс для AVRDUDE, утилита для загрузки / выгрузки / манипулирования содержимым ПЗУ и ЭСППЗУ микроконтроллеров AVR с использованием технологии внутрисистемного программирования (ISP).
Открытый исходный код Бесплатно Linux Mac Windows
Графический интерфейс пользователя Не требует установки
GUI-интерфейс для популярной программы avrdude. Написан на C ++ с использованием MFC, скомпилирован с Visual Studio 2002, статически связан. Эта программа распространяется на условиях лицензии GPL v3.
Открытый исходный код Бесплатно Windows
AVRDUDESS — это графический интерфейс для AVRDUDE, инструмента для программирования микроконтроллеров Atmel. Некоторые ключевые особенности: Поддерживает все программисты и микроконтроллеры, которые поддерживает AVRDUDE Поддержка предустановок, позв…
Бесплатно Linux Windows
Графический интерфейс пользователя
BitBurner AVR Programmer, полный и полный графический интерфейс AVRdude для Windows. BitBurner AVR Programmer — это графический интерфейс для программы командной строки AVRdude. Он используется для передачи программ и данных в микроконтроллеры семей…
Открытый исходный код Бесплатно Windows
Встраиваемый
[email protected]
fpv1812 (Чарльз)
1
кто-нибудь знает другого программиста, у меня работает win 10, avrdude даже не запускается.
Роберт.Уолл (Роберт Уолл)
2
Я пробовал искать.
АльтернативаКомуЛучшими альтернативами графическому интерфейсу AVRdude являются AVRDUDESS, Khazama AVR Programmer и embedXcode. Наш краудсорсинговый список содержит шесть приложений, похожих на графический интерфейс AVRdude для Windows, Linux, Mac, BSD и других.
Я не могу поручиться ни за один из них, я предлагаю вам попробовать их, пока вы не найдете тот, который работает для вас. Я не использую Win10, поэтому не могу вам посоветовать, но, если мне не изменяет память, у меня Arduino IDE работала в Win10 внутри виртуальной машины.
Но, насколько я знаю, почти все используют Avrdude, поэтому, если предположить, что вы следовали инструкциям по установке любой IDE и программатора, которые вы используете, первое, что я заподозрил бы после этого, это разрешения — для самой программы и для USB/последовательный порт и драйвер.
фпв1812 (Чарльз)
3
Спасибо попробую avrdudess тоже не работает
Пробовал искать.
Альтернатива
Лучшими альтернативами графическому интерфейсу AVRdude являются AVRDUDESS, embedXcode и Khazama AVR Programmer. Наш краудсорсинговый список содержит шесть приложений, похожих на графический интерфейс AVRdude для Windows, Linux, Mac, BSD и других.
Я не могу поручиться ни за один из них, я предлагаю вам попробовать их, пока вы не найдете то, что вам подходит. Я не использую Win10, поэтому не могу вам посоветовать, но, если мне не изменяет память, у меня Arduino IDE работала в Win10 внутри виртуальной машины.
Но, насколько я знаю, почти все используют Avrdude, поэтому, если предположить, что вы следовали инструкциям по установке любой IDE и программатора, которые вы используете, первое, что я заподозрил бы после этого, это разрешения — для самой программы и для USB/последовательный порт и драйвер.
атанисофт (Майк Данстон)
4
Какие проблемы вы видите с avrdude?
Роберт.Уолл (Роберт Уолл)
5
Моя память была правильной. У меня Avrdude работает в Win10 на виртуальной машине, вот результат загрузки с использованием Arduino IDE V1. 8.13:
Sketch использует 13960 байт (43%) пространства для хранения программ. Максимум 32256 байт. Глобальные переменные используют 1588 байт (77%) динамической памяти, оставляя 460 байт для локальных переменных. Максимум 2048 байт. Недостаточно доступной памяти, могут возникнуть проблемы со стабильностью. E:\arduino-1.8.13-windows\arduino-1.8.13\hardware\tools\avr/bin/avrdude -CE:\arduino-1.8.13-windows\arduino-1.8.13\hardware\tools\avr/ etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\R\AppData\Local\Temp\arduino_build_582806/emonTxV3_4_RFM12B_DiscreteSampling.ino.hex:i avrdude: Версия 6.3-20190619 Авторское право (c) Брайан Дин, 2000–2005 гг., http://www.bdmicro.com/ Copyright (c) 2007-2014 Йорг Вунш Общесистемный файл конфигурации: "E:\arduino-1.8.13-windows\arduino-1.8.13\hardware\tools\avr/etc/avrdude.conf" Использование порта: COM3 Использование программатора: arduino Преобладающая скорость передачи: 115200 Часть AVR: ATmega328P Задержка стирания чипа: 9000 мкс СТРАНИЦА: PD7 БС2: ПК2 Расположение СБРОСА: посвященный ПОВТОРИТЬ импульс: SCK серийный программный режим: да режим параллельной программы: да Таймаут : 200 StabDelay : 100 CmdexeDelay: 25 Синхпетли: 32 Задержка байта: 0 Индекс опроса: 3 Поллвалуе: 0x53 Деталь памяти: Заблокировать страницу опроса Тип памяти Режим Задержка Размер Индекс Постраничный Размер Размер #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ----- - ----- ----- --------- eeprom 65 20 4 0 нет 1024 4 0 3600 3600 0xff 0xff flash 65 6 128 0 да 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00 замок 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00 калибровка 0 0 0 0 нет 1 0 0 0 0 0x00 0x00 подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00 Тип программатора: Ардуино. Описание: Ардуино. Аппаратная версия: 3 Версия прошивки: 4.4 Vцелевое : 0,3 В Вареф: 0,3 В Генератор: 28,800 кГц Период SCK: 3,3 мкс avrdude: устройство AVR инициализировано и готово к принятию инструкций Чтение | ################################################### | 100% 0,00 с avrdude: Подпись устройства = 0x1e950ф (скорее всего м328р) avrdude: чтение входного файла "C:\Users\R\AppData\Local\Temp\arduino_build_582806/emonTxV3_4_RFM12B_DiscreteSampling.ino.hex" avrdude: запись flash (13960 байт): Написание | ################################################### | 100% 2,27 с avrdude: записано 13960 байт флэш-памяти avrdude: проверка флэш-памяти на C:\Users\R\AppData\Local\Temp\arduino_build_582806/emonTxV3_4_RFM12B_DiscreteSampling.ino.hex: avrdude: загрузить данные флэш-памяти из входного файла C:\Users\R\AppData\Local\Temp\arduino_build_582806/emonTxV3_4_RFM12B_DiscreteSampling.ino.hex: avrdude: входной файл C:\Users\R\AppData\Local\Temp\arduino_build_582806/emonTxV3_4_RFM12B_DiscreteSampling. ino.hex содержит 13960 байт avrdude: чтение данных встроенной флэш-памяти: Чтение | ################################################### | 100% 1,79 с avrdude: проверка... avrdude: проверено 13960 байт флэш-памяти avrdude сделано. Спасибо.
@atanisoft Я думаю, это проблема с правами доступа, возможно, из-за неправильной установки?
атанисофт (Майк Данстон)
6
Роберт.Стена:
Я думаю, это проблема с правами доступа, возможно, из-за неправильной установки?
Скорее всего, или USB-устройство не подключено к ПК?
Роберт.Уолл (Роберт Уолл)
7
атанисофт:
или USB-устройство не подключено к ПК?
Нет, это мой любимый, и он выдает «avrdude: ser_open(): не удается открыть устройство «/dev/ttyUSB0»: нет такого файла или каталога», что говорит о том, что это исходит от Avrdude.
Если программатор не подключен к плате, Avrdude все еще работает и сообщает знакомый
avrdude: stk500_recv(): программатор не отвечает avrdude: stk500_getsync() попытка 1 из 10: не синхронизировано: resp=0x00
… и т. д.
fpv1812 (Чарльз)
8
avrdude не работает на моем компьютере с Windows 10. Теперь у меня работает avrdudess, я установил драйверы с помощью zadig и запрограммировал один модуль. Сейчас я собираюсь протестировать его на своем powerwall.
у меня есть powerwall 13.5kw 14s, если кому интересно. Его 270AH на 14s.
фпв1812 (Чарльз)
9
спасибо за информацию, похоже, это проблема с подписью драйвера. Теперь я убрал win 10 до минимума. Avrdue просто не запускается. Я не кодер, и некоторые из вас намного опередили меня. Я запускаю diybms больше года, и кажется, что я теряю один модуль примерно каждые 2 месяца, поэтому я увидел последний и подумал, что он будет немного надежнее.
c mathias
avrdude не работает на моем компьютере с Windows 10. Теперь у меня работает avrdudess, я установил драйверы с помощью zadig и запрограммировал один модуль. Сейчас я собираюсь протестировать его на своем powerwall.
У меня есть Powerwall 13.5kw 14s, если кому интересно. Его 270AH на 14s.
фпв1812 (Чарльз)
10
Сейчас я использую avdudess. Это работает нормально. Avrdude вообще не будет работать??
deutsch
Linux Debian | avr8-burn-o-mat-2. 1.2-all.deb (2015-02)-9 ошибки пакета исправлены 280144 |
Windows Installer | AVR8_Burn-O-Mat_2_1_2_setup.exe |
Mac App Bundle | AVR8_Burn-O-Mat_2_1_1.dmg |
All (ZIP Datei) | AVR8_Burn- O-Mat_2_1_2.zip |
Исходный код | AVR8_Burn-O-Mat_2_1_2_src.tar.bz2 |
Для этой программы требуется среда выполнения Java SE (JRE). Вы можете скачать это здесь: http://java.sun.com/javase/downloads/index.jsp
Конфигуратор предохранителей теперь можно использовать онлайн. Не все функции работают, потому что апплеты Java не имеют полного доступа к локальному компьютеру. Вы должны установить AVR Burn-O-Mat приложение на свой компьютер, если вы хотите использовать все функции (например, чтение и запись фьюзов в диалоговом окне фьюзов).
Для записи микроконтроллеров Atmel с помощью Linux вы можете использовать avrdude 9.0143 как я. Но иногда вам может понадобиться более удобный способ сделать это, не зная сотен параметры командной строки и без калькулятора для расчета шестнадцатеричных кодов для предохранителей. Вот почему я решил написать графический пользовательский интерфейс, облегчающий чтение и запись фьюзов, EEPROM и памяти программ.
Главное окно | Предохранители | Опции часов | Настройки |
AVR8 Burn-O-Mat написан на Java. Это имеет небольшой недостаток для вас, что вам необходимо установить Java, прежде чем вы сможете использовать AVR8-Burn-O-Mat. Но не паникуйте, вы можно скачать Java бесплатно здесь: http://java.sun.com/javase/downloads
Процедура установки достаточно проста. Вы должны распаковать ZIP-архив в каталог по вашему выбору.
Программа должна быть самообъясняющей. В первую очередь стоит заглянуть в настройки. Убедитесь, что путь к программе avrdude и файлу конфигурации avrdude указан правильно. Далее вы следует выбрать правильный программатор и порт, к которому подключен программатор. (Поддерживаемые программаторы считываются из файла avrdude.conf )
Вот список поддерживаемых микроконтроллеров:
ATmega8, ATmega16, ATmega32, ATmega64, ATmega128, ATmega48, ATmega88, ATmega168, ATmega162, ATmega8515, ATmega8335, ATmega164, ATmega324, ATmega644, ATmega169, ATmega329, ATmega3290, ATmega649, ATmega6490, ATtiny2313, ATtiny13, ATtiny25, АТтини45, АТтини85, АТтини26
Новые микроконтроллеры могут быть легко добавлены. Вся необходимая информация (для AVR8-Burn-O-Mat) хранятся в файле AVR8_Burn_O_Mat_Config.xml . Формат этого файла должен быть самообъяснение.
Я хотел бы поблагодарить следующих людей за сообщения об ошибках, предложения по улучшению или части файла предохранителей:
Эта программа является бесплатным программным обеспечением: вы можете распространять ее и/или модифицировать на условиях Стандартной общественной лицензии GNU, опубликованной Free Software Foundation, либо версию 3 Лицензии, либо (на ваш выбор) любую более позднюю версию.
Эта программа распространяется в надежде, что она будет полезна, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ или ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.