Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB programmer AVR910
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23
WHALE
лазерный принтер+утюг и шаг 0,8 без проблем-погуглите на словосочетание"Лазерно-утюжный метод"
Snaky
Цитата(djmixi(Димка) @ Apr 19 2007, 22:07) *
НЕ МОГУ СДЕЛАТЬ ЧТОБЫ ХОРОШО ПОЛУЧИЛИСЬ КОНТАКТЫ ДЛЯ МЕГИ С ШАГОМ 0.8ММ....

Есть хорошее пошаговое описание ЛУТ с картинками. К сожалению не смог найти оригинал в инете, и приаттачить не получилось sad.gif . Выложил сюда: http://snaky.embedders.org/PCB_V10.PDF
...и все у вас получится. Успехов.
add
Цитата
ВАЛЕРОС! А ЕСЛИ НЕ СЕКРЕТ ТО ЧЕМ ПЛАТУ ДЕЛАЛИ? ТО ЕСТЬ КАКОЙ ТЕКСТОЛИТ И ТЕХНОЛОГИЯ РАЗВОДКИ КАКАЯ??? Я ПРОСТО ДЕЛАЮ С ПОМОЩЬЮ АЦЕТОНА И ТРАВИТЕЛЬ ХЛОРНОЕ ЖЕЛЕЗО НО НЕ МОГУ СДЕЛАТЬ ЧТОБЫ ХОРОШО ПОЛУЧИЛИСЬ КОНТАКТЫ ДЛЯ МЕГИ С ШАГОМ 0.8ММ....

Вот платку делал под утюжный метод, одностороннюю, без переходных отверстий. мож понадобится. (пост251.)
http://electronix.ru/forum/index.php?showt...mp;#entry209748
prottoss
Цитата(ahulap @ Apr 19 2007, 22:11) *
У меня тоже была проблема с хабом. Правда со своим девайсом на AVR-USB.
Устройство работало нормально, но при подключении к хабу usb_control_msg вылетал с ошибкой тайм-аута. Осциллографа не было, но имхо хаб гораздо чаще опрашивал устройство, чем контроллер в компьютере, поэтому все паузы, выполненные в виде простых циклов, сильно растягивались (прерывания в это время разрешены). Заменил цикл на ожидание по таймеру: temp = TCNT; while ( (uchar)(temp - TCNT) < t) ; - все заработало.
В данном программаторе тоже используются задержки в виде циклов, может, в этом дело?
Хм... А чем пустой цикл отличается от ожидания флага таймера? Объясните не разумному smile.gif
djmixi(Димка)
ADD а в ПИКАДЕ 2002 она открывается??? я просто еще не пробывал... если нет то можно выложить под 2002 конвертерную плиз!
add
Цитата
ADD а в ПИКАДЕ 2002 она открывается??? я просто еще не пробывал... если нет то можно выложить под 2002 конвертерную плиз

да, там же было написанно что pcad2002. Если не откроется пишите, переконвертирую по возможности..
ahulap
Цитата(prottoss @ Apr 20 2007, 13:39) *
Хм... А чем пустой цикл отличается от ожидания флага таймера? Объясните не разумному smile.gif

Пустой цикл - N-ое количество тактов + все прерывания, которые возникли во время этого цикла.
А таймер идет автономно, ничто его не прерывает и максимальная погрешность (задержка) такой паузы гораздо меньше. У себя я сделал паузу примерно как в USBasp'е:
void delay10ms(void)
{
uchar startTime = TCNT0;
while ( (uchar)(TCNT0 - startTime) < 118 ) ; /* prescaler = 1024 */
}
prottoss
Цитата(ahulap @ Apr 20 2007, 21:42) *
Пустой цикл - N-ое количество тактов + все прерывания, которые возникли во время этого цикла.
А таймер идет автономно, ничто его не прерывает и максимальная погрешность (задержка) такой паузы гораздо меньше. У себя я сделал паузу примерно как в USBasp'е:
void delay10ms(void)
{
uchar startTime = TCNT0;
while ( (uchar)(TCNT0 - startTime) < 118 ) ; /* prescaler = 1024 */
}
В USB драйвере от http://obdev.at это не принципиально ИМХО, пустые циклы могут быть хоть годовалой длительности.
ahulap
В самом драйвере - да, о вот в компьютере - принципиально. Для передачи задается тайм-аут, за который устройство должно ответить ACKом. Например, в usb_control_msg (если пользоваться libusb) этот тайм-аут идет последним параметром. У меня 10мс цикл при подключении через хаб растягивался прерываниями примерно до 30-50мс, что в некоторых случаях приводило к исходу тайм-аута.
А какие тайм-ауты установлены для стандартного CDC-класса, честно говоря, даже не знаю...
prottoss
Цитата(ahulap @ Apr 21 2007, 01:46) *
В самом драйвере - да, о вот в компьютере - принципиально. Для передачи задается тайм-аут, за который устройство должно ответить ACKом. Например, в usb_control_msg (если пользоваться libusb) этот тайм-аут идет последним параметром. У меня 10мс цикл при подключении через хаб растягивался прерываниями примерно до 30-50мс, что в некоторых случаях приводило к исходу тайм-аута.
А какие тайм-ауты установлены для стандартного CDC-класса, честно говоря, даже не знаю...
В USB - как типе устройств есть свои тайминги, определенные спецификацией на USB, в классах устройств USB своих специфических таймингов нет. Но, так как многие USB устройства являются эмуляцией других типов устройств для "старых" программ, соответственно они должны соблюдать тайминги тех устройств, которые они эмулируют. Скорее всего это и происходит при работе программатора через ХАБ - он добавляет задержки - в итоге программа вылетает по таймауту коммуникационного порта. То, что Вам удалось преодолеть на нескольких (или на одной???) машинах проблему, не решает ее в целом - у многих это, скорее всего не сработает. А разницы в методе отсчитывания программных задержек я абсолютно не вижу. Ибо к любой задержке нужно прибавлять 20 мс. Это время получается из спецификации USB- хост обращается к низкоскоростному устройству не чаще чем раз в 10 мс
osnwt
Цитата(prottoss @ Apr 21 2007, 14:35) *
А разницы в методе отсчитывания программных задержек я абсолютно не вижу. Ибо к любой задержке нужно прибавлять 20 мс. Это время получается из спецификации USB- хост обращается к низкоскоростному устройству не чаще чем раз в 10 мс

Вынужден огорчить: разница есть и, увы, значительная.

1) Данный USB драйвер реализует всю обработку транзакций на USB шине в своей процедуре обработки прерывания.

2) Обработка одного прерывания может быть до 100 мкс по стандарту, но при нестандартных или кривых хабах - гораздо больше.

3) Как документировано в описании, USB драйвер обрабатывает каждую low-speed транзакцию на шине USB, даже если она не относится к нашему устройству. Следствие: если на шине много низкоскоростных устройств (мыши и т.п., например), то в прерываниях мы будем находиться намного чаще, чем необходимо именно нашему устройству.

4) Если почитать документацию (usbdrv.h), то там написано открытым текстом:

Please note that the USB standard forbids bulk endpoints for low speed devices! Most operating systems
allow them anyway, but the AVR will spend 90% of the CPU time in the USB interrupt polling for bulk data.

Что на практике означает то, что если мы используем данный драйвер с поддержкой bulk (к CDC это также относится), то хост опрашивает наше устройство не раз в 10-20 мс (как это справедливо, например, для HID), а непрерывно раз за разом. Как писал мне автор драйвера, он так и не нашел workaround против этого, поскольку оно не противоречит стандарту, и все хосты так себя ведут.

Соответственно, 90% времени AVR будет находиться в прерываниях, лишь изредка из них вылезая (причем, процент времени обработки заранее непредсказуем). И, как следствие, холостые циклы могут растягиваться и в 10 раз, и намного больше, когда после каждой 10-й команды мы снова можем улетать в прерывание и сидеть там длительное время, а после выхода - еще и еще.

Это - просто факты. Рекомендации я мог бы написать, но не стану, поскольку это будет опять из серии "идеологических" вопросов о том, как следует писать программы (вроде ранее обсуждавшегося между нами вопроса "следует ли патчить исходники драйвера или же нужно использовать заложенные автором интерфейсы").

Потому выводы предлагаю сделать самостоятельно. Надеюсь, мое объяснение было полезным.
prottoss
Цитата(osnwt @ Apr 22 2007, 02:14) *
3) Как документировано в описании, USB драйвер обрабатывает каждую low-speed транзакцию на шине USB, даже если она не относится к нашему устройству. Следствие: если на шине много низкоскоростных устройств (мыши и т.п., например), то в прерываниях мы будем находиться намного чаще, чем необходимо именно нашему устройству.
Это мне не понятно. Я не знаком со схемотехникой хабов, но я всегда считал, что хабы разделяют свои нисходящие порты. Т.е. по шине от хоста до хаба идут все транзакции, предназначенные функциям на различных устройствах, а от портов хаба только те, которые предназначенны тому устройству, которое подключенно к порту... Или я ошибаюсь? По Вашему получается, что я могу, в буквальном смысле, на один порт моего РС, параллельно линиям D+ и D- посадить несколько устройств и они будут более-менее нормально работать (опустим вопрос о буферизации и т.п.)??? Или, если посмотреть с другой стороны, на моем компьютере 8 портов USB, объединенных в 4 концентратора, означает ли это, что на обоих портах одного концентратора присутствуют одни и те же данные в любой момент времени???



