реклама на сайте
подробности

 
 
> ucGoZilla, Новый народный программатор:)
prottoss
сообщение Feb 25 2010, 15:53
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Вот в очередном отпуске сваял новый программатор. Не знаю, насколько он будет популярен по сравнению AVR910, но тем не менее он собран на макетной плате и успешно работает. На своем сайте еще его не выложил, так как хочется избежать будущих ошибок в том, что еще в нем не реализовано. Так как хочется опубликовать схему единожды и потом ничего не перекраивать. Это, как понимаете не для себя, а для тех, кто решится повторять. А реализовать собираюсь, кроме собственно программатора для AVR еще и JTAG и не только для AVR. Так вот, пока печатная плата не создана физически, хочу посоветоваться по поводу схемотехники, возможно, что то упустил или не допонял.
По схеме:
Старался использовать доступные компоненты. Так как на борту АРМ на блокировочных конденсаторах решил не экономить. Возможно, для кого то трудно будет достать фильтр USB STF202-22. Я посчитал это лучшим вариантом, чем несколько резисторов и две диодных сборки. В конце коноцов есть альтернатива - соединить перемычками выводы 2-5 и 3-4 оного.
Назначение линий выходного разъема:
1.TGT_TD - MOSI(ISP_AVR) - TDI(JTAG)
2.TGT_B2 - REFCLK(ISP_AVR) - TMS(JTAG) - PDI_D(XMEGA) - возможно отладочный порт
3.TGT_RST - RESET
4.TGT_CLK - SCK(ISP_AVR) - TCK(JTAG) - PDI_CLK(XMEGA)
5.TGT_RD - MISO(ISP_AVR) - TDO(JTAG)

Так как AT91SAM7S64 имеет встроенный стартовый загрузчик, то внешнего программатора не надо. Все прошивается консольной утилитой в любой Windows, при этом не надо после прошивки даже подменять драйвер... покаsmile.gif
Схема и вариант ПП ниже. Размеры платы - 75х32мм

Что реализовано в данный момент:
1. Протокол-программирование как STK500v2
2. Протокол-программирование как JTAGICEmkII в режиме ISP
3. Протокол JTAGICEmkII в режиме JTAG.

Да, забыл добавить, плату затачивал под лазерный утюг.
Прикрепленные файлы
Прикрепленный файл  ucGoZilla___shematic_rev.1.pdf ( 60.01 килобайт ) Кол-во скачиваний: 4645
Прикрепленный файл  ucGoZilla_PCB_BOT.pdf ( 23.49 килобайт ) Кол-во скачиваний: 2332
Прикрепленный файл  ucGoZilla_PCB_TOP.pdf ( 15.24 килобайт ) Кол-во скачиваний: 2336
 


--------------------
Go to the top of the page
 
+Quote Post
48 страниц V  « < 8 9 10 11 12 > »   
Start new topic
Ответов (135 - 149)
G_A_V
сообщение Jan 26 2011, 11:28
Сообщение #136





Группа: Новичок
Сообщений: 5
Регистрация: 10-09-10
Пользователь №: 59 415



Цитата(prottoss @ Oct 4 2010, 12:44) *
Я извиняюсь, нашел в схеме одну неточность - номиналы конденсаторов С10 и С15 не 27 а 10 пикофарад. Хотя я ставил и на 27 - работало. Кстати, при старте не запрограммированой платы внутренний загрузчик в любом случае переводит тактирование МК от внешнего кварцевого резонатора, так что на выводе 61 (XOUT) должен быть меандр частотой 18.432 МГц - проверял, присутствует.


Три дня имел проблему - устройство вообще не опознается или опознается очень нестабильно.
После обследования его осциллографом и изучения даташита нашел источник возможного неопределения программатора на USB - именно в этих конденсаторах.
В даташите написано: максимальная емкость этих конденсаторов - 10pF, емкости на выводах генератора внутри контроллера - по 40pF, то есть для кварца с нагрузочной емкостью 16-24pF внешние конденсаторы можно вообще не ставить (хватит внутренних), а для кварцев с нагрузочной емкостью 27-32pF желательно поставить 8-10pF.
Сразу проблема решилась.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 26 2011, 11:32
Сообщение #137


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(G_A_V @ Jan 26 2011, 18:28) *
Спасибо за поправку.


--------------------
Go to the top of the page
 
+Quote Post
AndOr
сообщение Jan 26 2011, 14:49
Сообщение #138


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 10-03-09
Из: Всея Руси
Пользователь №: 45 907



А интересно, JTAG этого уст-ва для ARM'ов никак низзя использовать? 05.gif
З.Ы. Почта на мылена.


--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 26 2011, 15:00
Сообщение #139


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(AndOr @ Jan 26 2011, 21:49) *
А интересно, JTAG этого уст-ва для ARM'ов никак низзя использовать? 05.gif
З.Ы. Почта на мылена.
Будет позже.

Вообще посредством протокола JTAGICEmkII уже можно общаться с любым устройством, имеющим JTAG-интерфейс. Но, ИМХО, проще сделать аналог J-Link с поддержкой отладки - вопрос времени для покурить соответствующие даташиты на ядро и протокол J-Link. Либо наваять собственный консольный программатор для того, что уже есть. НО, в этом случае, отладки явно не будет.


--------------------
Go to the top of the page
 
+Quote Post
prottoss
сообщение Jan 29 2011, 20:48
Сообщение #140


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



На моем сайте доступна новая прошивка для программатора. Введено программирование МК AVR XMEGA по интерфейсам JTAG и PDI


--------------------
Go to the top of the page
 
+Quote Post
G_A_V
сообщение Feb 21 2011, 07:30
Сообщение #141





Группа: Новичок
Сообщений: 5
Регистрация: 10-09-10
Пользователь №: 59 415



Цитата(G_A_V @ Oct 6 2010, 08:56) *
prottoss

Вместо STF202 вполне становятся резисторы со входа на выход (не плашмя, как обычно, а боком).


Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
DiaDiaDi
сообщение Mar 3 2011, 15:41
Сообщение #142


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 17-06-09
Пользователь №: 50 381



Вопрос к prottoss:
Понадобилось сделать калибровку внутреннего RC генератора, раньше я это делал через клон STK-500 , по AVR апноуту (у STK500 есть специальная команда для этого). Поддерживает ли ucGoZilla режим калибровки RC?

p.s. Юзаю ваш программматор уже почти полгода, полет нормальный, проблем не было, спасибо.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 3 2011, 16:03
Сообщение #143


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(DiaDiaDi @ Mar 3 2011, 23:41) *
Вопрос к prottoss:
Понадобилось сделать калибровку внутреннего RC генератора, раньше я это делал через клон STK-500 , по AVR апноуту (у STK500 есть специальная команда для этого). Поддерживает ли ucGoZilla режим калибровки RC?
Нет, команда калибровки не поддерживается, но программатор отвечает OK. Не было нужды пользоваться этим, и ни кто не интересовался калибровкой у меня, по этому команда CMD_OSCCAL выполнена в виде заглушки.
Почитаю AVR053 и реализую данную функцию.


--------------------
Go to the top of the page
 
+Quote Post
DiaDiaDi
сообщение Mar 4 2011, 07:27
Сообщение #144


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 17-06-09
Пользователь №: 50 381



Спасибо, жду, пока терпит...
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 5 2011, 17:19
Сообщение #145


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(DiaDiaDi @ Mar 4 2011, 15:27) *
Спасибо, жду, пока терпит...
Судя документу AVR053 (русский перевод на http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR053.htm) для калибровки используется две линии ISP. MOSI для генерации эталонной частоты, MISO для отслеживания факта окончания процесса калибровки. Частоту нужно генерить аппаратно, так как от нее зависит точность калибровки. В программаторе, к сожалению, на выводе МК, который используется в качетсве MOSI, нет ни какого аппаратного генератора (TC или PWM). По этому добиться полной совместимости не получается.

Исходя из этого есть два варианта решения задачи:
1. Использовать контакт 3 (REF_CLK) разъема ISP. Не совсем удобно, этот контакт может быть не разведен на целевой плате.
2. Использовать линию SCK. Для этого варианта в калибровочной программе нужно будет макросу ISP_CAL_MOSI присвоить значение для вывода SCK целевого МК. Для JTAG ситуация аналогичная.

Я склоняюсь ко второму варианту.


--------------------
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 6 2011, 20:10
Сообщение #146


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Выкладываю пока здесь прошивку с поддержкой калибровки согласно AVR053. Особенности:
Эталонная частота генерится на линии SCK. Это необходимо учитывать при компиляции калибровочной программы. В исходниках, которые идут вместе с аппноутом AVR053, в inc-файле "XXX_family_pinout.inc" необходимо поменять значение макроса ISP_CAL_MOSI на соответствующее линии SCK калибруемого микроконтроллера.
Эталонная частота, генерируемая программатором - 32768 Гц. Но, естественно, прежде чем выполнять калибровку, ее нужно измерить, и записать полученное значение в макрос CALIB_CLOCK_FREQ в файле "isp_STK500_interface.inc"

