Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ucGoZilla
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
DiaDiaDi
Уважаемый prottoss!
Цитата(prottoss @ Nov 1 2010, 13:55) *
Может быть проблема в Вашем РС. Это же Windows:)

Именно это я и имел ввиду, когда говорил что это програмная проблема! Другое дело, я увы не знаю ее причины, а очень бы хотелось.
В любом случае БОЛЬШОЕ Вам спасибо за помощь, советы и собственно за сам проект.
prottoss
Цитата(DiaDiaDi @ Nov 1 2010, 19:09) *
Как эксплуатация программатора?
DiaDiaDi
Сорри, давно не заглядывал в эту тему...
Все было супер, шил очень быстро, из проблем - довольно часто отваливался (Я шью из AVRSTUDIO, светодиод горит, а студия программатор потеряла, приходилось переподключать. Возможно это проблема Виндов на моем компе...).
Но неделю назад случилось непонятное. Вдруг пропал сигнал CLK, причем его нет еще на входе буфера. Причину не знаю, нет пока времени разбираться, приходится юзать старый программатор.
prottoss
Цитата(DiaDiaDi @ Nov 24 2010, 02:12) *
Вдруг пропал сигнал CLK, причем его нет еще на входе буфера.
Cкорее всего, вышел из строя буфер DD5.
А вы случаем резисторы между буферами и разъемом ХС2 не меньшего номинала поставили?
DiaDiaDi
Цитата(prottoss @ Nov 24 2010, 09:23) *
Cкорее всего, вышел из строя буфер DD5.
А вы случаем резисторы между буферами и разъемом ХС2 не меньшего номинала поставили?


Это первое, что пришло мне в голову. Но я буфер выпаял, и стал смотреть сигналы на выходе АРМ. Сигнал направления присутствует, вместо сигнала даты идет небольшое падение напряжение ~0.2В от высокого уровня при включении программирования. Прозвонил на КЗ - вроде все чисто. Если вылетел выход МК, то придется опять камень менять... будет уже третий..

Токоограничительные резисторы стоят по номиналу.
prottoss
Цитата(DiaDiaDi @ Nov 24 2010, 14:59) *
Это первое, что пришло мне в голову. Но я буфер выпаял, и стал смотреть сигналы на выходе АРМ. Сигнал направления присутствует, вместо сигнала даты идет небольшое падение напряжение ~0.2В от высокого уровня при включении программирования. Прозвонил на КЗ - вроде все чисто. Если вылетел выход МК, то придется опять камень менять... будет уже третий..

Токоограничительные резисторы стоят по номиналу.
В смысле? Два камня вылетели во время эксплуатации???
DiaDiaDi
Цитата(prottoss @ Nov 24 2010, 18:09) *
В смысле? Два камня вылетели во время эксплуатации???


Нет, не во время эксплуатации... во время сборки. Первый я не смог прошить, ( я говорил об этом выше, проблема была в самом чипе). И вот сейчас, если станет понятно, что это выход чипа полетел, то придется брать третий камень..
DiaDiaDi
Уф, заработало. Проблема "корявых ручек", а точнее флюса. Специально для такого монтажа взял, на пробу, безотмывачный (Мультикор), а он такую бодягу развел под камнем.
Так что программатор работает, все стабильно, шьет очень быстро. Рекомендую.
2prottos - еще раз спасибо за поддержку.
ReAl
bb-offtopic.gif На мой взгляд, безотмывочные флюсы не требуют отмывки только на нормальном производстве при хорошем технологе — когда их наносят ровно столько, сколько надо и по окончании процесса их просто не остаётся на плате в заметном количестве.
Yurickk
Доброго времени суток.
Подскажите, пожалуйста, поддерживает ли на данный момент программатор ATxmeg-и
prottoss
Цитата(Yurickk @ Dec 2 2010, 05:09) *
Доброго времени суток. Подскажите, пожалуйста, поддерживает ли на данный момент программатор ATxmeg-и
Опубликованные на сайте прошивки не поддерживают программирование ATxmega. Сейчас я жду подопытных сэмплов smile.gif для генеральных испытаний. У меня проблемы с доставабельностью данных чипов на данный момент. Думаю, что к новому году будет опубликована новая прошивка с поддержкой программирования ATxmega.
Yurickk
Здравствуйте, Андрей.

Назрел следующий вопрос:
Имеет ли смысл устанавливать AT91SAM7S256 ?
Потребуется ли в дальнейшем в Вашей разработке такой объём памяти программ?

