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

Наши базы

Форма входа
Логин:
Пароль:

Друзья сайта




REM-TV

Сейчас на сайте
Онлайн всего: 211
Гостей: 131
Пользователей: 80
jigulin, AlexSol, s-master1, fertag, xvad2, Valeriynew, wladzimir555, x912ak, susues, lefter, Башкир, Brunh, mrfloope, QASD, stoks74, wlad4369, MSC_expert-repair, Serge7, ser72, VIKRYS, alsuh, xodbox, cadtat1955, sharifgayurov, sabina2007, agapitov_82, traveller_59, remvetal5, alien61, Alex37, shaborda, Орша, ВСП, demilisher1, Stanizha, MDK76, dimdim12, adam-volk, sorel, askeller, MIXAIL22296, samo124, talgast, Meylis1993, bodja22, skyilnur, dry2007, darkfox16, jye, MZService, [Полный список]

Top 20 Uploaders

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


Приветствую Вас, Гость · RSS 19.05.2024, 10:28:25

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

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


Читать другие статьи, блоги:
LED Телевизор Филипс с чужими дампами(отвал функци...
Установка драйвера под Postal3 (PostalAVR)
Усилитель Biema W330 (W220) рекомендации по улучше...
Делаем зарядное устройство для 12В свинцово-кислот...
Внимание ОЖОГ
Отключение DEMO режима в духовом шкафу GORENJE BO ...
Паям (Payam) самая необычная радиостанция на АМ ди...
Сброс памперса на Epson ET-M1100, ET-M1120
Прибор для входа в сервис меню тв LG ЛДж
Простой блок питания для индукционных паяльников M...
Всего комментариев: 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 , за его проделанный труд, и просветительскую работу в электронике и программировании...


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