Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/78: Рейтинг темы: голосов - 78, средняя оценка - 4.78
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
1

Не работает преобразователь уровней для usbasp

09.09.2010, 13:23. Просмотров 14098. Ответов 16
Метки нет (Все метки)

Доброго всем времени суток!

Сразу после выхода в свет статьи на этом сайте под названием "USB программатор AVR - USBAsp", я собрал это устройство. Оно отлично работает. Но недавно мне понадобилось прошить отладочную плату, которая питалась от 3.3В. Для этого я собрал внешний преобразователь уровней на max3378. Но он ... не работает! avrdude пишет, что устройство не отвечает, не может прочесть сигнатуру и т.д. Проблема именно в преобразователе.

В чем может быть причина?
Заранее спасибо.

Принципиальная схема:

<Изображение удалено>
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2010, 13:23
Ответы с готовыми решениями:

После обновления прошивки не работает USBasp программатор
После обновления прошивки USBasp программатор правильно определяется в системе, но не отвечает на...

Преобразователь уровней RS-232 для КПК
Предложите пожалуйста схему преобразования уровней, чтобы вытащить из разъема КПК FS n560...

Преобразователь уровней
Понадобился мне низковольтный ttl (1.8v) UART, в наличии есть USB&lt;-&gt;UART 3.3v. Набросал схему...

Посоветуйте преобразователь уровней 3.3<->1.8
Нужно связать МК(3.3v) и ЛЦД(1.8V). Интерфейс параллельный, обмен двухсторонний. Микру...

Преобразователь уровней 5В<->24В
Нужны двунаправленные преобразователи уровней 5В&lt;-&gt;24В. Может кто встречал такие?

16
xomto
0 / 0 / 0
Регистрация: 02.05.2010
Сообщений: 77
09.09.2010, 14:03 2
так там преобразователь уровней не нужен. оно и без него нормально зафурычит.
3.3 вольта это нормально чтобы прочесть лог.1 с помощью атмеги 8 запитанной от 5 вольт(то что в юсбасп)
только земли надо объединить, а питание не объединять
0
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
09.09.2010, 14:41 3
С ним безопаснее и удобнее (лично мне).
К тому же, устройство уже сделано. Выяснение причины неработоспособности поможет починить его (значит, не зря потратил время на изготовление).

Я руководствовался логикой: у программатора линия risit в высокоомном состоянии, пока не происходит программирование. При программировании - логический ноль. В соответствии с этим добавлен инвертор. Его быстродействия ведь должно хватать для того, чтобы включать MAX3378 при появлении на линии risit "0" (его время срабатывания - max 6ns, время одного такта аврки на частоте до 8Мг - min 125ns)?
0
DY HOTT
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 4,000
09.09.2010, 16:53 4
Не проще ли было всю схему запитать от 3.3 вольт. Меги спокойно на таком напряжении работают.
0
09.09.2010, 16:53
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
09.09.2010, 17:14 5
To xomto: земли связаны, питание - нет (используется только для работы max3378 и 74lvc1g14, на целевую плату не идет).

У меня есть два физических устройства: программатор (питается от порта USB) и целевая плата, напряжение питания которой равно 3.3В (понижается с кроны). Я так понимаю, что если на программируемое устройство придут сигналы RST, MISO, MOSI и SCK от программатор напрямую, то оно может выйти из строя (наверное?). Кроме того, max3378 можно перевести в высокоомное состояние, тогда программатор не придется отключать от платы.

Вот я и делаю прослойку. Если мега в программаторе может понять входные сигналы с уровня 3.3, то нужно понизить 5В от программатора до 3.3В платы. Что не так в моих рассуждениях?

Заметил:
- при удаленном подтягивающем резисторе R3 на линии RESIT к max3378 от программатора в покое наблюдается напряжение 1.48В (хотя там ничего не должно быть).
- если линию RESIT соединить с землей напрямую, то программирование проходит нормально.
0
SupirByzom
0 / 0 / 0
Регистрация: 24.04.2010
Сообщений: 108
09.09.2010, 18:55 6
кажися чёто по линии резета както не так.
по моему не совсем правильно им дёргать MAX в 3-е состояние.... покурите в даташите алгоритм программирования, вроде там было что-то на счёт того что что-то передаётся в обоих состояниях резета... особенно в начале. хотя может я и чёто напутал )

А по поводу того что что программировать 5-ю вольтами 3-х вольтовый таргет - низя! ток поёдёт через верхний диод пина таргета от 5 к 3-м, да и в RTFMе ясно написано про напряжения на ногах - Vdd+0.5 и больше ни-ни...
другое дело канешь что если подключить через резюк какойнить - то лишняя напруга просто на нём сядет и ничего страшного не произойдёт... но сирано этож дополнительная нагрузка на выводы программатора... вообщем не комильфо )) правильней через буфер, как у вас!
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
09.09.2010, 19:06 7
Скорее всего не входит в режим программирования - при ресете SCK уже должно быть в нуле. А в данной схеме SCK выходит из Z по ресету.
0
SupirByzom
0 / 0 / 0
Регистрация: 24.04.2010
Сообщений: 108
09.09.2010, 19:09 8
Цитата Сообщение от THI BIOST
Скорее всего не входит в режим программирования - при ресете SCK уже должно быть в нуле. А в данной схеме SCK выходит из Z по ресету.
Во-во... чёто такое я и имел ввиду.
0
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
09.09.2010, 23:37 9
А не подскажите, где можно прочитать про процедуру входа в режим программирования? На сайте usbasp (fischl.de/...) ссылки на такую информацию не нашел.
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
10.09.2010, 03:15 10
В любом даташите на любой AVR. Раздел Memory programming - Serial downloodyng
0
qbyt
0 / 0 / 0
Регистрация: 13.08.2010
Сообщений: 58
10.09.2010, 08:19 11
2 dpytikov
Попробуй внести небольшую задержку в сигнал по +5V Riset, который идёт непосредственно на преобразователь уровней, с помощью RC цепочки. Начинай, скажем, с задержки с единиц нс, не поможет, увеличь до единиц мс.
0
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
12.09.2010, 15:37 12
Спасибо всем за комментарии.

Действительно, в даташите на at90usb162 посмотрел раздел "Memory programming - Serial downloodyng". Судя по нему, никаких особенных требований нет. Рекомендовано(!): подать питание на МК пока линии RESIT и SCK в лог "0", выждать 20 мкс, послать первый байт и т.д.
Исходя из этого и того, что max3378 из высокоомного состояния выходит 4 мкс, сделал задержку на RC-цепочке в ~6 мкс (резистор 18k и конденсатор 330пф). Не работает.

В даташите говорится, что питание на целевой МК должно подаваться при RESIT и SCK в лог "0". Т.е. эти два сигнала появляются на нем одновременно. Когда включается max3378, RESIT и SCK теперь так же одновременно достигают целевого МК (SCK даже раньше).
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
12.09.2010, 17:53 13
Все программаторы (их софт) выдают ресет два раза, что бы исключить конфликт на SCK (Если он программно настроен на выход).

Сначала - просто ресет, потом пауза, обнуление SCK и снова ресет, что бы контроллер не успел проинититься/стартовать (причём пауза - короткая, из-за RC цепочки може и не пройти). И выждать нужно обычно не 20 мкс, а 20 мс после второго ресета.

ЗЫ. У меня свой программатор. Всё попробовано. Дудка - сакс, ближе к мастдаю.
ЗЗЫ. Там, где мне нужно включить преобразователь уровней - ставлю транзистор на ресет и отдельную ногу на включение преобразователя.
0
pspost
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 192
12.09.2010, 17:57 14
А чего не питаете от LDO-3.3 сам usbasp, как советовал DY HOTT?
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
12.09.2010, 18:01 15
Да, кстати, зачем прошивать AT90USB162? - У неё шикарный USB boottooder.
0
dpytykov
0 / 0 / 0
Регистрация: 06.09.2010
Сообщений: 10
12.09.2010, 18:58 16
2 THI BIOST: Да, в задержке у меня ошибка. Нужно выждать 20мс.
А использую я usbasp только потому, что его собрал :). Если программатор (какой?), который используете Вы удобнее, надежнее или дешевле в изготовлении я, когда появится свободное время, соберу его и буду им пользоваться.

2 pspost: потому что usbasp уже собран: спаян и запихнут в коробочку. 5В в нем с порта usb. Запитать от 3.3В нет никакой возможности.

USB boottooder использовал и использую, но подобный преобразователь (теперь я думаю, что уже и программатор с изменяемым напряжением питания целевого МК) должен быть.

Как я понял, данная схема в принципе не работоспособна. На свалку.
0
THI BIOST
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
12.09.2010, 19:16 17
Я использую свой собственный (как железо, так и прошивку), так что Вам это не поможет.

Мой собран на AT90USB162 с двумя каналами программирования и может питаться как от USB так и от целевой платы. К сожалению, у меня нет всего разнообразия авров и операционных систем, дабы попробовать. Но точно знаю, с какими контроллерами он работать не будет. Плюс ещё есть проблемы с дудкой - она очень нечестная (с точки зрения соблюдения стандартов). Но, так как дудкой я не пользуюсь и с появлением других контроллеров я всегда могу его доделать - мне проблем это не составляет.
0
12.09.2010, 19:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2010, 19:16

Посоветуйте преобразователь уровней
На входе импульсы амплитудой 24В, 0В - 0, +24В - 1, на выходе нужно дифф сигнал +5В -1, 0В -...

Преобразователь логических уровней 5 в 24 вольта.
Подскажите схему, а лучше готовую микросхему, желательно в DIP корпусе, для преобразования...

rs232 -> TTL преобразователь уровней на транзисторах
Всем привет. Сделал такую штуку http://www.uchobby.som/index.php/2007/0 ... explained/ проблема в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.