И ещё:
Выводы программирования ATxmega будут выведены на разъём XC2 ?
Изменений в плате не потребуется ?

Спасибо.
Yurickk
Вот ещё одна непонятность:

Возможно заказать:
AT91SAM7S128-AU-001
AT91SAM7S256-AU-001

Что такое в маркировке 001?
В описании сказано ROM Code Revision
The ROM contains the FFPI and the SAM-BA program.

Имеет ли это значение в Вашей разработке?
prottoss
Цитата(Yurickk @ Dec 2 2010, 16:42) *
Имеет ли смысл устанавливать AT91SAM7S256 ?
Потребуется ли в дальнейшем в Вашей разработке такой объём памяти программ?
Сейчас в МК занято 35 кБайт памяти программ, включая код для программирования ATxmega. Это будущая прошивка для эмуляции JATGICEmkII. Прошивки для поддержки других платформ пока буду идти отдельно, так что ресурсов AT91SAM7S64 предостаточно. НО, есть мысль все прошивки запихать в один, вот тогда, конечно, 256 кБайт памяти программ будет как раз.
Тем не менее, если у Вас вместо S64 имеется S256 можно смело его ставить в программатор. Работать будет корректно. Загрузчик автоматически определяет тип МК.


Цитата
И ещё:Выводы программирования ATxmega будут выведены на разъём XC2 ? Изменений в плате не потребуется ?
Изменений в плате не будет.

Цитата(Yurickk @ Dec 2 2010, 18:31) *
Вот ещё одна непонятность:
Возможно заказать:
AT91SAM7S128-AU-001
AT91SAM7S256-AU-001
Что такое в маркировке 001?
В описании сказано ROM Code Revision
The ROM contains the FFPI and the SAM-BA program.
Имеет ли это значение в Вашей разработке?
Для работы ucGoZilla это значения не имеет. Можно ставить любые чипы AT91SAM7S64/128/256 с индексами 001/B/C
dimka76
to prottoss

А в чем преимущество вашего программатора перед LUFA ( www.fourwalledcubicle.com/LUFA.php ) ?
Yurickk
Цитата(dimka76 @ Dec 7 2010, 09:19) *
to prottoss

А в чем преимущество вашего программатора перед LUFA ( www.fourwalledcubicle.com/LUFA.php ) ?



День добрый.
У LUFA проблема с прошивкой EEPROM ATmega8.
Сколько прошивок не заливал не более 80байт шьёт.
На сколько я знаю, до сих пор не решённая.
dimka76
Цитата(Yurickk @ Dec 8 2010, 15:26) *
День добрый.
У LUFA проблема с прошивкой EEPROM ATmega8.


посмотрите вот это сообщение
http://electronix.ru/forum/index.php?showt...st&p=824066

вот цитата из этого сообщения
Цитата(oll @ Oct 14 2010, 16:40) *
......... Прошил 30 мег48 с EEPROM без проблем.
Yurickk
Цитата(dimka76 @ Dec 10 2010, 10:50) *
посмотрите вот это сообщение
http://electronix.ru/forum/index.php?showt...st&p=824066

вот цитата из этого сообщения
......... Прошил 30 мег48 с EEPROM без проблем.

Может с mega48 и без проблем...
У меня и с mega8 проблем не было, пока я все 512 байт EEPROM не попробовал прошить.
Просто нет у меня потребности в таких больших EEPROM-ах. Меня и так всё устраивает.
А кому то может понадобиться...
prottoss
Цитата(dimka76 @ Dec 7 2010, 12:19) *
to prottoss

А в чем преимущество вашего программатора перед LUFA ( www.fourwalledcubicle.com/LUFA.php ) ?

По функциональности, собственно, преимуществ особых пока нет за исключением того, что ucGoZilla умеет программировать по JTAG. LUFA поддерживает XMEGA а мой программатор пока нет. Хотя прошивка с поддержкой PDI уже есть, но нет пока подопытных МК, так что она не проверена. Возможно получу МК на следующей неделе.

Бегло пробежался по теме про XMEGA программатор - я так и не понял, глюки с прошивкой различных МК устранены??? У ucGoZilla проблем с прошивкой каких либо чипов нет - ни с FLASH ни с EEPROM.
Кроме того - продолжается доведение до ума отладки по JTAG. Есть надежда что будет полноценная отладка.

