|
ucGoZilla, Новый народный программатор:) |
|
|
|
Feb 25 2010, 15:53
|

Гуру
     
Группа: Свой
Сообщений: 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, при этом не надо после прошивки даже подменять драйвер... пока  Схема и вариант ПП ниже. Размеры платы - 75х32мм Что реализовано в данный момент: 1. Протокол-программирование как STK500v2 2. Протокол-программирование как JTAGICEmkII в режиме ISP 3. Протокол JTAGICEmkII в режиме JTAG. Да, забыл добавить, плату затачивал под лазерный утюг.
--------------------
|
|
|
|
|
 |
Ответов
(135 - 149)
|
Jan 26 2011, 11:28
|
Группа: Новичок
Сообщений: 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. Сразу проблема решилась.
|
|
|
|
|
Jan 26 2011, 14:49
|

Участник

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

|
А интересно, JTAG этого уст-ва для ARM'ов никак низзя использовать?  З.Ы. Почта на мылена.
--------------------
Чужие ошибки ничему не учат, гораздо интереснее наделать своих.
|
|
|
|
|
Feb 21 2011, 07:30
|
Группа: Новичок
Сообщений: 5
Регистрация: 10-09-10
Пользователь №: 59 415

|
Цитата(G_A_V @ Oct 6 2010, 08:56)  prottoss
Вместо STF202 вполне становятся резисторы со входа на выход (не плашмя, как обычно, а боком).
Прикрепленные изображения
|
|
|
|
|
Mar 3 2011, 15:41
|
Участник

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

|
Вопрос к prottoss: Понадобилось сделать калибровку внутреннего RC генератора, раньше я это делал через клон STK-500 , по AVR апноуту (у STK500 есть специальная команда для этого). Поддерживает ли ucGoZilla режим калибровки RC?
p.s. Юзаю ваш программматор уже почти полгода, полет нормальный, проблем не было, спасибо.
|
|
|
|
|
Mar 4 2011, 07:27
|
Участник

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

|
Спасибо, жду, пока терпит...
|
|
|
|
|
Mar 5 2011, 17:19
|

Гуру
     
Группа: Свой
Сообщений: 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 ситуация аналогичная. Я склоняюсь ко второму варианту.
--------------------
|
|
|
|
|
Mar 6 2011, 20:10
|

Гуру
     
Группа: Свой
Сообщений: 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
--------------------
|
|
|
|
|
Mar 9 2011, 08:46
|
Участник

Группа: Участник
Сообщений: 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, за отличный проект и за быструю и бескорыстную помощь.
|
|
|
|
|
Mar 9 2011, 15:49
|

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

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

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

|
 ...Это мелочи жизни.... Я поправил частоту, но разница в единицу с STK500 осталась..И вряд ли это обусловлено разбросом частот кварца программатора. Поймать 3 Гц на частоте в 32 кГц ( это менее 0.01%) я технически не смогу. Но ради интереса я стал менять частоту в калибровочной прошивке, что б получить результат такой же, как у STK500. Чатоту нужно изменить на 300Гц, что никак не спишешь на нестабильность кварца.
|
|
|
|
|
Mar 9 2011, 17:35
|

Гуру
     
Группа: Свой
Сообщений: 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, может варьироваться. Поэтому, очень важно измерить с высокой точностью генерируемую частоту и указать ее в исходном файле-описании интерфейса. Поскольку частота резонаторов зависит от рабочего напряжения и температуры, то измерение частоты необходимо выполнять при тех же условиях, что и при выполнении калибровки.
--------------------
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|