Форум РадиоКот https://radiokot.ru/forum/ |
|
USB программатор для AVR без предварительной прошивки. https://radiokot.ru/forum/viewtopic.php?f=20&t=25921 |
Страница 1 из 5 |
Автор: | red2cat [ Ср фев 10, 2010 11:12:02 ] |
Заголовок сообщения: | USB программатор для AVR без предварительной прошивки. |
АХТУНГ! НОВАЯ ВЕРСИЯ USBBit 1.1 - ИЗМЕНИЛ СХЕМУ, ПЕЧАТНУЮ ПЛАТУ. ПЕРЕПИСАЛ ЗАНОВО ИНСТРУКЦИИ ПО СБОРКЕ И НАСТРОЙКЕ. Все подробности тут Привет всем! Хочу похвастаться своей последней разработкой. Вот схема. ![]() Собственно раньше похожий программатор публиковался, но там не было возможности запускать МК после прошивки... Я немного дополнил схему, внёс некоторые изменения в Avrdude, и вот результат. ![]() ![]() Софт, печатная плата и.т.д тут Внимание! Я не рекламирую сайт, просто в рунете множество форумов, и прыгать по каждому из них, отвечая на вопросы, не очень удобно. |
Автор: | МитяРа [ Ср фев 10, 2010 11:32:05 ] |
Заголовок сообщения: | |
Хорошая разработка.. ![]() Вот бы где найти подобную с bitband-технологией, но для других контроллеров, а не только AVR... |
Автор: | red2cat [ Ср фев 10, 2010 12:13:04 ] |
Заголовок сообщения: | |
пока работает только с ПРОПАТЧЕННЫМ Avrdude - http://www.reddylab.eu/rclab/#7 |
Автор: | ssvd [ Ср фев 10, 2010 12:21:06 ] |
Заголовок сообщения: | |
Под vista и windows 7 работает? |
Автор: | red2cat [ Ср фев 10, 2010 12:29:16 ] |
Заголовок сообщения: | |
Драйверы есть и для линукса и для макинтоша. Дудка компилировалась в ХР. По идее должно и в Вистах работать. |
Автор: | ssvd [ Ср фев 10, 2010 16:59:55 ] |
Заголовок сообщения: | |
ну что же, будем пробовать собирать ))) |
Автор: | Alexeus [ Пт фев 12, 2010 08:25:13 ] |
Заголовок сообщения: | |
Отлично! практическая реализация порадовала. Нужно будет тоже собрать. |
Автор: | red2cat [ Пт фев 12, 2010 21:07:22 ] |
Заголовок сообщения: | |
АХТУНГ! НОВАЯ ВЕРСИЯ USBBit 1.1 - ИЗМЕНИЛ СХЕМУ, ПЕЧАТНУЮ ПЛАТУ. ПЕРЕПИСАЛ ЗАНОВО ИНСТРУКЦИИ ПО СБОРКЕ И НАСТРОЙКЕ. Все подробности тут История изменений: v1.0 # Базовая версия ================== v1.1 - Убраны два светодиода HL5,HL6. + Добавлены защитные резисторы R9,R10,R11 на линиях RX,TX,CLK6. # Немного изменена трассировка печатной платы. |
Автор: | ssvd [ Вс фев 14, 2010 15:00:03 ] |
Заголовок сообщения: | |
все подробно! респект! |
Автор: | BIYON_DEGREYV [ Вт фев 16, 2010 07:35:17 ] |
Заголовок сообщения: | |
Извиняюсь за неграмотность, просто никогда этим не занимался. Скажите WinAvr обязательно нужна или только AvrDude хватит? Мне пока что нужно для разового программирования. |
Автор: | Arlleex [ Вт фев 16, 2010 08:31:18 ] |
Заголовок сообщения: | |
для рахового использования дороговато обойдется, по ссравнению с stk200, или с пятью проводками ![]() |
Автор: | BIYON_DEGREYV [ Вт фев 16, 2010 09:30:16 ] |
Заголовок сообщения: | |
Другого выхода нету. На компе только USB. |
Автор: | red2cat [ Вт фев 16, 2010 11:33:41 ] |
Заголовок сообщения: | |
Если читал описание, то там написано - Программатор работает с модифицированным Avrdude, который можно скачать там-же. Т.е. можно пользоваться одним Аврдудом но модифицированным. ЗЫ: Читайте, батенька, инструкции. (http://www.reddylab.eu/rclab/#7) |
Автор: | avreal [ Ср фев 17, 2010 23:31:46 ] |
Заголовок сообщения: | |
red2cat писал(а): который можно скачать там-же Вот за это отдельное спасибо, так как лень было качать исходники avrdude, искать и накладывать патчи. А хотелось "сверить часы".
потыкался осциллографом и успокоился ![]() Я уже давно ("очень давно") ткнулся в FT232RL, но мне не понравилась рваная форма SCK - (полу)-периоды скачут по длительности в разы, если не на порядок. Не паузы в пачках, что было бы логично при довольно высокой частоте sync bitbang (надо же и когда-то отправлять данные назад в PC), а чудненький хаос, иногда выстраивающийся в что-то в духе Код: _-_-_-______------_-_-_-_--------___________-_-_-
Поскольку непонятно, не бывают ли они при такой каше изредка короче, что будет приводить к сбою программирования, я не рискнул добавлять поддержку. Времени мало, ещё пару раз с интервалом в несколько месяцев ткнулся, перепроверил свою тестовую программу, опять потыкался - результут тот же. Ну а тут взял готовый avrdude, посмотрел осфиллографом - да та же самая каша. Так что чёрт с ней, с кашей. Зря я боялся. ![]() |
Автор: | red2cat [ Чт фев 18, 2010 00:46:45 ] |
Заголовок сообщения: | |
Каша ано канешна это полезна. А главное на скорость не влияет. Каша наверное генерируется параллельно с передачей битов, а не передача битов синхронизируется с тиками. Т.е. Эдакий криво-программный SPI. |
Автор: | avreal [ Чт фев 18, 2010 01:44:56 ] |
Заголовок сообщения: | |
red2cat писал(а): А главное на скорость не влияет. Тяжело сказать. Пожалуй, таки снижает.red2cat писал(а): Каша наверное генерируется параллельно с передачей битов, а не передача битов синхронизируется с тиками. Не-а. Передача битов происходит кашеобразно.
На FT2232 выставить частоту SPI - так SCK стоит на этой частоте как влитой с паузами, если из-за нехватки пропускной способности USB не успевают поступать новые данные. А тут выставил частоту sync bitbang, а она практически не выдерживается. |
Автор: | red2cat [ Чт фев 18, 2010 10:06:07 ] |
Заголовок сообщения: | |
Так на сколько я понимаю, в режиме БитБанг МС ничего сама не генерирует и полностью подчиняется программе. Работа с БитБангом вроде как работа с ЛПТ портом. Или я заблуждаюсь? Если передача данных устроена примерно так - Код: byte Sbyte = 0b10101010; // Байт который нужно передать
for(i=8; i; i--){ //Цикл для передачи 8ми бит if ( 0x80 | Sbyte ) FT_PORT_MOSI = 1; // Если старший бит 1, то на выводе MOSI высокий уровень. else FT_PORT_MOSI = 0; // Если старший бит 0, то на выводе MOSI низкий уровень. FT_PORT_SCK = 0; // На выводе SCK, для тактирования МК, низкий уровень. delay(); // Длительность уровня (варьируется в зависимости от нудной скорости передачи.) FT_PORT_SCK = 1; // На выводе SCK, для тактирования МК, высокий уровень. Sbyte << = 1; // сдвигаем биты в лево для следующей передачи. } Если в дудке используется подобная конструкция для передачи байтов, то каша обязательно будет. |
Автор: | avreal [ Чт фев 18, 2010 23:03:34 ] |
Заголовок сообщения: | |
Так (ну не свосем так, даже для LPT) делается в _асинхронном_ bitbang. Если вместо FT_PORT_* = X; поставить установки-сбросы этих битов в одном буферном байте и для каждого такого обращения написать FT_Write а для чтения MISO FT_GetBitMode - то будет близкое к описанному и это будет тот дико медленный режим, о котором говорилось выше. red2cat писал(а): Если в дудке используется подобная конструкция для передачи байтов, то каша обязательно будет. Если бы был этот режим, то время исчислялось бы минутами, а не секундами ![]() Для FT232R в _синхронном_ режиме приблизительно так (не показана обработка ошибок, форимрование буфера ведётся без учёта возможных инверсий на линиях и т.п.): Код: // устновить режим синхронного ногодрыга
FT_SetBitMode( ftHandle, direction_mask, 0x04); // для Sync BitBang - устанавливаем частоту выдачи _байтов_ FT_SetBaudRate( ftHandle, baud ); ... // вывести len байт из указателя obuf // сгенерированным при помощи ногодрыга SPI // формируем в буфере образ состония выводов index = 0; while( len--) { int i = 8; unsigned data = *obuf++; do { uint8_t temp = 0; if( data & 0x80) temp |= mosi; ftdbuf[index++] = temp; ftdbuf[index++] = temp | sck; data <<= 1; } while(--i); } ftdbuf[index++] = 0; DWORD written; // вот по этой команде весь буфер летит по USB, падает в FIFO // и должен с заданной частотой выдаться на шину dbus в FT232R, // после выдачи каждого байта делется ввод состояния ножек // и отправляется назад в PC FT_Write(ftHandle, ftdbuf, index, &written); |
Автор: | red2cat [ Чт фев 18, 2010 23:16:31 ] |
Заголовок сообщения: | |
Вон оно чё, хороший констракшн. Нужно будет что-то реализовать , что-бы лучше усвоить... ЗЫ: В этом деле я профан, умею только чужие коды портить, а вот свои грамотно строить толком не умею.... |
Автор: | red2cat [ Ср фев 24, 2010 17:44:35 ] |
Заголовок сообщения: | |
Кто-нибудь собрал девайс? Есть баги? Я один вроде нашел... |
Страница 1 из 5 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |