Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AvrUsb500 by Petka. продолжение
Форум разработчиков электроники 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
Petka
Цитата(leomor @ Mar 19 2012, 18:29) *
...
SCK - РС4
MISO - РС5
MOSI - РС1
RESET - РС3
RESADC - РС2
...

Какой у вас точно контроллер? Вплоть до последней буквы!
amv2000
Извините что вмешиваюсь.
Цитата(leomor @ Mar 18 2012, 22:32) *
Шлейф ISP длиной порядка 30 см.

Не длинноват ли шлейф? Обычно советуют 10-15 максимум.
Petka что скажите о фьюзах? Хоть стреляйте зенитными патронами советуют включать фьюз CKOPT...
http://easyelectronics.ru/avr-uchebnyj-kur...a-fuse-bit.html
Petka
Цитата(amv2000 @ Mar 19 2012, 22:25) *
Извините что вмешиваюсь.

Не длинноват ли шлейф? Обычно советуют 10-15 максимум.

Желательно шлейф короче, но и при 30см при нормальной помеховой обстановке (на столе) должен нормально работать.
Цитата
Petka что скажите о фьюзах? Хоть стреляйте зенитными патронами советуют включать фьюз CKOPT...
http://easyelectronics.ru/avr-uchebnyj-kur...a-fuse-bit.html

Надо читать не форумы а datasheets на контроллеры.
На мегу8 при кварце более 8МГц надо программировать фуз CKOPT (т.е. CKOPT='0')
leomor
Контроллер - ATMEGA8-16AU
Пробовал со шлейфом 10 см - не спасает
Прошил CKOPT - не помогло
у меня пока триверсии - что-то с диагностикой питания по линии ADCRES, что-то к тактированием или же просто неудачный МК
Petka
Цитата(leomor @ Mar 19 2012, 22:50) *
Контроллер - ATMEGA8-16AU
Пробовал со шлейфом 10 см - не спасает
Прошил CKOPT - не помогло
у меня пока триверсии - что-то с диагностикой питания по линии ADCRES, что-то к тактированием или же просто неудачный МК

Попробуйте эту прошивку:

P.S. Перед прошивкой не забудьте стереть чип.
amv2000
Цитата(Petka @ Mar 19 2012, 22:34) *
На мегу8 при кварце более 8МГц надо программировать фуз CKOPT (т.е. CKOPT='0')

Так и я о том же, а то ходит по форуму картинка фьюзов еще со старой ветки, где CKOPT галочки нет.
leomor
Видимо, медицина бессильна... Девайс не определяет тагрета (нет свечения диода). Иногда светодиод хаотично мигает, правда емкость на AREF присутствует. Жль пока не могу приложить картинки к сообщению.
Petka
Цитата(leomor @ Mar 22 2012, 17:56) *
Видимо, медицина бессильна... Девайс не определяет тагрета (нет свечения диода). Иногда светодиод хаотично мигает, правда емкость на AREF присутствует. Жль пока не могу приложить картинки к сообщению.

Выложите вашу схему и топологию. Желательно в pdf.
leomor
Вот схемка

ПС - на схеме не указаны точки X2-Х4, я коммутирую эти цепи "соплей" на плате
Petka
Цитата(leomor @ Mar 22 2012, 20:37) *
Вот схемка

ПС - на схеме не указаны точки X2-Х4, я коммутирую эти цепи "соплей" на плате

Первое что заметил это частота кварца на схеме указана 14,318. А что стОит на самом деле?
P.S.
Смотрю дальше.
leomor
стоит 14.7456 как и требуется, прошу пардону, не исправил. Так же на схеме присутствуеит разъем для возможности программирования от другого программатора. Но шил всегда его как и предполагалось - понипрогом.
Petka
Цитата(leomor @ Mar 22 2012, 20:51) *
стоит 14.7456 как и требуется, прошу пардону, не исправил. Так же на схеме присутствуеит разъем для возможности программирования от другого программатора. Но шил всегда его как и предполагалось - понипрогом.

