Страница 1 из 5
USB программатор для AVR без предварительной прошивки.
Добавлено: Ср фев 10, 2010 11:12:02
red2cat
АХТУНГ! НОВАЯ ВЕРСИЯ USBBit 1.1 - ИЗМЕНИЛ СХЕМУ, ПЕЧАТНУЮ ПЛАТУ. ПЕРЕПИСАЛ ЗАНОВО ИНСТРУКЦИИ ПО СБОРКЕ И НАСТРОЙКЕ.
Все подробности тут
Привет всем!
Хочу похвастаться своей последней разработкой.
Вот схема.
Собственно раньше похожий программатор публиковался, но там не было возможности запускать МК после прошивки... Я немного дополнил схему, внёс некоторые изменения в Avrdude, и вот результат.

Софт, печатная плата и.т.д
тут
Внимание! Я не рекламирую сайт, просто в рунете множество форумов, и прыгать по каждому из них, отвечая на вопросы, не очень удобно.
Добавлено: Ср фев 10, 2010 11:32:05
МитяРа
Хорошая разработка..
Вот бы где найти подобную с bitband-технологией, но для других контроллеров, а не только AVR...
Добавлено: Ср фев 10, 2010 12:13:04
red2cat
пока работает только с ПРОПАТЧЕННЫМ Avrdude -
http://www.reddylab.eu/rclab/#7
Добавлено: Ср фев 10, 2010 12:21:06
ssvd
Под vista и windows 7 работает?
Добавлено: Ср фев 10, 2010 12:29:16
red2cat
Драйверы есть и для линукса и для макинтоша. Дудка компилировалась в ХР. По идее должно и в Вистах работать.
Добавлено: Ср фев 10, 2010 16:59:55
ssvd
ну что же, будем пробовать собирать )))
Добавлено: Пт фев 12, 2010 08:25:13
Alexeus
Отлично! практическая реализация порадовала. Нужно будет тоже собрать.
Добавлено: Пт фев 12, 2010 21:07:22
red2cat
АХТУНГ! НОВАЯ ВЕРСИЯ USBBit 1.1 - ИЗМЕНИЛ СХЕМУ, ПЕЧАТНУЮ ПЛАТУ. ПЕРЕПИСАЛ ЗАНОВО ИНСТРУКЦИИ ПО СБОРКЕ И НАСТРОЙКЕ.
Все подробности тут
История изменений:
v1.0
# Базовая версия
==================
v1.1
- Убраны два светодиода HL5,HL6.
+ Добавлены защитные резисторы R9,R10,R11 на линиях RX,TX,CLK6.
# Немного изменена трассировка печатной платы.
Добавлено: Вс фев 14, 2010 15:00:03
ssvd
все подробно! респект!
Добавлено: Вт фев 16, 2010 07:35:17
BIYON_DEGREYV
Извиняюсь за неграмотность, просто никогда этим не занимался. Скажите WinAvr обязательно нужна или только AvrDude хватит? Мне пока что нужно для разового программирования.
Добавлено: Вт фев 16, 2010 08:31:18
Arlleex
для рахового использования дороговато обойдется, по ссравнению с stk200, или с пятью проводками

Добавлено: Вт фев 16, 2010 09:30:16
BIYON_DEGREYV
Другого выхода нету. На компе только USB.
Добавлено: Вт фев 16, 2010 11:33:41
red2cat
Если читал описание, то там написано - Программатор работает с модифицированным Avrdude, который можно скачать там-же. Т.е. можно пользоваться одним Аврдудом но модифицированным.
ЗЫ: Читайте, батенька, инструкции. (
http://www.reddylab.eu/rclab/#7)
Добавлено: Ср фев 17, 2010 23:31:46
avreal
red2cat писал(а):который можно скачать там-же
Вот за это отдельное спасибо, так как лень было качать исходники avrdude, искать и накладывать патчи. А хотелось "сверить часы".
потыкался осциллографом и успокоился

Я уже давно ("очень давно") ткнулся в FT232RL, но мне не понравилась рваная форма SCK - (полу)-периоды скачут по длительности в разы, если не на порядок. Не паузы в пачках, что было бы логично при довольно высокой частоте sync bitbang (надо же и когда-то отправлять данные назад в PC), а чудненький хаос, иногда выстраивающийся в что-то в духе
Код: Выделить всё
_-_-_-______------_-_-_-_--------___________-_-_-
Поскольку непонятно, не бывают ли они при такой каше изредка короче, что будет приводить к сбою программирования, я не рискнул добавлять поддержку.
Времени мало, ещё пару раз с интервалом в несколько месяцев ткнулся, перепроверил свою тестовую программу, опять потыкался - результут тот же.
Ну а тут взял готовый avrdude, посмотрел осфиллографом - да та же самая каша.
Так что чёрт с ней, с кашей. Зря я боялся.

Добавлено: Чт фев 18, 2010 00:46:45
red2cat
Каша ано канешна это полезна. А главное на скорость не влияет. Каша наверное генерируется параллельно с передачей битов, а не передача битов синхронизируется с тиками. Т.е. Эдакий криво-программный SPI.
Добавлено: Чт фев 18, 2010 01:44:56
avreal
red2cat писал(а):А главное на скорость не влияет.
Тяжело сказать. Пожалуй, таки снижает.
red2cat писал(а):Каша наверное генерируется параллельно с передачей битов, а не передача битов синхронизируется с тиками.
Не-а. Передача битов происходит кашеобразно.
На FT2232 выставить частоту SPI - так SCK стоит на этой частоте как влитой с паузами, если из-за нехватки пропускной способности USB не успевают поступать новые данные.
А тут выставил частоту sync bitbang, а она практически не выдерживается.
Добавлено: Чт фев 18, 2010 10:06:07
red2cat
Так на сколько я понимаю, в режиме БитБанг МС ничего сама не генерирует и полностью подчиняется программе. Работа с БитБангом вроде как работа с ЛПТ портом. Или я заблуждаюсь?
Если передача данных устроена примерно так -
Код: Выделить всё
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; // сдвигаем биты в лево для следующей передачи.
}
Если в дудке используется подобная конструкция для передачи байтов, то каша обязательно будет.
Добавлено: Чт фев 18, 2010 23:03:34
avreal
Так (ну не свосем так, даже для 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);
Добавлено: Чт фев 18, 2010 23:16:31
red2cat
Вон оно чё, хороший констракшн. Нужно будет что-то реализовать , что-бы лучше усвоить...
ЗЫ: В этом деле я профан, умею только чужие коды портить, а вот свои грамотно строить толком не умею....
Добавлено: Ср фев 24, 2010 17:44:35
red2cat
Кто-нибудь собрал девайс? Есть баги? Я один вроде нашел...