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

Наши базы

Форма входа

Друзья сайта




REM-TV

Сейчас на сайте
Онлайн всего: 127
Гостей: 100
Пользователей: 27
kahar81, ivanovrussia, LG-savikdvd, WENQ, vid000dozmorov, gordon78, pavel1995, sman, sergey20, alex2180, sps82, strannik948, simtek, sergyojk, zot, Aliaksandr, make741, Soldering90, ФАРТ, gumr1983, Asket, Paganel, LA-XARA, isa1998, chik_vova, qweqwe, avdyatlov

Top 20 Uploaders

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


Приветствую Вас, Гость · RSS 27.07.2024, 06:38:10

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

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


Читать другие статьи, блоги:
Sony KD-49XE7077 Есть звук, подсветка, нет изображ...
Принтеры и МФУ. Как не «лохануться» при выборе. За...
Популярная "засада".
Доработка крепления шторок верхнего нагревателя па...
Удлинитель поворотников (комфортные поворотники)
Вторая жизнь доисторической аккустики
Мой нижний подогрев из старуй стеклокерамической ...
Подставка для ремонта LCD, PDP TV ,Racic
LG 32LJ510U LD76H EAX67041505(1.0) замена LED драй...
Ремонт телевизора DEXP U50F7000E
Всего комментариев: 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 , за его проделанный труд, и просветительскую работу в электронике и программировании...


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