Цитата
4) Если почитать документацию (usbdrv.h), то там написано открытым текстом:
Please note that the USB standard forbids bulk endpoints for low speed devices! Most operating systems
allow them anyway, but the AVR will spend 90% of the CPU time in the USB interrupt polling for bulk data.
Что на практике означает то, что если мы используем данный драйвер с поддержкой bulk (к CDC это также относится), то хост опрашивает наше устройство не раз в 10-20 мс (как это справедливо, например, для HID), а непрерывно раз за разом. Как писал мне автор драйвера, он так и не нашел workaround против этого, поскольку оно не противоречит стандарту, и все хосты так себя ведут.
Тоже не совсем понятно. Ясно, что опрос идет относительно непрерывно. Но это не должно противоречить спецификации USB, в которой установлен мин. период обращений в 10 мс для низкоскоростных устройств. То бишь опрос утройства идет с периодом в 10 мс и не менее.
osnwt
Цитата(prottoss @ Apr 22 2007, 04:56) *
Это мне не понятно. Я не знаком со схемотехникой хабов, но я всегда считал, что хабы разделяют свои нисходящие порты. Т.е. по шине от хоста до хаба идут все транзакции, предназначенные функциям на различных устройствах, а от портов хаба только те, которые предназначенны тому устройству, которое подключенно к порту... Или я ошибаюсь?

Я тоже не интересовался схемотехникой хабов, потому не могу ответить на этот вопрос однозначно. Однако, допускаю предположение, что USB хаб сходен функционально с простыми Ethernet хабами на витой паре. Последние, в отличие от switch'ей, дублируют на свои порты всё, что летит по шине, выполняя исключительно функции электрической развязки и согласования.

Свичи же действительно разделяют потоки данных, для чего им требуется часто неслабые процессоры и буферная память.

Цитата
По Вашему получается, что я могу, в буквальном смысле, на один порт моего РС, параллельно линиям D+ и D- посадить несколько устройств и они будут более-менее нормально работать (опустим вопрос о буферизации и т.п.)??? Или, если посмотреть с другой стороны, на моем компьютере 8 портов USB, объединенных в 4 концентратора, означает ли это, что на обоих портах одного концентратора присутствуют одни и те же данные в любой момент времени???

Что касается наличия данных на всех портах, то я также этого не проверял. На работе есть аппаратный анализатор USB трафика, но с ним работаю не я. Если не забуду, то поинтересуюсь, как все же реализованы хабы. У нас есть люди, кто серьезно работает с USB, в том числе делает собственные хабы и устройства специального назначения.

Однако, всё, сказанное мной выше в этом сообщении - мои предположения, а не утверждения. Я всего лишь обращаю внимание на эту фразу из документации (см. ниже). Автор его - явно не начинающий в этом деле, а потому у меня нет оснований ему не доверять.

The driver will consume CPU cycles for all USB messages, even if they address another (low-speed) device on the same bus.

Поскольку подключения нескольких устройств на одни провода не бывает (тогда бы никто не делал хабов вообще - делали разветвители из проводов), то приходится поверить, что данные дублируются.

Поэтому независимо от того, понимаем ли мы причину этого или нет (и хотим ли выяснять) - с этим приходится считаться.

Цитата
Тоже не совсем понятно. Ясно, что опрос идет относительно непрерывно. Но это не должно противоречить спецификации USB, в которой установлен мин. период обращений в 10 мс для низкоскоростных устройств. То бишь опрос утройства идет с периодом в 10 мс и не менее.

Не могу прокомментировать, поскольку уверенности у меня нет (я не изучал этот вопрос лично, а высказывать свои предположения, ни на чем не основанные, не вижу резона). Я всего лишь обращаю внимание на то, что если 90% времени AVR занято обработкой прерываний, но очевидно, что он что-то да делает.

Версия: bukl endpoint - это не interrupt endpoint. Потому, вероятно, там свои особенности.

Потому, если говорить лично про меня, то создавая программу, использующую данный драйвер, особенно имея в виду проблемы bulk endpoints, я бы однозначно не использовал холостых циклов для каких-либо задержек, если там критично и максимальное время задержки, а не по принципу "не менее, чем". На это уже намекали несколькими сообщениями выше, но автору виднее. Кому надо - может сам поправить исходные тексты, не так ли (я их не правил и даже не смотрел, так что прошу по этому вопросу мне не писать ЛС).

Вероятно, было бы полезным переписать задержки в более корректной форме, и сравнить, увеличится ли процент машин, на которых эта штука станет работать без проблем.

Еще совет: сделать просто холостой цикл с известным периодом повторения, в котором просто менять состояние пина. Посмотреть на период изменения осциллографом при отключенном USB. После чего воткнуть в USB и сравнить, как изменится этот период в зависимости от количества прочих устройств на шине и даже без оного. С учетом 90% загрузки CPU период должен стать неравномерным и существенно увеличиться. Тогда все вопросы сразу отпадут.
prottoss
Лично:-) с хабами я не знаком НО:



*Хаб в любом случае состоит из контроллера и коммутатора-повторителя, возможно все это в едином корпусе.

*Хабу не нужно иметь мощный контроллер и много памяти - все транзакции по шине USB инициируются хостом, следовательно хабу не надо думать какой нисходящий порт подключить к хосту, это все можно делать аппаратно - так же как в микросхемах USB-функций. Коммутатор же имеет средства для обнаружения подключения устройства и определения его скорости.

*Из вышесказанного, с большой уверенностью, можно сделать вывод, что данные на портах не дублируются - да это и противоречит спецификации USB - на шине должно быть тихо в пределах времени, установленного для данного типа устройства.
osnwt
Цитата
*Из вышесказанного, с большой уверенностью, можно сделать вывод, что данные на портах не дублируются - да это и противоречит спецификации USB - на шине должно быть тихо в пределах времени, установленного для данного типа устройства.

Я бы не говорил о "выводах с уверенностью" smile.gif Вывод или можно сделать, или нет. Если же уверенность не 100%, то это не вывод, а предположение.

Я допускаю возможность того, что USB хаб фильтрует потоки данных устройств. Однако, это противоречит наблюдаемому и документированному свойству драйвера. Что делается на порту хаба - несложно посмотреть соответствующими аппаратными средствами. И я сказал, что уточню этот вопрос у реально знающих людей, если не закручусь.

И в конечном итоге я не горю желанием просто ради спора или желания разбираться в первопричинах эффекта зарываться в документы и проводить множество экспериментов. У меня просто нет времени на это. Я вижу, что у отдельно взятых людей есть проблема. Я вижу, что автор хочет им помочь, сделать, чтобы устройство работало на максимально возможном количестве компьютеров (то есть, максимально корректно, насколько это возможно). Потому я предложил простую последовательность действий, которую нужно сделать, чтобы увидеть, есть эффект аномальной задежки или нет (я про циклы). У меня нет ни одного CDC устройства на меге, чтобы проверить это самому (также см. выше про время).

В конечном итоге, цель этой темы - не дебри особенностей работы USB хабов, а стремление сделать устройство максимально универсальным. Я дал идею, а будет ее кто-то проверять или нет, - мне, в общем-то, всё равно :-)
djmixi(Димка)
Уважаемый PROTTOSS! Я собрал все это дело все поставилось но очень расстроился когда увиел что при запуске AVRProg в графе Device нет моих любимых микрушечек ТИНИ13 и МЕГИ48.... как мне быть... или Ваш проект новые не будет поддерживать?
prottoss
Цитата(djmixi(Димка) @ Apr 23 2007, 16:04) *
Уважаемый PROTTOSS! Я собрал все это дело все поставилось но очень расстроился когда увиел что при запуске AVRProg в графе Device нет моих любимых микрушечек ТИНИ13 и МЕГИ48.... как мне быть... или Ваш проект новые не будет поддерживать?
Дело не моем программаторе. Дело в ПО, которое его поддерживает. AVRProg очень хорошая утилита, при том что она поддерживает быстрый обмен с программатором. Но идея по воле программистов из ATMEL, ИМХО, не очень хорошая - в программаторе таблица с условными кодами поддерживаемых кристаллов. Так, по идее не должно быть. Программатор должен быть чисто инструментом, а как им работать должно знать ПО на хост-компьютере. В данном же случае попытались взвалить много забот именно на программатор. В любом случае, программатором можно шить любые кристаллы AVR. Важно лишь, что бы ПО на компьютере умело с ним работать. К сожалению, кроме AVRProg, ни одна программа, мне известная, не посылает данные блоками в следствии чего с новыми кристаллами программатор работет медленно.



PS: витала в моей голове идея сделать USB-программатор, с чем нибудь совместимый, на полноценном USB-чипе ( например PDIUSBD12) + AVR, да пока нет времени поднять проект, да и не знаю, нужно ли это - счас разнообразных программаторов навалОм.
Alfa
Цитата(djmixi(Димка) @ Apr 23 2007, 14:04) *
Уважаемый PROTTOSS! Я собрал все это дело все поставилось но очень расстроился когда увиел что при запуске AVRProg в графе Device нет моих любимых микрушечек ТИНИ13 и МЕГИ48.... как мне быть... или Ваш проект новые не будет поддерживать?



прошить мою версию dopera (искать в этой теме) и наслаждаться
djmixi(Димка)
ОЙ вообщем не пнял нифига!
Дак что получается АРГПРОГом низя мегу48 прогить тогда чем можно??? чтобы работать с мегой48 и тини 13??? в CODEVISIONE вроде кристаллы есть 48 и 13 НО там пишется ошщибка ID программатора...что дулать?

