Список форумов Ремонт бытовой техники и електронники Ремонт бытовой техники и электроники
 
  Файло-обменникФайлы    ПрошивкиПрошивки   ПродажаПродажа   ЛитератураЛитература   СтатьиСтатьи 
Каталог статей/блогов
Меню сайта

Наши базы

Форма входа

Друзья сайта




REM-TV

Сейчас на сайте
Онлайн всего: 392
Гостей: 303
Пользователей: 89
sofi2024, andrey-r2015, SEREGADeepSkok, Rysiksss, pou2007, biser54, REMBOSS, maxoganer, rammer, alexruschina, slawnet2, mikael-3333, Asd70, aleksandrmar, vtabakov, Адам, Statuswan, aleksandr0903, Storm2008kr, HeoVang, gioseppe, дима56rus, Amatti, KEHT_UA, maks2013, enotici, artemqa1080, valera1331, stich-u, omikron, modern300, novikovam, panches, querij, MexaHuKyc, efrem, ury1974, dipol45, Yojikvtanke, Serg_a, vred_68, Alexey79, yabbadabbadoo, igor76, fugas27, seregin, cyberland_remont, Mixales, Mastok_net, эдуардович, [Полный список]

Top 20 Uploaders

Партнёры проекта


Приветствую Вас, Гость · RSS 16.07.2026, 19:31:52

Главная » Статьи » Статьи » Программаторы (железо, инстркуции и софт)

Прошить ATMEGA8 (либо китайский прогер USBASP) преобразователем USB-UART на CP2102 в Linux.


Целью изыскания было запустить-таки преобразователь в качестве программатора. Изчерпывающей информации об этом в сети не нашел, но из разных источников (ниже) сложилось определенное представление которое решено было реализовать в программе avrdude и как максимум в явовской гуишной оболочке avr8-burn-o-mat. Согласно конфига (см. ниже) для cp2102 соединение выглядело так: reset=txd; sck=rts; mosi=dtr; miso=cts (слева контакты прошиваемого usbasp на atmega8, справа - модуля конвертора на cp2102).Ну и соответственно GND и питание. Все припаяно. Причем, питание на модуль с cp2101 шло c usb pc, а на прошиваемый usbasp - с зарядного устр-ва смартфона, тоже с usb-гнездом. Обратите внимание что преобразователь должен быть «продвинутым», с дополнительными выводами по бокам платы. См. фото.



Джампер питания на usbasp стоял на 5в, и установлена перемычка jp2 (припаяна) для режима прошивки. См. фото. Далее следуют грубоватые действия с т. зрения линуксоидов, а именно -правка конфига. В /etc/avrdude.conf вставлен текст следующего содержания:
Код

programmer
id = "cp2102";
desc = "Serial-USB bitbang, reset=!txd sck=!rts mosi=!dtr miso=!cts";
type = "serbb";
reset = ~3;
sck = ~7;
mosi = ~4;
miso = ~8;
;

В /udev сначала создал файл .rules, но потом отказался ввиду его незначительности как потом понял. Командой
Код

lsusb

можно понять к какому порту произошло подсоединение устройства. В моем случае это /dev/ttyUSB0
Из статей в сети вынес необходимость сконфигурировать виртуальный порт /dev/ttyUSB0. Выполнил конфигурирование порта /dev/ttyUSB0, возникающего при втыкании модуля в порт usb. При помощи утилиты stty:
Код

stty 9600 ignbrk -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo noflsh </dev/ttyUSB0

Данную команду надо вводить при работе с этим портом. После ребута настройка слетает. Проверять текущие настойки порта нужно командой:
Код

stty </dev/ttyUSB0

При вводе этой команды может выскочить ошибка Permission denied. Это значит пора занятся правами на виртуальный порт /dev/ttyUSB0. «Прибираем его к рукам» командой от рута:
Код

sudo usermod -g dialout NameUser (добавляем юзверя в команду dialout)

После перезагрузки работу начинаем с втыкания в usb модуля с cp2102 (уже в сцепке с прошиваемым usbasp, пока не подавая на последний питание). Появляется порт. Задаем ему конфигурацию вышеуказанной командой stty с необходимыми атрибутами. Если прошло гладко, то можно приступать к тестированию соединения в avrdude. Подаем питание на прошиваемый usbasp. Команда
Код

avrdude -p m8 -c cp2102 -P /dev/ttyUSB0 -n

должна закончиться следующим выводом :
Код

irod@irod-H61MGV3:~$ avrdude -p m8 -c cp2102 -P /dev/ttyUSB0 -n

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.23s

avrdude: Device signature = 0x1e9307 (probably m8)

avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

avrdude done. Thank you.

irod@irod-H61MGV3:~$

Тест пройден. Далее можно задать команду считать содержимое флеш-памяти контроллера с сохранение в файл (в примере usvasf в домашней директории)
Код

irod@irod-H61MGV3:~$ avrdude -p m8 -P /dev/ttyUSB0 -c cp2102 -U flash:r:/home/irod/usvasf:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.24s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: reading flash memory:

Reading | ################################################## | 100% 625.33s

avrdude: writing output file "/home/irod/usvasf"

avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)

avrdude done. Thank you.

irod@irod-H61MGV3:~$

Затем считать eeprom. Ну и т. д...
Из терминала видно что скорость работы преобразователя невелика. Дамп 13-15 kb читается около 10 мин. На прошивку уже готового прогера я не пошел, достаточно было с меня теста с чтением. Оставляю это удовольствие для тебя, читатель.
Но пойдем далее. Т.к необходимые настройки в конфиге avrdude имеются, можно настроить гуишную оболочку этой программы, доступную в ubuntu как avr8-burn-o-mat. Скачать можно свободно и установить с контекстного меню пакета при помощи gdebi. Требуемые библиотеки и зависимости можно так-же свободно найти в репозиториях разных дистрибутивов и установить последовательно их все. В окне программы можно выбрать прошиваемый проц. (в нашем случае atmega8). При считывании (Read) или прошивке (Write) предварительно нажимаем на кнопку File и обзываем считанный дамп (по англ.) и указываем путь к нему. Или указываем путь к файлу firmware прошивке. См. скрин



Затем в настройках поправляем путь до запускающего файла программы и до конфига. Выбираем для работы виртуальный порт /dev/ttyUSB0. Ну и в выпадающем списке находим наш, внесенный в конфиг «горе-программатор» на cp2102 . См скрин



Обратите внимание что работа программы-оболочки и, соответственно avrdude состоялись. При написании статьи и изысканиях пользовался следующими источниками:
https://ph0en1x.net/78-conf....ux.html
https://ph0en1x.net/77-avrd....ux.html
http://we.easyelectronics.ru/zubb....ng.html
И др.
Всего голосов: ... |

Материал добавил: irocpai, 06.03.2019(Среда) в 19:17:16 | Категория: Статьи / Программаторы (железо, инстркуции и софт) | Просмотров: 6055 | Комментариев: 2 | Понравилось: 3 |


Читать другие статьи, блоги:
Зависания ресивера HD J1 (НТВ+) при включении
Бесконечный ребут после обновления Win 10
Ремонт платы настенного котла Gazlux Premium
ROLAND VS-640I - Хроника ремонта
Ремонт сенсорного выключателя. Модель G09336, оно...
MS-7680 rev 3.1 (H61M-P23(B3) - не включается
Оживляем китайский планшет после неудачной прошивк...
Ремонт подсветки TV HONDA HD LED243
Не УНИВЕРСАЛЬНОЕ ПО для Т2-приставок
Замена в ИБП ШИМ на OB2263
Всего комментариев: 2
#1   (09.01.2021 19:10:13) [Материал]
  
У `stty` есть ключ `-F`, мне больше нравится его использовать (удобнее):
Код
stty -F /dev/ttyUSB0 ...


#2   (03.06.2023 00:49:50) [Материал]
  
Немного разжую, хотя сам не специалист...
1. Есть терминальная программа для прошивки avrdude и для windows, и для linux и иже сними остальными осями... Она как раз всё шьёт... А тот-же avr8-burn-o-mat и куча других подобных - это оболочка поверх avrdude.
2. У этой программы есть конфиг файл - avrdude.conf. Вот как раз в этом текстовом файле - и есть список поддерживаемых программаторов и способы\режимы их работы...
3. Автор использовал режим Bitbang, который более хорошо описан на сайте Ди Халта(если там хорошенько полазить), к примеру https://easyelectronics.ru/skorost....ra.html
4. Вообщем ХОЧУ ВЫРАЗИТЬ СПАСИБО АВТОРУ prive_t , за его проделанный труд, и просветительскую работу в электронике и программировании...


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]