В остальном все по Атмелу - генерация частоты, ожидание от МК последовательности переключений на линии MISO - 8 раз (4 импульса). Проверено на ATmega16 в AVRStudio (STK500.exe) и AVRDUDE 5.10

Поддержка калибровки пока только в прошивке STK500v2
Прикрепленные файлы
Прикрепленный файл  ucGoZilla.rar ( 54.18 килобайт ) Кол-во скачиваний: 102
 


--------------------
Go to the top of the page
 
+Quote Post
DiaDiaDi
сообщение Mar 9 2011, 08:46
Сообщение #147


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 17-06-09
Пользователь №: 50 381



Перепрошил программатор, пересобрал калибровочную прошивку. Все работает отлично! По сравнению с клоном STK500 (собрал по быстрому на макетке) значение калибровочного байта отличается на единицу (Использовался Attiny2313 и STK500.exe). Списываю это на разницу эталонных частот.
Есть один вопрос:
Цитата(prottoss @ Mar 6 2011, 23:10) *
Эталонная частота, генерируемая программатором - 32768 Гц. Но, естественно, прежде чем выполнять калибровку, ее нужно измерить, и записать полученное значение в макрос CALIB_CLOCK_FREQ в файле "isp_STK500_interface.inc"


Зачем измерять эталонную частоту? она может измениться или ее можно менять програмно??


Еще раз огромное спасибо prottoss, за отличный проект и за быструю и бескорыстную помощь.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 9 2011, 15:49
Сообщение #148


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(DiaDiaDi @ Mar 9 2011, 15:46) *
Еще раз огромное спасибо prottoss, за отличный проект и за быструю и бескорыстную помощь.
Спасибо за похвалу sm.gif но, похоже, я немного накосячил в связи с прошедшими праздниками rolleyes.gif Реальная частота будет отличаться от 32768 Гц, при чем достаточно на много. Я не правильно подсчитал. Сегодня подсчитал все с трезвой rolleyes.gif головой. Реальная выходная частота должна быть 32734 Гц.
Цитата(DiaDiaDi @ Mar 9 2011, 15:46) *
Зачем измерять эталонную частоту? она может измениться или ее можно менять програмно??
Программно ничего не меняется. Этого не нужно. Но, реальная выходная эталонная частота будет зависеть от конкретного применяемого кварца и его характеристик. Например, для кварца 18,432 Мгц с точностью +-100ррм. разброс частоты будет от 32731 до 32737 Гц. На точность калибровки в 1% для 1 МГц RC-осциллятора навряд ли повлияет, тем не менее, ИМХО, в измерительную программу лучше забивать реальные цифры.


--------------------
Go to the top of the page
 
+Quote Post
DiaDiaDi
сообщение Mar 9 2011, 17:13
Сообщение #149


Участник
*

Группа: Участник
Сообщений: 18
Регистрация: 17-06-09
Пользователь №: 50 381



sm.gif ...Это мелочи жизни....
Я поправил частоту, но разница в единицу с STK500 осталась..И вряд ли это обусловлено разбросом частот кварца программатора. Поймать 3 Гц на частоте в 32 кГц ( это менее 0.01%) я технически не смогу. Но ради интереса я стал менять частоту в калибровочной прошивке, что б получить результат такой же, как у STK500. Чатоту нужно изменить на 300Гц, что никак не спишешь на нестабильность кварца.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 9 2011, 17:35
Сообщение #150


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(DiaDiaDi @ Mar 10 2011, 00:13) *
Я поправил частоту, но разница в единицу с STK500
В STK500 опорную частоту измерили?

Апноут AVR053 стр 11. - перевод с http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR053.htm:
Цитата
Точность калибровочной синхронизации.
Точность калибровки существенно зависит от точности внешней калибровочной синхронизации. Частота калибровочной синхронизации, генерируемая инструментальными средствами для AVR, может варьироваться. Поэтому, очень важно измерить с высокой точностью генерируемую частоту и указать ее в исходном файле-описании интерфейса. Поскольку частота резонаторов зависит от рабочего напряжения и температуры, то измерение частоты необходимо выполнять при тех же условиях, что и при выполнении калибровки.


--------------------
Go to the top of the page
 
+Quote Post

48 страниц V  « < 8 9 10 11 12 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01558 секунд с 7
ELECTRONIX ©2004-2016