ALFA а что такое ваше версию прошить??? я скачал с сатй AVR-Doper.2007-03-29.tar.gz но внутри нет ХЕКСА а все под СИ как я понял... сам я на асме пишу в СИ не работаю... как понять прошить чем прошить?? дайте хекс!
GDI
Ищите в этой ветке прикрепленный файл MyDoper.rar или MyDoper.hex и прошивайте этим хексом ваш программатор, только не забудьте после этого заменить драйвер на тот что есть у вас в архиве AVR-Doper.2007-03-29.tar.gz, т.е. установить *.inf файл от Допера. В итоге вы получите программатор STK-500который и нужно будет выбирать в настройках CodeVision. Я сравнивал эти 2 прошивки MyDoper и AVR910USB по скорости, у меня получилось, что hex-файл 12кб в мегу32 AVR910USB с AVRProg-ом с верификацией шьет 6-7сек, MyDoper с AVR Studio тот же файл с проверкой шьет 21сек, но AVR910USB с CodeVision-ом, т.е. без блочного режима шьет гораздо медленнее, в этот раз я экспериментов не проводил, но когда то пробовал - время измерялось минутами...
djmixi(Димка)
GDI
Скачал прошиву main.hex, перевоставил дрова DOPER = получил устройство Communications Port (COM3)
1. В кодевисионе выбрал прогрмматор ATMEL STK500/AVRRISP и поставил COM3 и еще галочка на CKDIV8 для 169. НО при попытке в CodevisionAVR Chip Programmer-Read-ProgrammersFirmwareVersion вылетает сообщение типа STK500 error entering programming mode. Это нормально просто я критсалл который программпировать еще не подключал - так в пустую.
2. В AVRStudii нужны настройки там порта COM или просто запускать TOOLS---STK500... и там просто микруху выбирать?
3. Почему в версии AVR910 Protosa в КОДЕВИСИНЕ вылетает при попытке программирования ID not .... типа ID не тот... что делать как быть!
Alfa
Цитата(GDI @ Apr 23 2007, 19:51) *
Ищите в этой ветке прикрепленный файл MyDoper.rar или MyDoper.hex и прошивайте этим хексом ваш программатор, только не забудьте после этого заменить драйвер на тот что есть у вас в архиве AVR-Doper.2007-03-29.tar.gz, т.е. установить *.inf файл от Допера. В итоге вы получите программатор STK-500который и нужно будет выбирать в настройках CodeVision. Я сравнивал эти 2 прошивки MyDoper и AVR910USB по скорости, у меня получилось, что hex-файл 12кб в мегу32 AVR910USB с AVRProg-ом с верификацией шьет 6-7сек, MyDoper с AVR Studio тот же файл с проверкой шьет 21сек, но AVR910USB с CodeVision-ом, т.е. без блочного режима шьет гораздо медленнее, в этот раз я экспериментов не проводил, но когда то пробовал - время измерялось минутами...


doper по скорости делает AVR910USB с блочным режимом. надо только во вкладке board поставить isp freq побольше
GDI
Проверил с CV читал мегу128: doper - 3м 5сек, avr910usb - на 6м 20сек было 64% и произошла ошибка операции чтения.
В AVR Studio мега 128 читалась doper-ом ровно 1 минуту при этом в настройках на закладке board STK500 Osc. и ISP freq. поставил на максимум.
AVRProg с AVR910USB читает мега128 за 38сек.

2dimix
1.У меня doper после установки драйвера тоже встал как communication Port
2. В AVR Studio нажимаю просто кнопку AVR в панели инструментов, можно еще из меню tools->connect , настройки порта я не менял.
3. CV не пользуюсь потому не знаю что за ошибка и как от нее избавиться... зачем пользоваться медленным CV если есть быстрый AVRProg?
djmixi(Димка)
Дык аврПРОГ не пооддерживает СТК500 он тока под АВР910... и там нет меги48.
GDI
Вопрос был таков
Цитата
3. Почему в версии AVR910 Protosa в КОДЕВИСИНЕ вылетает при попытке программирования ID not .... типа ID не тот... что делать как быть!

про AVR910 я и дал ответ, что не могу дать ответ smile.gif. А из моих экспериментов видно, что АВР Студия с SТК-500 таки быстрее чем CV...
Alfa
Цитата(djmixi(Димка) @ Apr 24 2007, 14:45) *
Дык аврПРОГ не пооддерживает СТК500 он тока под АВР910... и там нет меги48.


в avrstudio: tools->program avr->connect выбираем stk500 или avrisp
или tools->program avr->auto connect
или тыкнуть значек avr или con.
должен запуститься правильный программатор который пддерживает дофика всего


to GDI
скорость видимо зависит от размера кода, чипа и фазы луны. у меня получался шустрее doper тоже на меге 128
GDI
Авто может и не найти. Забыл добавить, что stk-500 в CV работает со 2 го раза, на первую попытку говорит что ошибка, жмем чтение снова - читает - потом опять не хочет...

2alfa
Я проверял на чтении, а читается вся флешь-память - все 128кб, может при записи допер быстрее?
prottoss
Цитата(djmixi(Димка) @ Apr 24 2007, 10:48) *
3. Почему в версии AVR910 Protosa в КОДЕВИСИНЕ вылетает при попытке программирования ID not .... типа ID не тот... что делать как быть!
такие выкрутасы иногда бывали (правда не у меня, но люди мне писали - один или двое). Это бывает, когда часть данных драйвер usbser.sys проглатывает почему то. Возможно, кривая версия ПО на компьютере - попробуйте сменить версию CodeVisionAVR. Или поставьте ChipBlasterAVR - программатор как близнец похожий на аналогичный из CodeVisionAVR, но поставляемый отдельно.
kamedi_clab
Цитата(Screw @ Mar 11 2007, 19:40) *
У меня TINY 2313 шилась только на low SCK, так и не понял почему. Использую CVAVR.


Наверно поэтому:
http://electronix.ru/forum/index.php?showt...pid=243572&

Цитата(djmixi(Димка) @ Apr 19 2007, 19:07) *
НЕ МОГУ СДЕЛАТЬ ЧТОБЫ ХОРОШО ПОЛУЧИЛИСЬ КОНТАКТЫ ДЛЯ МЕГИ С ШАГОМ 0.8ММ....


простая технология и пример платы с дорожками 0.15 мм

http://www.rambler.ru/srch?set=www&wor...%E0%E9%F2%E8%21
Валерос
Шил один и тот же камушек, после какой то прошивки стало выдавать error. Шо за хрень?
GDI
Цитата
Шил один и тот же камушек, после какой то прошивки стало выдавать error. Шо за хрень?

может фьюзы прошили случайно на внешний клок? При не заполненных галках фьюзов если в CV нажать Program All, так и будет...
prottoss
Цитата(Валерос @ May 2 2007, 17:18) *
Шил один и тот же камушек, после какой то прошивки стало выдавать error. Шо за хрень?
"Есть ли жисть на Марсе, нет ли жизни на Марсе, ...ик...Науке это не ивестно"© Новогодняя ночь smile.gif

Задавайте вопросы точнее
Валерос
Цитата(prottoss @ May 2 2007, 15:45) *
"Есть ли жисть на Марсе, нет ли жизни на Марсе, ...ик...Науке это не ивестно"© Новогодняя ночь smile.gif

Задавайте вопросы точнее


Ну вот... ATMega32. Учусь программировать и для наглядности программки в камушек записываю. На всех портах по светику на Vcc, кварц на 16 МГц, ISP, кнопка сброса с резиком, питание либо USB либо внешнее через 7805. Программа CVAVR там-же прошивание. Ноут SONY VAIO с тремя USB и усё, поэтому и Ваш программатор. Прошивал и считывал раз тридцать всё ОК. Фузы не трогал вообще никакие. на тридцать первый раз прошился и больше не хочет шить ни этот target ни другой и пишет ошибку способа программирования (см выше). Может CV кривой? А может руки мои с моими мозгами....
cygb9i
(сорри за оффтоп) Хм, было в свое время в этой теме много разговоров о реализации СОМ-порта на основе протосовского девайса, никто дальше рассуждений не продвинулся?
GDI
2Валерос
Проверьте генерацию на кварце, если ее нет, то подайте сигнал с контакта LED программатора на вывод XTAL1 контроллера, если заработает, то прошейте правильно фьюзы.
В CV достаточно нажать "программ олл" и фьюзы прошьются без вашего ведома... На вашей картинке не видно всех их, но могу предположить что галок нигде нет, т.е. они пусты ВСЕ, так они находились при создании проекта в этом случае при их прошивке контроллер будет работать от внешнего генератора(не кварца), кстати если вы фьюзы вообще не прошивали у нового контроллера, то он у вас работал от внутреннего RC генератора на 8МГц.
Валерос
Цитата(GDI @ May 3 2007, 11:52) *
2Валерос
Проверьте генерацию на кварце, если ее нет, то подайте сигнал с контакта LED программатора на вывод XTAL1 контроллера, если заработает, то прошейте правильно фьюзы.
В CV достаточно нажать "программ олл" и фьюзы прошьются без вашего ведома... На вашей картинке не видно всех их, но могу предположить что галок нигде нет, т.е. они пусты ВСЕ, так они находились при создании проекта в этом случае при их прошивке контроллер будет работать от внешнего генератора(не кварца), кстати если вы фьюзы вообще не прошивали у нового контроллера, то он у вас работал от внутреннего RC генератора на 8МГц.

В том то и дело, что контроллер без программатора (т.е. при подачи отвлеченного питания) ножками дергает правда не понятно от внешнего кварца или внутреннего RC, но я сделал как вы посоветовали - ножки стали дергаться значительно медленнее, а при запуске на программирование результат тот-же. А могли фьюзы в программаторе перешиться? Короче пошел к соседу читать фьюзы через LPT...
Валерос
Почитал с помощью STK200 фсё у программатора910 и фьюзы и флеш и ерром - всё в норме как и должно быть, а вот мега32 не читается не как... буду пробовать другой камешек точить.
Marian
Если создавать программу в CV, то удобно прошивать из .BAT файла.
(Используя USB programmer AVR910 с драйвером от obdev)
Для этого в папке “C:\Program Files\Atmel\AVR Tools\STK500”
необходимо создать Write.BAT файл c текстом :

stk500.exe -dATmega16 -pf -ifOutFile.hex

Для чтения :
stk500.exe -dATmega16 -ofInputFile.hex –rf

Примеры для Atmega16.

Справка по STK500.exe -?

Вопрос :
в ключах
f Set fuse bytes. 'value' is a 16-bit hex. value describing the
settings for the upper and lower fuse.
E Set extended fuse byte. 'value' is an 8-bit hex. value describing the
extend fuse settings.

какой бит за какой Fuse отвечает ?
prottoss
Цитата(Marian @ May 7 2007, 20:03) *
какой бит за какой Fuse отвечает ?
В каждом МК может быть по разному. Изучите даташит на программируемый МК. Там должна быть таблица для всех фьзов
Marian
Цитата(prottoss @ May 7 2007, 14:26) *
В каждом МК может быть по разному. Изучите даташит на программируемый МК. Там должна быть таблица для всех фьзов


Да, спасибо, там есть. Может это в файлах кофигурации описанно ?
(Чтобы для поддерживаемых процов автоматически выбирать)
Marian
Нашел
C:\Program Files\Atmel\AVR Tools\Partdescriptionfiles
буду разбиратся.
aa590
Наваял тут программатор USB, совместимый по командам с AVR910 ISP Programmer. Довольно шустро работает и не надо драйверов, т.к CDC-класс... Если кто повторит, интересно почитать мнение

Похоже я не там вопрос задал...

Собрал программатор. На нормальной скорости работает нормально.
Когда втыкаю джампер J3 при попытке верификации
велетает сообщение об ошибке. То бишь "ожидали не равно получили".
При последующем запуске на SCK вообще какой-то непонятный
сигнал. Эдакая пила с маленьким размахом привязанная к какому-то
"среднему" уровню.

Сомнения:
Глядя в сорцы видно, что читается бит при этой скорости при LOW на SCK.

Ну и на всякий случай:

avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
v1.25rev1 (Jan 1 2005 18:47:12)

Command:
+MEGA8 -p1 -as -o800
Device connected, MEGA8 detected
Fuses
OSCCAL = A7, A6, A3, A4
BLEV = 1
BODEN = 0
SUT = 2
CKSEL = F
BLB1 = 3
BLB0 = 3
RSTDSBL = 1
WDTON = 1
CKOPT = 0
EESV = 1
BSIZ = 3
BRST = 1
Reset pin released
Adapter disabled

Автор porttoss говорит, что у народа всё работает.
С учётом, что у меня тоже "всё работает" на нормальной скорости,
где ещё можно покапать?

Андрей
GDI
aa590 Тут вся ветка, 30 страниц - сплошное выражение мнений об этом программаторе и решения проблем при работе с ним.
А "пила" на SCK где, на ноге мега8, на выходе на шлейф, на целевом устройстве? А на "полной" скорости SCK нормальный, без завалов фронтов?
aa590
Наваял тут программатор USB, совместимый по командам с AVR910 ISP Programmer. Довольно шустро работает и не надо драйверов, т.к CDC-класс... Если кто повторит, интересно почитать мнение

Что-то не могу открыть "ту" мессагу вне "упрощённого варианта".


Фронты нормальные и на малой скорости, но пардон,
только при первом запуске.

А та "пила", что получается при втором и последующих проходах,
захочешь не придумаешь, как такое можно на МС сделать.
Но это вопрос всё же побочный, а основной откуда при первом
проходе ошибка сравнения, а ещё основнее, это вопрос
о валидности.
Собственно всё это я уже в первой мессаге написал.


Андрей
prottoss
Цитата(aa590 @ May 16 2007, 22:43) *
А та "пила", что получается при втором и последующих проходах,
захочешь не придумаешь, как такое можно на МС сделать.
Но это вопрос всё же побочный, а основной откуда при первом
проходе ошибка сравнения, а ещё основнее, это вопрос
о валидности. Андрей
Вопрос это не второстепенный, а, наоборот, самой первой важности - откуда ЭТА ПИЛА??? Сразу появляются мысли о кривом монтаже... Можно борт, в смысле печатную плату, в студию?

Да, и еще. Что, кроме программируемого МК сидит на шине SPI программатора?
IGK
Это не реклама уважаемому protoss, просто мое мнение. Я читал эту (и не только эту) ветки с самого начала и везде одно и то же...

Я собрал для себя этот программатор, потом еще несколько для знакомых. Все устройства работают абсолютно нормально, на разных компах и разных USB.

Мне кажется, все беды с девайсом от двух причин - некачественная сборка и ошибки в программировании фузов и неверное использование небуферированной шины SPI.
Первый пункт можно не рассматривать :-)

А вот по второму пункту серьезнее...

В общем, работать сразу программатор будет, если шина SPI на программируемом устройстве или совершенно свободна, или управляемые по ней устройства развязаны резисторами от программатора, да еще и подобраны под конкретный кабель "антизвонные" согласующие резисторы со стороны программатора. Когда я собрал первый девайс, именно не совсем верная развязка АЦП, сидящего на SPI, приводила к тому, что выдавались сообщения об ошибке и программирование стартовало через раз...
Зато, когда я привел свою схему в порядок, сбои исчезли вообще. Вот это и есть плата за простоту схемы программатора. Мне кажется, выгоднее ставить буфер и не париться... Хотя парится то в основном protoss, отвечая на письма ;-)

А так устройство меня вполне удовлетворяет - кроме скорости прошивки ЕЕР. Видимо, там блочный режим отключен. А лошадь ее шьет за секунду...

Успехов в программировании и прошивании.
Marian
Увидел интересную особенность программатора, на плате с чипсетом VIA P4M266 не удается прочитать флешь атмеги 128 ,примерно после трети вылетает с ошибкой таймаут.
(такое самое сообщение, что появляется при неподключенном программаторе)