1. От чего питается программируемый контроллер?
2. Разберитесь почему на 5м пине CON10 (reset) при подключении к программируемому устройству оказывается 1,5В ? Померьте сопротивление между ресетом программирумого контроллера и его питанием. Оно равно 10к?
3. Для детектирования наличия прораммируемого контроллера программатор измеряет линию RESRT. Если обнаруживает более 2х вольт - зажигает светодиод. Подключите программатор к программируемому устройству и померьте падение напряжения на резисторах R9, R12, R13, R7.
leomor
Отвечаю по пунктам:
1 - На моей схеме присутствует резистор R7. Предполагалось при этом, что при его использовании будет возможность программировать чипы, если схема не потребляет много энергии, то есть прямо питается от USB порта. В реальности этот резистор у меня не запаян
2 - да, сопротивление резистора привязки ресета программируемого МК к питанию равно 10К, прпограммируемый чип исправен и шьется другими программаторами.
Почему при подключении собранного программатора напряжение на данной линии падает я пока не разумею. В статике тестером меряются положенные 320К
3 - Падения напряжений при измерении тестером:
R9 88мВ
R12 1В
R13 460мВ

У меня одно предположение - или дохлый порт в МК, что крайне редко может быть или же он как-то не так сконфигурирован

После прочтения фразы о том, как диагностируется питание я запаял первый попавшийся резюк (4,7к) поверх 220К, тем самым принудительно подав в цепь диагностики большее напряжение я получил полностью рабочий девайс - программатор читает и шьет МК
wacko.gif

Чудеса да и только. Получается или утечки в плате, хотя это крайне маловероятно или данный чип у меня имеет иной порог.
Petka
Цитата(leomor @ Mar 22 2012, 21:56) *
Отвечаю по пунктам:
1 - На моей схеме присутствует резистор R7. Предполагалось при этом, что при его использовании будет возможность программировать чипы, если схема не потребляет много энергии, то есть прямо питается от USB порта. В реальности этот резистор у меня не запаян
2 - да, сопротивление резистора привязки ресета программируемого МК к питанию равно 10К, прпограммируемый чип исправен и шьется другими программаторами.
Почему при подключении собранного программатора напряжение на данной линии падает я пока не разумею. В статике тестером меряются положенные 320К
3 - Падения напряжений при измерении тестером:
R9 88мВ
R12 1В
R13 460мВ

У меня одно предположение - или дохлый порт в МК, что крайне редко может быть или же он как-то не так сконфигурирован

После прочтения фразы о том, как диагностируется питание я запаял первый попавшийся резюк (4,7к) поверх 220К, тем самым принудительно подав в цепь диагностики большее напряжение я получил полностью рабочий девайс - программатор читает и шьет МК
wacko.gif

Чудеса да и только. Получается или утечки в плате, хотя это крайне маловероятно или данный чип у меня имеет иной порог.

Измерьте сопротивление порта PC3 микроконтроллера на землю. Чему оно равно? ПОТОМ промойте это место печатной платы от флюса. И измерьте ещё раз.
leomor
Не, тестер не показывает ни коего изменения сопротивления, тем более такую утечку создать не так просто, думаю все же сам порт дурит, подсаживает напругу.
В общем, девайт ожил и я весьма рад этому. Автору низкий поклон во-первых за полезное устройство, а во-вторых за крайнее терпение и помощь в решении проблем!
08.gif a14.gif
ну и картинки прицепляю того, что получилось на деле. Завтра еще в прозрачную термоусадку помещу, а-ля "корпус" sm.gif





Petka
Цитата(leomor @ Mar 22 2012, 22:43) *
...
ну и картинки прицепляю того, что получилось на деле. Завтра еще в прозрачную термоусадку помещу, а-ля "корпус" sm.gif
...

Выглядит красиво.
leomor
Уважаемый Petka, я готов выслать Вам платку или собранный программатор в качестве презента за помощь. Напишите мне в личку Ваше решение по этому скромному предложению.
amv2000
Цитата(leomor @ Mar 22 2012, 21:56) *
После прочтения фразы о том, как диагностируется питание я запаял первый попавшийся резюк (4,7к) поверх 220К, тем самым принудительно подав в цепь диагностики большее напряжение я получил полностью рабочий девайс - программатор читает и шьет МК
wacko.gif
Чудеса да и только. Получается или утечки в плате, хотя это крайне маловероятно или данный чип у меня имеет иной порог.