Еще думаю, из плюсов можно привести то, что у моего программатора можно легко наращивать память программ МК (для будущих прошивок) без переделки платы - AT91SAM7S64 легко заменяется на S128/256. Кроме того эта серия контроллеров пин-2-пин совместима с новомодными кортексами от ATMEL SAM3U. Так что можно будет перепрыгнуть и на нее опять же без переделки платы.
dimka76
Цитата(prottoss @ Dec 10 2010, 23:37) *
Бегло пробежался по теме про XMEGA программатор - я так и не понял, глюки с прошивкой различных МК устранены??? У ucGoZilla проблем с прошивкой каких либо чипов нет - ни с FLASH ни с EEPROM.


Изначально, по непонятным причинам, если проверять окончание записи по RDY/BSY, то некоторые контроллеры писались с ошибками.
Я переделал функцию записи с ожиданием времени после записи очередной страницы.

Весь ассортимент AVR я конечно не проверял, но те, что были под рукой и писались с ошибками, начали писаться корректно.
prottoss
Цитата(dimka76 @ Dec 11 2010, 12:39) *
...если проверять окончание записи по RDY/BSY, то некоторые контроллеры писались с ошибками.
Я переделал функцию записи с ожиданием времени после записи очередной страницы.

Вcе дело в том, что существует несколько алгоритмов записи FLASH и EEPROM - все они должны быть реализованы в программаторе для того, чтобы надежно программировать любой AVR в любых условиях. Выбирает алгоритм управляющее ПО.
dimka76
Цитата(prottoss @ Dec 11 2010, 10:03) *
Вcе дело в том, что существует несколько алгоритмов записи FLASH и EEPROM - все они должны быть реализованы в программаторе для того, чтобы надежно программировать любой AVR в любых условиях. Выбирает алгоритм управляющее ПО.


Все эти алгоритмы не противоречат друг другу. А выдержка времени записи страницы это самый универсальный.
В любом случае, других причин я не нашел.
prottoss
Цитата(dimka76 @ Dec 11 2010, 16:47) *
Все эти алгоритмы не противоречат друг другу. А выдержка времени записи страницы это самый универсальный.
В любом случае, других причин я не нашел.
Выдержка времени универсальный алгоритм, но очень медленный. Правильнее ПРАВИЛЬНО составить алгоритм. Тогда не нужно будет тупо ждать для большей уверенности.

ЗЫ: Алгоритмы не противоречат друг-другу, они просто РАЗНЫЕ
dimka76
Цитата(Yurickk @ Dec 10 2010, 15:24) *
У меня и с mega8 проблем не было, пока я все 512 байт EEPROM не попробовал прошить.


Попробовал программатором от LUFA (с моими правками) прошить все 512 байт EEPROM mega8. Прошивка прошла успешно, без ошибок sm.gif
Кир
Здравствуйте! Хочу собрать гозиллу. Чем можно заменить конверторы 74LVC1T45DBV (проблема c доставабельностью)
prottoss
Цитата(Кир @ Dec 14 2010, 18:56) *
Здравствуйте! Хочу собрать гозиллу. Чем можно заменить конверторы 74LVC1T45DBV (проблема c доставабельностью)
Боюсь что ничемsad.gif
А в чем проблема? Куча фирм торгуют сей чудесной МС.
http://www.efind.ru/icsearch/?search=74lvc1t45dbvr
Yurickk
Доброго времени суток.
Собрал программатор.
Контроллер AT91SAM7S256-AU-001
При установке, первые четыре пункта выполняются.
В диспетчере устройств появляется PROTTOSS ucGoZilla empty board.
При выполнении пятого пункта происходит:

И ucGoZilla.exe закрывается.
Что может быть?
Спасибо.
Yurickk
Забыл указать.
Все напряжения на микроконтроллер подаются (всё пропаяно)
prottoss
Цитата(Yurickk @ Dec 24 2010, 05:44) *
Доброго времени суток.
Собрал программатор.
Контроллер AT91SAM7S256-AU-001
При установке, первые четыре пункта выполняются.
В диспетчере устройств появляется PROTTOSS ucGoZilla empty board.
При выполнении пятого пункта происходит:

И ucGoZilla.exe закрывается.
Что может быть?
Спасибо.
Посмотрите посты http://electronix.ru/forum/index.php?showt...st&p=832770 и ниже еще два.
Возможно, у Вас похожая проблема.
Yurickk
Цитата(prottoss @ Dec 25 2010, 12:15) *
Посмотрите посты http://electronix.ru/forum/index.php?showt...st&p=832770 и ниже еще два.
Возможно, у Вас похожая проблема.

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

