USBASP на К1946ВМ014

Модераторы: ea, Alis, pip, gurzzza, sya, _sva_

Ответить
Аватара пользователя
ejsan
Сообщения: 43
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

USBASP на К1946ВМ014

Сообщение ejsan »

Зачем нам ещё один USBASP, спросите вы? Но почему бы и нет, это же классика! Кроме того, можно будет потом показывать друзьям "настоящий российский программатор". :mrgreen: Впрочем, можно хотя бы несколько расширить базовый функционал изделия, чтобы было удобнее с ним работать.
Не буду долго тянуть, у меня более-менее всё получилось, и вот схема:
Изображение
По сравнению с тем, что сделал когда-то Thomas Fischl, я добавил возможность манипуляции подтяжкой через ногу PD4, что позволяет прошивке выполнять USB Reset.
Распиновка разъёма XP1 сделана более-менее похожей на то, что использует Фитон с своих программаторах ChipProg. Вы поставите такой разъём и распиновку, какие вам привычнее. Пины XP2...XP4 можно замыкать джамперами, или чем-нибудь ещё. XP2, понятное дело, может подавать USB-питание на разъём программирования. XP3 включает очень медленный режим прошивки - это бывает полезно, если контроллер тактируется низкой частотой. А вот XP4 включает выдачу из контроллера на 10 ногу XP1 тактового сигнала частотой 600 кГц - это нам как раз может пригодиться для первоначальной прошивки К1946ВМ014, если производитель так и будет далее их поставлять с нешитыми фьюзами. В выключенном виде нога PD5 переходит в режим входа с высоким сопротивлением и, по идее, не мешает, даже если будет подключаться к цепям кварца целевой платы.
N.B. Что любопытно, 1887ВЕ4У, например, идут с завода с фьюзами, выставленными по образцу как на "фирменной" Атмеге! Наверно, потому, что их тщательнее тестируют перед отгрузкой? :?:
Если кому очень надо - во вложении весь проект в Altium Designer 10 и слегка подправленные исходники USBASP v.1.4. Плата сделана под корпус G1017 (Gainta) и, по возможности, оптимизирована под односторонний ЛУТ, поэтому выглядит несколько "топорно". Уверен, у вас получится лучше.
Вложения
USBASP_NIIET.ZIP
(2.45 МБ) 145 скачиваний
Аватара пользователя
ejsan
Сообщения: 43
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: USBASP на К1946ВМ014

Сообщение ejsan »

О роли R6, R7, R9 следует сказать особо:
Сначала мы впаиваем R6, R7, они нужны, чтобы зашить сам К1946ВМ014. На это время XP1 работает входом, и, разумеется, нам понадобится какой-то сторонний программатор. R9 пока не впаиваем, чтобы не мешал.
Подавая на XCK внешнюю тактовую частоту от какого-нибудь генератора (R7 пробрасывает её на вход кварца), сразу меняем фьюзы. Я выставил lfuse 0x3F и hfuse 0xC9.
Потом отпаиваем R7, он больше не нужен. Заливаем прошивку main.hex После этого программатор уже должен увидеться в ОС компьютера.
Теперь перепаиваем перемычку с R6 на R9, и очередной USBASP готов к работе.
Вложения
P_20250618_195719.jpg
P_20250618_195719.jpg (62.68 КБ) 2054 просмотра
P_20250618_195711.jpg
P_20250618_195711.jpg (44.01 КБ) 2054 просмотра
Аватара пользователя
ejsan
Сообщения: 43
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: USBASP на К1946ВМ014

Сообщение ejsan »

Для тех,кто пожелает собрать прошивку самостоятельно, оригинал, или её многочисленные форки: учитывая, что распиновка нашей "Atmega8535" несколько отличается от Atmega8, в первую очередь, ищем по всем исходникам, в т.ч. ассемблерным файлам, все дефайны, относящиеся к регистрам выводов контроллера (PORT, PIN, DDR), и при необходимости их исправляем. Makefile автор уже подготовил, но тип контроллера в нём, конечно, надо исправить на "atmega8535". В данном чипе нет какого-то выделенного вывода Clockout, как это бывает, скажем, в Atmega88, поэтому для формирования импульсов XCK я зарядил Timer1, благо в основном коде USBASP он не задействован.

Код: Выделить всё

//Это включаем тактирование от основных 12 МГЦ
//и режим выдачи ШИМ
TCCR1A=0x82;
TCCR1B=0x19;
ICR1H=0x00;
ICR1L=0x13;
OCR1AH=0x00;
OCR1AL=0x09;
Частота импульсов определяется как fosc / (ICR1 + 1), так что, при желании, можете её в определённых пределах изменить. Чтобы получить на выходе меандр, значение OCR1 должно быть равно половине от ICR1.
После окончания правок, как обычно, делаем make clean, make main.hex, не забыв предварительно установить AVRGCC.
Аватара пользователя
ejsan
Сообщения: 43
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: USBASP на К1946ВМ014

Сообщение ejsan »

Интересное наблюдение: получил недавно свежий экземпляр К1946ВМ014, а у него с завода фьюзы выставлены как в оригинальной атмеге, без этих проблем со внешним тактированием! Неужели разворот лицом к потребителю? :P
Ответить

Вернуться в «Микроконтроллеры RISC»