Я с этими чудесами до сих пор не могу разобраться, уже и не знаю, что может ...думал где то флюс не смыт, но уже купаю в ацетоне неделю и плату программатора и плату таргета, когда там намочу загорится светодиод, когда на программаторе тоже загорается, но в случайной последовательности. Питание стабильно 5.02, на RESET когда светодиод загорается то 4.8, а когда нет скачет от 4.5 до 4.8 (даже не скачет а хаотично меняется) на RST_ADC когда горит светодиод 1.41, когда не горит меняется 1.38-1.4. Пробовал резистор в параллель 220 Ком(200Ом) пробовал питание подавать на RST_ADC нет не хочет, когда вздумается тогда и загорается....а я в чудеса не верил biggrin.gif
leomor
amv2000, а программатор -то у вас шьет при принудительной подаче напряжения выше 2-х вольт в resetADC?
Petka
Цитата(amv2000 @ Mar 23 2012, 12:19) *
Я с этими чудесами до сих пор не могу разобраться, уже и не знаю, что может ...думал где то флюс не смыт, но уже купаю в ацетоне неделю и плату программатора и плату таргета, когда там намочу загорится светодиод, когда на программаторе тоже загорается, но в случайной последовательности. Питание стабильно 5.02, на RESET когда светодиод загорается то 4.8, а когда нет скачет от 4.5 до 4.8 (даже не скачет а хаотично меняется) на RST_ADC когда горит светодиод 1.41, когда не горит меняется 1.38-1.4. Пробовал резистор в параллель 220 Ком(200Ом) пробовал питание подавать на RST_ADC нет не хочет, когда вздумается тогда и загорается....а я в чудеса не верил biggrin.gif

Давайте разберёмся.
Программатор сначала определяет напряжение на линии RESET. Если на ней больше 2В, то потом проверяет, работает ли этот вывод. Он начинает его тянуть вниз и замеряет уровень. Если высокий уровень более чем в три раза превышает уровень нуля, то значит ресет работает и программатор зажигает светодиод. Посмотрите падение напряжение на резисторе R6. И померьте мультиметром его номинал.
amv2000
Цитата(Petka @ Mar 23 2012, 12:35) *
Давайте разберёмся.
Программатор сначала определяет напряжение на линии RESET. Если на ней больше 2В, то потом проверяет, работает ли этот вывод. Он начинает его тянуть вниз и замеряет уровень. Если высокий уровень более чем в три раза превышает уровень нуля, то значит ресет работает и программатор зажигает светодиод. Посмотрите падение напряжение на резисторе R6. И померьте мультиметром его номинал.

Программатор и шьет и читает, только светодиод не горит, можно бы конечно и забить но как же профессиональная гордость rolleyes.gif
резистор R6 220Ом, падение не могу посмотреть ибо когда светодиод не горит напряжение скачет (меняется 4.5-4.8), если светодиод загорается , по каким то неведомым причинам то стабильно 4.8.
Petka
Цитата(amv2000 @ Mar 23 2012, 13:23) *
Программатор и шьет и читает, только светодиод не горит, можно бы конечно и забить но как же профессиональная гордость rolleyes.gif
резистор R6 220Ом, падение не могу посмотреть ибо когда светодиод не горит напряжение скачет (меняется 4.5-4.8), если светодиод загорается , по каким то неведомым причинам то стабильно 4.8.

Есть ли возможность снять осцилограммы в цепи РЕСЕТа ?
amv2000
Нет дома нет осциллографа, все в мечтах хоть китайский надо купить....
Ведет себя как высокочастотная помеха, питание от USB, только вот куда девается она когда он работает в штатном режиме(имеется в виду когда светодиод горит)
Petka
Цитата(amv2000 @ Mar 23 2012, 13:42) *
Нет дома нет осциллографа, все в мечтах хоть китайский надо купить....
Ведет себя как высокочастотная помеха, питание от USB, только вот куда девается она когда он работает в штатном режиме(имеется в виду когда светодиод горит)

