mse 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба А камень поменять? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба А камень поменять? Пробовал на 2-х изделиях одного типа и еще на одном другого типа, правда на всех стоят AtMega128. Может тут на форуме кто из Минска есть, чтобы проверить сам JTAGICE? Я уже не знаю, что и подумать!!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
m16 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба имхо фуз М103 не сброшен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба имхо фуз М103 не сброшен Режим совместимости с ATmega103 выключен Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 22 ноября, 2007 Опубликовано 22 ноября, 2007 · Жалоба К сожалению и этот вариант не проходит, хотя бы из-за того что микросхема прошивается через этот же разъем (интерфейс) и программатор без проблем Это ни о чем не говорит. Прошивать вы его могли вручную через Tools->Program AVR. Речь о том, что во вкладке Debug->Select Platform and device должен быть выбран правильный отладчик и правильный тип кристала. Вы проверили что кристал выбран правильно, и что компилируете вы под тот чип, что надо? На чем написана тестовая программа? Рекомендую для проверки нашкрябать одну строку на asm'e и попробовать ее отладить: L1: rjmp L1 Войдя в режим отладки, "не шагая", попробовать через JTAG подергать порты (кликая мышкой на квадратики во вкладке "I/O View").. Если ноги будут дергаться, то большая вероятность того, что у вас что-то не так с размещением программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasia Klin 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Такая же ерунда была у меня. Чип прошивался, но отлаживаться не хотел, отладчик либо зависал наглухо, либо делал полную ерунду. Меняли чипы и было всё тоже самое. Думали что полетел JTAG mkII. Оказалось что не был попаян внешний кварц, т.е. не было клока. Пропаял всё стало нормально работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Это ни о чем не говорит. Прошивать вы его могли вручную через Tools->Program AVR. Речь о том, что во вкладке Debug->Select Platform and device должен быть выбран правильный отладчик и правильный тип кристала. Вы проверили что кристал выбран правильно, и что компилируете вы под тот чип, что надо? На чем написана тестовая программа? Рекомендую для проверки нашкрябать одну строку на asm'e и попробовать ее отладить: L1: rjmp L1 Войдя в режим отладки, "не шагая", попробовать через JTAG подергать порты (кликая мышкой на квадратики во вкладке "I/O View").. Если ноги будут дергаться, то большая вероятность того, что у вас что-то не так с размещением программы. Значит вот что получилось: 1. Сделал новый проект на ASM с 2-мя строчками L1: rjmp L2 L2: rjmp L1 2. Проверил, что указан JTAGICE mkII в Debug->Select Platform and device. И указана AtMega128. Все правильно 3. Запустил Build\Build and Run 4. Появился указатель на 1-й строчке моего кода L1: rjmp L2 5. Пощелкал состоянием ног одного порта PORTD. Все нормально, состояние порта устанавливается в соответствии с тем, что я устанавливаю!!! 6. Делаю шаг "Step In" и программа как бы подвисает, но такое ощущение, что она просто куда-то улетает. Так как на TOOLBAR остаются активными кнопки RESET и PAUSE. 7. Через некоторое время, не дождавшись результата, жму PAUSE. И еще через мгновение программа выкидывает окно Dissambler и в нем останавливается на адресе: +00000A36: FFFF ??? Data or unknown opcode Пробовал проделывать такое несколько раз и даже со "Step Out", единственное отличие, что после нажатия PAUSE адрес моей остановки случайный. 8. В этом же окне Disassembler перехожу на начало программы и смотрю, что там все нормально записано: 1: L1: rjmp L2 +00000000: C000 RJMP PC+0x0001 Relative jump @00000001: L2 2: L2: rjmp L1 +00000001: CFFE RJMP PC-0x0001 Relative jump 9. Ставлю указатель на адрес 0000 - Set next Statement 10. Делаю "Step In", перемещаюсь на L2, делаю еще раз "Step In", перемещаюсь на L1. И так до бесконечности, все работает ОТЛИЧНО!!! Попутный вопрос, обязательно нужно работать в окне Disassembler или что у меня не так? 11. Теперь загружаю свою программу, повторяю пункты 1-5. Все тоже самое - работает нормально, за исключением того, что указатель указывает на 1-ю строчку в моей программе clr a 12. Открываю окно Disassembler, смотрю что и там указатель указывает на 1-ю строчку моего кода: +00000000: 2700 CLR R16 Clear Register 13. Делаю "Step In" и все программа улетает куда то безвозвратно, а через мгновение, получаю знакомый: "Error single step" и затем еще через мгновение выкидывает окошко "Platform has been disconnected, leaving debug mode" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба JTAG connection -> Target clock frequency должна быть меньше тактовой частоты МК более чем в 4 раза для надёжного коннекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба JTAG connection -> Target clock frequency должна быть меньше тактовой частоты МК более чем в 4 раза для надёжного коннекта. В устройстве кварц на 12МГц, частота JTAG 1МГц. Тем более, все что я писал в предыдущем посте проводилось на одном и том же устройстве, а значит с одним и тем же процессором, кварцем и частотой JTAG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kada 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Может запрограммирован fuse WDTON ? При останове программы посмотрите сброшен ли бит "I" регистра SREG Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Может запрограммирован fuse WDTON ? При останове программы посмотрите сброшен ли бит "I" регистра SREG Во FUSEs Watchdog выключен. По Рестарту бит "I" всегда сброшен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kada 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 (изменено) · Жалоба Недавно я тоже мучался с отладкой Mega128 через mkII, правда из под IARa. mkII был подключен к компу через USB. Правда загрузка firmware в кристалл вообще не происходила. Компилятор ругался что не видит кристалл. Проблема была что на одной из ног JTAGa M128 на макетке висели компоненты. После освобождения этой ноги все заработало. Изменено 23 ноября, 2007 пользователем kada Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба Проблема была что на одной из ног JTAGa M128 на макетке висели компоненты. После освобождения этой ноги все заработало. Конденсатор на RESET тоже мешает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба В устройстве кварц на 12МГц, частота JTAG 1МГц 5. Пощелкал состоянием ног одного порта PORTD. Все нормально, состояние порта устанавливается в соответствии с тем, что я устанавливаю!!! 7. 8. 9. Ставлю указатель на адрес 0000 - Set next Statement 10. И так до бесконечности, все работает ОТЛИЧНО!!! Попутный вопрос, обязательно нужно работать в окне Disassembler или что у меня не так? В окне Disassembler работать не обязательно. Открывается оно тогда когда кристал выполняет код вышедший за границу вашей программы. То что при нажатии PAUSE проц останавливается по неправильному адресу - 0xA36, может говорить о том, что 1. произошло какое-то прерывание.. (Как? если флаг I == 0, для пресечения такой возможности в тест код ставим первой инструкцией CLI) 2. программа стартует не с 0x0000 адреса. 3. отладчик перепрыгнул через одну команду после точки останова. (для проверки п.3, вставляем между двумя rjmp пару-тройку NOP'ов) Насчет, что не так: Используете ли вы самодельный переходник между JTAGICE разъемом и таргет девайсом, если да какова суммарная длина шлейфа? Можете привести настройки всех фузов которые у вас установлены (можно скопировать из окна Fuses)? Включите фуз CKOPT и проверьте (если есть возможность) что на XTAL2 есть 12Mhz. Если 12Mhz есть, самодельный шлейф не используется, то попробуйте разорвать соединение между nSRST JTAGICE и RST таргет девайса (например отпаять пин RST и оставить его висеть в воздухе). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Yaumen 0 23 ноября, 2007 Опубликовано 23 ноября, 2007 · Жалоба В окне Disassembler работать не обязательно. Открывается оно тогда когда кристал выполняет код вышедший за границу вашей программы. То что при нажатии PAUSE проц останавливается по неправильному адресу - 0xA36, может говорить о том, что 1. произошло какое-то прерывание.. (Как? если флаг I == 0, для пресечения такой возможности в тест код ставим первой инструкцией CLI) 2. программа стартует не с 0x0000 адреса. 3. отладчик перепрыгнул через одну команду после точки останова. (для проверки п.3, вставляем между двумя rjmp пару-тройку NOP'ов) Насчет, что не так: Используете ли вы самодельный переходник между JTAGICE разъемом и таргет девайсом, если да какова суммарная длина шлейфа? Можете привести настройки всех фузов которые у вас установлены (можно скопировать из окна Fuses)? Включите фуз CKOPT и проверьте (если есть возможность) что на XTAL2 есть 12Mhz. Если 12Mhz есть, самодельный шлейф не используется, то попробуйте разорвать соединение между nSRST JTAGICE и RST таргет девайса (например отпаять пин RST и оставить его висеть в воздухе). 1. FUSEs установленные у меня: - On-chip Debug Enabled - JTAG Interface Enabled - Serial Program Downloading enabled - Boot Flash section size=512, НО при этом Boot Reset vector Disabled - CKOPT fuse - Brown-out Detection VCC=4.0V - Ext. Crystal Resonator High Freq; Start-up time 16K CK + 64 ms 2. JTAG использую фирменный, шлеф включается непосредственно в отлаживаемое устройство, без дополнительных переходников. 3. Кварц работает именно на 12 Мгц, так как программа, которую я отлаживаю в приниципе работает. Но запускал ее я без оладчика и только теперь решил научиться работать с ним. 4. Непонятно, почему происходит прерывание, так как по рестарту прерывания все должны быть запрещены, а у меня проблема начинается с первой же команды. CLI поставил по 0-му адресу, но ничего не изменилось. 5. А почему программа должна стартовать не с 0-го адреса, если у меня Boot Reset vector Disabled. И еще, может пока у меня программа входит в режим Debug процессор выполняет программу и куда-то убегает? Но тогда непонятно, почему после ввода в режим Debug он не сбрасывает устройство в 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться