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

Наши базы

Форма входа

Друзья сайта




REM-TV

Сейчас на сайте
Онлайн всего: 467
Гостей: 422
Пользователей: 45
i_sushchin, cyberland_remont, suppressorrrr, andy888, gbservise, lexx77786, Никола-борода, PaulAmper, igorek_krutoy, svs999, novazencev2533, qazedcwsx, kesko, ovr, kompcervic, SonikPlus, ITGuru, Prosto974, garin1989, sanex, yurafat, zorro16, IHARCHAR, Paganel, 507707, artemqa1080, ФАРТ, Vladimir_, Sova86, dp250990iss, andrei240391, hanz45, Alexey_N, BigUh, dzedan56, Toll72, none58, federere, borzoff, billi112, wadass, alexrakov8

Top 20 Uploaders

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


Приветствую Вас, Гость · RSS 13.07.2025, 09:40:24

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

Прошить 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 | Категория: Статьи / Программаторы (железо, инстркуции и софт) | Просмотров: 5414 | Комментариев: 2 | Понравилось: 3 |


Читать другие статьи, блоги:
Формирование напряжений и сигналов запуска ноутбук...
Вторичный источник питания TV2415-ZC02-01.
Лечение китайских термостатов
Расшифровка степеней защиты IP для электроприборов
Ремонт цифрового мультиметра АКИП-2200
Видеоурок
Сброс пароля на видеорегистраторе Techage (Main B...
Регулируемый блок питания. Часть 4. Конструкция.
Модернизация стиральной машины "Samsung P805J
О грядущем прорыве в области электроники
Всего комментариев: 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 , за его проделанный труд, и просветительскую работу в электронике и программировании...


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