Это не помеха, это программатор тестирует линию ресет.
Vasily_
Цитата(Petka @ Mar 23 2012, 10:35) *
Давайте разберёмся.
Программатор сначала определяет напряжение на линии RESET. Если на ней больше 2В, то потом проверяет, работает ли этот вывод. Он начинает его тянуть вниз и замеряет уровень. Если высокий уровень более чем в три раза превышает уровень нуля, то значит ресет работает и программатор зажигает светодиод.

Давайте разберемся, у вас стоит делитель из 220к и 100к так? при входном напряжении в идеале 5В на выходе делителя будет 1.5625В так? и тогда вопрос как у вас ацп может намерять больше двух вольт?
кроме того ацп атмеги не будет адекватно работать с такими номиналами резисторов, почитайте даташит, не больше 10к, да и вообще зачем там нужен делитель, почему нельзя просто измерять напряжение на нужной вам ножке без делителя просто через резистор например 10к?
amv2000
Цитата(Vasily_ @ Mar 23 2012, 15:43) *
Давайте разберемся, у вас стоит делитель из 220к и 100к так? при входном напряжении в идеале 5В на выходе делителя будет 1.5625В так? и тогда вопрос как у вас ацп может намерять больше двух вольт?
кроме того ацп атмеги не будет адекватно работать с такими номиналами резисторов, почитайте даташит, не больше 10к, да и вообще зачем там нужен делитель, почему нельзя просто измерять напряжение на нужной вам ножке без делителя просто через резистор например 10к?

Самое интересное, что Порог напряжения для target RST установлен 1 В, ибо прошивка от Леонида Ивановича, даже если скачет то все равно 1,41, но не загорается. Пробовал напрямую +5 В на вывод RST разъема программатора тот же эффект. Может и правда попробовать делитель 2кОм и 1кОм, вместо 220кОм и 100кОм?(хотя сомнительно, что дело в делителе)
Petka
Цитата(Vasily_ @ Mar 23 2012, 15:43) *
Давайте разберемся, у вас стоит делитель из 220к и 100к так? при входном напряжении в идеале 5В на выходе делителя будет 1.5625В так? и тогда вопрос как у вас ацп может намерять больше двух вольт?

2 Вольта это ДО делителя. Делитель нужен что бы вписать 5 вольт в диапазон измерения АЦП (2,56В для Меги8 и 1,2 для Меги88).
Цитата
кроме того ацп атмеги не будет адекватно работать с такими номиналами резисторов, почитайте даташит, не больше 10к, да и вообще зачем там нужен делитель, почему нельзя просто измерять напряжение на нужной вам ножке без делителя просто через резистор например 10к?

1. См. выше
2. Откуда вы взяли значение 10к? В даташите ничего подобного нет. И взяться неоткуда т.к. входное сопротивление АЦП минимум 55 МегаОм!

Цитата(amv2000 @ Mar 23 2012, 16:11) *
...
Может и правда попробовать делитель 2кОм и 1кОм, вместо 220кОм и 100кОм?(хотя сомнительно, что дело в делителе)

Номиналы делителей менять не надо. Если уменьшите номиналы, получится цепочка, которая будет тянуть вниз RESET номиналом 3кОм.
Vasily_
Цитата(Petka @ Mar 23 2012, 16:25) *
2 Вольта это ДО делителя. Делитель нужен что бы вписать 5 вольт в диапазон измерения АЦП (2,56В для Меги8 и 1,2 для Меги88).

1. См. выше
2. Откуда вы взяли значение 10к? В даташите ничего подобного нет. И взяться неоткуда т.к. входное сопротивление АЦП минимум 55 МегаОм!


Номиналы делителей менять не надо. Если уменьшите номиналы, получится цепочка, которая будет тянуть вниз RESET номиналом 3кОм.