При попытке прошить, появляется:
ATMEL AT91SAM processors flash memory programming utility v.1.22
© PROTTOSS Electronic Laboratory 2010

- Searching device...Found!
- Init SAM Boot Assistant...OK!
- CPU boot version: _

Секунд пять пауза, а затем уже: Bad responce!

Такое впечатление, что не определяется версия SAM-BA Boot.
У меня на контроллере написана В, хотя продали мне его как 001.
Хотя, как Вы писали, это не имеет значения...

Остаётся попробовать на другом компьютере....
prottoss
QUOTE (Yurickk @ Dec 26 2010, 01:32) *
Секунд пять пауза, а затем уже: Bad responce!

Такое впечатление, что не определяется версия SAM-BA Boot.
У меня на контроллере написана В, хотя продали мне его как 001.
Хотя, как Вы писали, это не имеет значения...

Остаётся попробовать на другом компьютере....
Да, думаю нужно попробовать.

Могу открыть код в плане чтения версии встроенного загрузчика SAM-BA. Тут в принципе все просто. Стринг загрузчика должен заканчиваться символами 0x0A, 0x0D. Программа читает строку из устройства параллельно проверяя символы на последовательность окончания строки и проверяя количество считанных данных дабы не переполнился буфер строки - размер 256 байт (не думаю, что строка версии загрузчика больше этой цифры).
Если программа считает 256 байт данных и не встретит символы 0x0A, 0x0D или в течении 5 секунд не придет очередной символ она завершится с ошибкой "Bad responce"

Вот код:

Основной процесс:
CODE
try    /* Starting */
    {
        ...
        printf("- CPU boot version: ");
        VALIDATE_EXC(cmdVersion(g_Buf, CFG_DATA_BUF_SIZE));
        printf("%s\r\n", g_Buf);
        ...
    }
    catch(...)
    {
        ShowResult(res);
        goto exit;
    }


Чтение стринга версии загрузчика МК
CODE
IO_RES cmdVersion(PCHAR rval, ULONG rlen)
{
UCHAR buf[2];
PCHAR p;
IO_RES res;
ULONG i = 0;

buf[0] = 'V'; /* Send initialize command */
buf[1] = '#';

/* Send request */
res = WriteData(buf, 2);
if(res)
return res;

/* Read version string */
p = rval;
while(1)
{
res = ReadData(p, 1);
if(RES_OK != res)
break;
if(*p == 0x0A) /* Check end of string */
break;
p++;
i++;
if(i >= rlen - 2) /* Responce too big */
{
res = RESP_TO_BIG;
break;
}
}

/* Get last control */
if(RES_OK == res && i > 0)
{
p++;
res = ReadData(p, 1);
if(RES_OK == res)
{
if(*p != 0x0D)
res = RESP_BAD;
else
rval[i] = 0; /* End of string */
}
}
else
res = RESP_BAD;
return res;
}


Низкоуровневое чтение-запись СОМ-порта.
CODE
/*******************************************************************************
Write data to device
*******************************************************************************/
IO_RES WriteData(PVOID Data, ULONG Size)
{
OVERLAPPED sync = {0, 0, 0, 0, 0};
ULONG xfer, err;
IO_RES res = RES_OK;

sync.hEvent = CreateEvent(0, FALSE, FALSE, NULL);
if(!WriteFile(g_hPipe, Data, Size, &xfer, &sync))
{
/* Check error */
err = GetLastError();
if(ERROR_IO_PENDING == err)
{
/* Pending write operation */
if(WAIT_OBJECT_0 != WaitForSingleObject(sync.hEvent, CFG_IO_TIMEOUT))
res = WRITE_TIMEOUT;
}
else
res = WR_FAIL;
}
CloseHandle(sync.hEvent);
return res;
}

/*******************************************************************************
Read data from device
*******************************************************************************/
IO_RES ReadData(PVOID Data, ULONG Size)
{
OVERLAPPED sync = {0, 0, 0, 0, 0};
ULONG xfer, err;
IO_RES res = RES_OK;

sync.hEvent = CreateEvent(0, FALSE, FALSE, NULL);
if(!ReadFile(g_hPipe, Data, Size, &xfer, &sync))
{
/* Check error */
err = GetLastError();
if(ERROR_IO_PENDING == err)
{
/* Pending write operation */
err = WaitForSingleObject(sync.hEvent, CFG_IO_TIMEOUT);
switch(err)
{
case WAIT_OBJECT_0:
break;
case WAIT_ABANDONED:
res = RD_FAIL;
case WAIT_TIMEOUT:
default:
res = READ_TIMEOUT;
}
}
else
res = RD_FAIL;
}
CloseHandle(sync.hEvent);
return res;
}
Yurickk
Цитата(prottoss @ Dec 25 2010, 21:58) *
Да, думаю нужно попробовать.