На другом компе тот же программатор читает 128 нормально.

Похоже, что проблема в чипсете, так как с ней не работает USB flash, а также переходник IDE на USB 2.0 (а китайский MP3 player работает без проблем).
Пробовал обновления с сайта VIA для USB, не помогло.

Интересно у кого работает на VIA 266 ?
aa590
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаВопрос это не второстепенный, а, наоборот, самой первой важности - откуда ЭТА ПИЛА???

Ну это не совсем пила, а так мелкие пички с плавно нарастающим фронтиком,
ну чтоб понятно было, ну размахом в пол вольта, может чуть больше.
Причём длительность этих зубчиков где-то одна пятая от периода повторения.

Сразу появляются мысли о кривом монтаже...

Мысли то появляются, вот только, как насчёт мыслей что при первом проходе импульсы
нормальные?
Тем более как увязать монтаж и безупречнуую работу на нормальной скорости,
читай аппаратном SPI?


Можно борт, в смысле печатную плату, в студию?

Я прицепил с к этому сообщению схему и борт в архиве, EAGLE, а мылом ушли пдфки.

Да, и еще. Что, кроме программируемого МК сидит на шине SPI программатора?

Для одной платы там ничего больше нет, у другой там, 232 драйвер с выходом
развязанным через 510 Ом, как это делается типично.

PS.
До понедельнка мне наверное не удастся добраться до физических
экспериментов с платой.

ЗЗЫ.
Пожалуйста не воспринимайте мои вопросы, как наезд или ещё что-то,
а то у меня такое ощущение, что я спросил что-то неприличное.
cranky.gif









[quote name='IGK' date='May 16 2007, 19:21' post='251104']
Это не реклама уважаемому protoss, просто мое мнение. Я читал эту (и не только эту) ветки с самого начала и везде одно и то же...

Я собрал для себя этот программатор, потом еще несколько для знакомых. Все устройства работают абсолютно нормально, на разных компах и разных USB.

Мне кажется, все беды с девайсом от двух причин - некачественная сборка и ошибки в программировании фузов и неверное использование небуферированной шины SPI.
Первый пункт можно не рассматривать :-)

А вот по второму пункту серьезнее...

В общем, работать сразу программатор будет, если шина SPI на программируемом устройстве или совершенно свободна, или управляемые по ней устройства развязаны резисторами от программатора, да еще и подобраны под конкретный кабель "антизвонные" согласующие резисторы со стороны программатора.



Я смотрел вполне приличным скопом, нет там звона ни на максимальной скорости,
ни тем более на маленькой... Да и фронты даже не максимальной и за резисторами и
перед ними вполне приличные.



Когда я собрал первый девайс, именно не совсем верная развязка АЦП, сидящего на SPI, приводила к тому, что выдавались сообщения об ошибке и программирование стартовало через раз...
Зато, когда я привел свою схему в порядок, сбои исчезли вообще. Вот это и есть плата за простоту схемы программатора. Мне кажется, выгоднее ставить буфер и не париться... Хотя парится то в основном protoss, отвечая на письма ;-)



Да в принципе, рано или поздно я и сам разберусь в чём там дело, просто
когда по моим схемам задают аналогичные вопросы, я обычно с помощью
нескольких вопросов могу локализировать дефект или понять, что у меня где-то
прощёт. Так было совсем недавно, к примеру, при проверке на ЭМС.



А так устройство меня вполне удовлетворяет - кроме скорости прошивки ЕЕР. Видимо, там блочный режим отключен. А лошадь ее шьет за секунду...


Ну лошадь у меня тоже где-то есть, но её я в своё время сделал навесным монтажом,
и в последние годы не пользовался (это что касается железа).


Успехов в программировании и прошивании.

Да добью я его по любому, просто подумалось, что кто-то с таким
дефектом уже сталкивался и просто подскажет ответ.
Кстати, форум по bidipro тоже дружно меня в своё время уверял,
что там всё в порядке, в смысле зависимости от компа... то бишь крутизны
нарастающих фронтов на линиях RD и WR.


ЗЫ. Что-то я не понял, а как у народа тут квоты получаюься?
IGK
Про резисторы я написал не просто так - у меня на плате сформирован разъем SATA и пользую для программирпования кабель от компа. Просто IDC как-то неудачно на плате стоят, мне приходится снимать корпус при каждом программировании. Ну, и когда заколебало, взляд упал на SATA...
Туда резюки по 51ом пришлось ставить. К программеру пристыкована вторая плата, там USB-RS-SPI (программный со стороны компа).
Я как-то просил protoss'а ввести в программер мост SPI-USB, потом он выложил исходники - но я их скачал, а посмотреть все время не выберу, и моста нет...
Кстати, для интереса подстыковывал USB-RS на Меге от Osamu Tamura, но скорость получилась 38800. Для меня это мало.
prottoss
Для желающих работать с программатором под Windows Vista - в prottoss.avr910.usb.inf
слово usbser.sys поменять на brusbser.sys
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.