1. Ясно, но решение очень странное, почему не использовать внешнюю опору от 5В?
2. А причем здесь входное сопротивление 55Мегаом!? вы наверное не знаете как устроено ацп у атмеги, вам фраза из даташита на М88 The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. ничего не говорит? остальные атмеги устроенны аналогично.
3. Чтобы ничего не тянуло вниз, используйте опору от 5ти вольт и измеряйте просто через резистор без делителя.
в вашем варианте с делителем 220к и 100к работать адекватно не будет никогда.
Petka
Цитата(Vasily_ @ Mar 23 2012, 22:59) *
1. Ясно, но решение очень странное, почему не использовать внешнюю опору от 5В?
2. А причем здесь входное сопротивление 55Мегаом!? вы наверное не знаете как устроено ацп у атмеги, вам фраза из даташита на М88 The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. ничего не говорит? остальные атмеги устроенны аналогично.
3. Чтобы ничего не тянуло вниз, используйте опору от 5ти вольт и измеряйте просто через резистор без делителя.
в вашем варианте с делителем 220к и 100к работать адекватно не будет никогда.

1. Есть несколько допустимых решений. Это одно из них. Хотите - поправьте схему, топологию, прошивку. Выложите сюда и помогите новичкам с их вопросами. Вам скажут спасибо.
2. Фраза про оптимизацию мне прекрасно понятна. К случаю измерения постоянного уровня напряжения одним каналом АЦП эта фраза не имеет никакого отношения. Без переключения каналов АЦП схема выборки/хранения будет работать нормально.
3. Эти резисторы выполняют ещё и дополнительный функционал - подтягивают линию RESET со стороны программатора к земле и ограничивают ток через защитные диоды порта при подключении проргамматора к запитанному устройству и отсутствии подключения программатора к USB порту. Подтяжка к земле позволяет определять отсутствие подключения кабеля программатора к программируемому устройству. Таким образом подтяжка к земле вместе с токоограничивающим резистором образует делитель. Номинал верхнего плеча можно обсуждать, но он должен быть значительно больше типичной подтяжки RESET к питанию. Номинал 100кОм подходит под все эти требования.
andries5
Собрал на DIP. Работает, но только в CVAVR и Studio4, а в Studio5 и 6 нет. Пишет "Unable to connect to tool STK500 (COM4). Что делать?
amv2000
Цитата(andries5 @ Mar 31 2012, 20:32) *
Собрал на DIP. Работает, но только в CVAVR и Studio4, а в Studio5 и 6 нет. Пишет "Unable to connect to tool STK500 (COM4). Что делать?

Да видимо варианта два: либо заливать прошивку от Леонида Ивановича, либо просить автора пофиксить прошивку...
andries5
Цитата(amv2000 @ Mar 31 2012, 20:48) *
Да видимо варианта два: либо заливать прошивку от Леонида Ивановича, либо просить автора пофиксить прошивку...

Значит это не только у меня?
amv2000
Цитата(andries5 @ Mar 31 2012, 23:05) *
Значит это не только у меня?

Нет не только у Вас, в этой ветке почитайте http://electronix.ru/forum/index.php?showt...8372&st=750
может, что полезное для себя найдете.
andries5
Цитата(amv2000 @ Apr 1 2012, 20:08) *
Нет не только у Вас, в этой ветке почитайте http://electronix.ru/forum/index.php?showt...8372&st=750
может, что полезное для себя найдете.

Спасибо, нашел ответ для себя. Правда, пробовал версию Леонида Ивановича перекомпилировать на Атмегу88, все прекрасно работает. А после Вашего совета перекомпилировал версию от Petka на Атмеге88. Также все классно работает из под Студии5.

to Petka
Изменил в "unsigned char analog2v(unsigned int aval)" r/=67; на r/=65; так как в этом случае для 220к и 47к у меня точнее показывает volts.
Wan-Derer
Здравствуйте. Хочу повторить данный программатор. Но слегка изменить печатку - под более крупные компоненты и ещё кое-что. Есть вопросы:

1. Хочу выход "1 MHz" вывести на общий разъём X7, но так, чтобы он оказался в конце гребёнки. Вопрос: представляет ли какую-нибудь сложность перенести его на ногу 32 (PD2)? Так будет проще развести. Т.к. в МК я новичок, то планирую сначала запустить схему с обычной прошивкой, а уже потом разбираться в исходниках. Пока интересно, есть ли какие-то сложности в таком переносе.

2. Годятся ли в качестве L1 катушки на колечках, которые часто встречаются на материнках (несколько витков толстой проволоки на небольшом кольце)? К сожалению, я не знаю, какая у них индуктивность и как её оценить.

3. Можно ли в качестве блокировочных использовать керамические конденсаторы на 1 мкФ (вместо 0.1 мкФ)? Просто надёргал со старой Нокии...
Petka
Цитата(Wan-Derer @ Apr 2 2012, 15:10) *
Здравствуйте. Хочу повторить данный программатор. Но слегка изменить печатку - под более крупные компоненты и ещё кое-что. Есть вопросы:
1. Хочу выход "1 MHz" вывести на общий разъём X7, но так, чтобы он оказался в конце гребёнки. Вопрос: представляет ли какую-нибудь сложность перенести его на ногу 32 (PD2)? Так будет проще развести. Т.к. в МК я новичок, то планирую сначала запустить схему с обычной прошивкой, а уже потом разбираться в исходниках. Пока интересно, есть ли какие-то сложности в таком переносе.

Этот вывод можно перенести на любой другой GPIO.
Цитата
2. Годятся ли в качестве L1 катушки на колечках, которые часто встречаются на материнках (несколько витков толстой проволоки на небольшом кольце)? К сожалению, я не знаю, какая у них индуктивность и как её оценить.

Годятся. Номинал индуктивности не критичен.
Цитата
3. Можно ли в качестве блокировочных использовать керамические конденсаторы на 1 мкФ (вместо 0.1 мкФ)? Просто надёргал со старой Нокии...

Можно. Работать будет.
XWoo
Собрал я данный программатор. Скорость довольно-таки шустрая. sm.gif Автору болагодарность!
Программер собрал на atmega8 с кварцем на 11,0592 МГц (кварц на 14,7456 МГц не нашёл sad.gif ). Исходник соответственно подкорректировал на этот кварц (за основу взял AvrUSB500_by_Petka_HEX_SRC_v6_uni.zip). Проверил "чтение/запись/проверка" на mega8, mega32, can128, mega48v. Ниже прикрепил архив с исходником, прошивкой и схемой. FTDI-чип использовал только как преобразователь в UART (bitbang даже и не распаивал, а мегу8 прошивал с помощью avrdude и avr910). Светодиод висит на порте РВ2; "1МГц" - на РС0; контроль сброса - на РС4; SCK, MISO, MOSI - на РС1, РС2, РС5; сброс - на РС3.
brat_vl
Добрый день.
Помогите пожалуйста советом.
Собрал этот девайс. Прошил успешно. Успешно поборол хаотичное помигивание светодиода.
Когда решился девайсом воспользоваться, при подключении к AVR Stodio5 пишет: "Unable to connect to tool STK500 (COM3)"
Перепрошил другой прошивкой от пользователя "Леонид Иванович" с сигнатурой STK500_2 Эффект тот же.
При этом микроконтроллер греется. И сильно - палец на нём не удержишь. Пи этом прошивается, моргает диоом как надо.
Вопросы:
1) От чего может быть? И, соответственно, что делать? По монтажу косяков пока не обнаружил (но поиски ещё не прекратил).
2) Просветите пожалуйста, где почитать о подключении этого девайса к терминалу, как с ним через терминал общаться (какие команды и т.д.), зачем и для чего.
andries5
Цитата(brat_vl @ Apr 11 2012, 13:57) *
Перепрошил другой прошивкой от пользователя "Леонид Иванович" с сигнатурой STK500_2 Эффект тот же.
При этом микроконтроллер греется. И сильно - палец на нём не удержишь. Пи этом прошивается, моргает диоом как надо.