Могу открыть код в плане чтения версии встроенного загрузчика SAM-BA. Тут в принципе все просто. Стринг загрузчика должен заканчиваться символами 0x0A, 0x0D. Программа читает строку из устройства параллельно проверяя символы на последовательность окончания строки и проверяя количество считанных данных дабы не переполнился буфер строки - размер 256 байт (не думаю, что строка версии загрузчика больше этой цифры).
Если программа считает 256 байт данных и не встретит символы 0x0A, 0x0D или в течении 5 секунд не придет очередной символ она завершится с ошибкой "Bad responce"


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

- Searching device...Found!
- Init SAM Boot Assistant...OK!
- CPU boot version: Bad responce!

У меня идей никаких.
Я любитель, поэтому предоставленный Вами код мне практически ни о чём не говорит...
prottoss
Цитата(Yurickk @ Dec 26 2010, 18:36) *
Сегодня попробовал на другом компьютере.
Ситуация такая же:

- Searching device...Found!
- Init SAM Boot Assistant...OK!
- CPU boot version: Bad responce!

У меня идей никаких.
Я любитель, поэтому предоставленный Вами код мне практически ни о чём не говорит...
ОК. Постараюсь в ближайшее время разобраться.
prottoss
Ужесточил ввод-вывод. Это тестовая программа - она ничего не прошивает, только читает данные о ЦПУ на плате. Проверьте, как будет возможность.

Цитата(DiaDiaDi @ Nov 1 2010, 20:40) *
Уфффф..... я ее победил! удалось прошить.

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


Три дня имел проблему - устройство вообще не опознается или опознается очень нестабильно.
После обследования его осциллографом и изучения даташита нашел источник возможного неопределения программатора на USB - именно в этих конденсаторах.
В даташите написано: максимальная емкость этих конденсаторов - 10pF, емкости на выводах генератора внутри контроллера - по 40pF, то есть для кварца с нагрузочной емкостью 16-24pF внешние конденсаторы можно вообще не ставить (хватит внутренних), а для кварцев с нагрузочной емкостью 27-32pF желательно поставить 8-10pF.
Сразу проблема решилась.
prottoss
Цитата(G_A_V @ Jan 26 2011, 18:28) *
Спасибо за поправку.
AndOr
А интересно, JTAG этого уст-ва для ARM'ов никак низзя использовать? 05.gif
З.Ы. Почта на мылена.
prottoss
Цитата(AndOr @ Jan 26 2011, 21:49) *
А интересно, JTAG этого уст-ва для ARM'ов никак низзя использовать? 05.gif
З.Ы. Почта на мылена.
Будет позже.

Вообще посредством протокола JTAGICEmkII уже можно общаться с любым устройством, имеющим JTAG-интерфейс. Но, ИМХО, проще сделать аналог J-Link с поддержкой отладки - вопрос времени для покурить соответствующие даташиты на ядро и протокол J-Link. Либо наваять собственный консольный программатор для того, что уже есть. НО, в этом случае, отладки явно не будет.
prottoss
На моем сайте доступна новая прошивка для программатора. Введено программирование МК AVR XMEGA по интерфейсам JTAG и PDI
G_A_V
Цитата(G_A_V @ Oct 6 2010, 08:56) *
prottoss

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

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

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

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


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


Еще раз огромное спасибо prottoss, за отличный проект и за быструю и бескорыстную помощь.
prottoss
Цитата(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-осциллятора навряд ли повлияет, тем не менее, ИМХО, в измерительную программу лучше забивать реальные цифры.
DiaDiaDi
sm.gif ...Это мелочи жизни....
Я поправил частоту, но разница в единицу с STK500 осталась..И вряд ли это обусловлено разбросом частот кварца программатора. Поймать 3 Гц на частоте в 32 кГц ( это менее 0.01%) я технически не смогу. Но ради интереса я стал менять частоту в калибровочной прошивке, что б получить результат такой же, как у STK500. Чатоту нужно изменить на 300Гц, что никак не спишешь на нестабильность кварца.
prottoss
Цитата(DiaDiaDi @ Mar 10 2011, 00:13) *
Я поправил частоту, но разница в единицу с STK500
В STK500 опорную частоту измерили?

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