Если греется, то явно ошибка физическая на плате. Изменение прошивки вряд ли поможет. Возможно один из выходов на земле, а на нем программно выставляется 1.
О терминале написано здесь в первом сообщении.
brat_vl
Цитата(andries5 @ Apr 11 2012, 15:00) *
Если греется, то явно ошибка физическая на плате. Изменение прошивки вряд ли поможет. Возможно один из выходов на земле, а на нем программно выставляется 1.
О терминале написано здесь в первом сообщении.


Спсибо!
Именно так и получилось. TXDT на земле. Внешне нигде косяков и замыканий нет, а под SMD конденсатором дорожка на землю закорочена. Теперь не греется, в CodeVision программатор видится, шьёт. Диодики мигают. Ляпота sm.gif))) Осталось только его с AVRStudio5 состыковать, а то пока не хотят общаться.
andries5
Цитата(brat_vl @ Apr 12 2012, 08:14) *
Осталось только его с AVRStudio5 состыковать, а то пока не хотят общаться.

В проекте -> в файле main.c -> в функции "void programcmd(unsigned char seqnum)"-> на запрос "CMD_SIGN_ON" необходимо заменить ответ "AVRISP_2" на "STK500_2" и перекомпилировать проект. Тогда будет отвечать и в Студии 5.
RipZ
Собрал программатор. стоит мега48 и кварц на 14. При запуске светодиод моргает 6 раз. Вместо FT-шки ставил pl2303 и cp2102. Ситуация такая - в терминале нет ответов от программатора. Посему вопрос - он должен отвечать как при подключенной программируемой микросхемы так и без нее?
Petka
Цитата(RipZ @ Apr 13 2012, 14:34) *
...
Посему вопрос - он должен отвечать как при подключенной программируемой микросхемы так и без нее?

Да.
RipZ
Спасибо за развернутый ответ sm.gif отмотав несколько страниц взад почитал, что в терминале откликается только при подрубленном программируемом контроллере. где правда? сопственно не важно (на данный момент).

Petka, подскажи в какую сторону копать. На резетном делителе с неподключенным программируемом контроллере (для меги48, в дипе, на чем у меня собрано) соответственно 0в, при подключенном 0,88-0,9в. Светодиод загорается, контроллер походу видит. В принципе в любом случае через UART ничего не отдается. Куда копать? Осциллографа нет sad.gif pl2303 рабочая. закорачиваю rxd и txd - в терминале вижу ответное эхо. схему всю проверил, единственное что фьюзы не прошивал для меги48 никакие. все дефолтное (шил через avreal с STK200).

е) добавлена возможность использования mega48 в программаторе за счёт отключения консольного режима при компиляции для mega48.

заглянув в исходники на ifdef-ы касательно меги48 там принудительно отключен консольный обмен по причине нехватки памяти? и соответственно что и логично - в терминале я ничего и не увижу sm.gif как отладить программатор в этом случае тогда? cavr не видит sad.gif

продолжим... ситуация в линухе:

avrdude: Version 5.10, compiled on Jun 29 2010 at 03:44:14
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch

System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/home/ripz/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyUSB0
Using Programmer : stk500v2
avrdude: stk500_2_ReceiveMessage(): timeout

в морг? бежать в магаз за мегой8? sad.gif
Petka
Цитата(RipZ @ Apr 14 2012, 02:05) *
...
единственное что фьюзы не прошивал для меги48 никакие. все дефолтное.
.....

Надо запрограммировать фузы. Иначе Мега будет тактироваться от внетреннего RC и UART не будет работать как надо.
Для m48 консольный режим отключен. Проверяйте сразу программой программатором. AVRDude, например.
RipZ
Пересобрал программатор на меге8. Кварц на 14.7456МГц. В терминале видится, все отдает как нужно. Таргет - мега16а, в avrdude имеем следующее:

C:\AVR>avrdude.exe -c stk500v2 -P com2 -p m16 -b 115200 -v -e

avrdude.exe: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright © 2007-2009 Joerg Wunsch

System wide configuration file is "C:\AVR\avrdude.conf"

Using Port : com2
Using Programmer : stk500v2
Overriding Baud Rate : 115200
AVR Part : ATMEGA16
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page
Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW
MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----
----- ---------
eeprom 4 10 128 0 no 512 4 0 900
9000 0xff 0xff
flash 33 6 128 0 yes 16384 128 128 450
4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 900
9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 900
9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 900
9000 0x00 0x00
signature 0 0 0 0 no 3 0 0
0 0x00 0x00
calibration 0 0 0 0 no 4 0 0
0 0x00 0x00

Programmer Type : STK500V2
Description : Atmel STK500 Version 2.x firmware
Programmer Model: AVRISP
Hardware Version: 2
Firmware Version Master : 2.10
Vtarget : 5.0 V
SCK period : 129.2 us

avrdude.exe: stk500_2_ReceiveMessage(): timeout
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.42s

avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.


avrdude.exe done. Thank you.

в каком направлении дальше двигаться?

ЗЫ. Светодиод горит при подключении таргета, цепь резета отрабатывает по всей видимости правильно...
Petka
Цитата(RipZ @ Apr 20 2012, 02:00) *
...
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
.....
в каком направлении дальше двигаться?
.....

Проверить цепь MISO. Нет ли закороток на землю.
RipZ
Цитата(Petka @ Apr 20 2012, 11:16) *
Проверить цепь MISO. Нет ли закороток на землю.


Петр, какие еще мысли могут быть?

все линии (MOSI, MISO, SCK, RESET) прозвонил от ног меги8 в программаторе до соответствующих ног в таргете. на землю ничего не звонится. Пробовал 2 таргета - мегу16 и мегу32. Ситуация одна на все.

При установленной конфигурации в 1MHz:

C:\AVR>avrdude.exe -P \\.\com2 -p m16 -c stk500v2

avrdude.exe: stk500_2_ReceiveMessage(): timeout
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.26s

avrdude.exe: Device signature = 0x00ff00
avrdude.exe: Expected signature for ATMEGA16 is 1E 94 03
Double check chip, or use -F to override this check.

При установленной конфигурации в Fast:

C:\AVR>avrdude.exe -P \\.\com2 -p m16 -c stk500v2

avrdude.exe: stk500v2_command(): command failed
avrdude.exe: stk500v2_command(): unknown status 0xc9
avrdude.exe: stk500v2_program_enable(): cannot get connection status
avrdude.exe: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

ЗЫ. В программаторе стоит ATMega8A-PU, но это думаю не принципиально.


ЗЫЫ. Собирал по схеме взятой тут -> http://www.mindrunway.ru/Pony/PetkaDip.pdf
Petka
Цитата(RipZ @ Apr 20 2012, 15:32) *
Петр, какие еще мысли могут быть?

все линии (MOSI, MISO, SCK, RESET) прозвонил от ног меги8 в программаторе до соответствующих ног в таргете. на землю ничего не звонится. Пробовал 2 таргета - мегу16 и мегу32. Ситуация одна на все.
.....
ЗЫЫ. Собирал по схеме взятой тут -> http://www.mindrunway.ru/Pony/PetkaDip.pdf

Выводы таргета MOSI и MISO не перепутаны? А лучше выложите схему подключения программатора к программируемому контроллеру. От чего он питается? Как подключен программатор к компьютеру? От чего запитан?
RipZ
Цитата(Petka @ Apr 21 2012, 10:57) *
Выводы таргета MOSI и MISO не перепутаны? А лучше выложите схему подключения программатора к программируемому контроллеру. От чего он питается? Как подключен программатор к компьютеру? От чего запитан?


программер MISO - таргет MISO, программер MOSI - таргет MOSI и тп. На данный момент ищу на чем проще собрать юсб-осциллограф, ибо в пределе досягаемости нет ни аналогово не цифрового( Есть только тестер и SCK, который имхо не раскачивается на 2 разных мегах8.

Таргеты питаются от своих источников, соответственно общая только земля. Программатор подключен к компу через PL2303, в работоспособности которой я не сомневаюсь, ибо не работал бы терминальный режим. Запитан соответственно от 5в юсб.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.