Программирование AVR AVR JTAGICE mkII: отладка программы ATtiny24, ATtiny45 на C Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


AVR JTAGICE mkII: отладка программы ATtiny24, ATtiny45 на C Печать
Добавил(а) microsin   

Описание процесса работы с младшими моделями микроконтроллеров AVR с помощью отладчика JTAGICE mkII.

1. Спаяйте макетную плату:

maket-ATtiny45

Питание (VCC на схеме) должно быть +3.3..+5 вольт. Эта макетная плата позволяет не только отлаживать программу через debugWIRE (нужны провода с контактов разъема U1 - 2, 5, 6), но и использовать режим ISP (добавляются провода 1, 3, 4). Можно спокойно использовать порты PA4..PA6 как выходы в отлаживаемом устройстве (я, например, нагрузил на них светодиоды) - это никак не влияет на работоспособность ISP.

На верхней крышке JTAGICE mkII есть 3 светодиода, пронумеруем их, чтобы далее было проще ссылаться на них в тексте.

1. GREEN, горит, когда на отладочной плате есть напряжение + 5в, поданное от внешнего источника (напряжение между выводами 2 и 6 6-штырькового коннектора JTAGICE mkII). Внимание! Использование внешнего напряжения очень важно, и должна быть удобная возможность его отключать - это единственный способ корректного перехода из режима ISP в режим debugWIRE!

2. RED, горит, когда на JTAGICE mkII подано напряжение питания.

3. RED/GREEN/YELLOW - трехцветный светодиод, индицирующий режим работы JTAGICE mkII.
- Горит красным, если только что подано питание.
- Гаснет, когда отладка остановлена (по точке останова, или сразу после входа в режим отладки).
- Мигает зеленым, когда запущена программа на постоянное выполнение.
- Подмигивает желтым при выходе из режима отладки и иногда в других случаях.

Внутри JTAGICE mkII есть еще один зеленый светодиод (четвертый, пусть будет номер 4), он виден через полупрозрачный корпус JTAGICE mkII. Показывает горением и миганием активность на шине USB, если через неё подключен JTAGICE mkII.

2. Подключите коннектор к отладочному разъему JTAGICE mkII через 6-штырьковый переходник, подключаем питание +5В к макетной плате, подключаем JTAGICE mkII кабелем USB к компьютеру. Если использовать кабель RS232 для подключения JTAGICE mkII к компьютеру, тогда придется подавать питание 9..12В еще и на JTAGICE mkII (полярность не имеет значения, внутри JTAGICE mkII стоит диодный мост). О подключенном питании +5В на макетной плате в эмуляторе JTAGICE mkII сигнализирует горение зеленого светодиода GREEN на верхней крышке. Два красных рядом с ним также будут гореть.

3. Запускаем CodeVisionAVR V1.25.2 Beta 1. Меню File\New\Project, подтверждаем использование CodeWizardAVR, выбираем чип ATtiny24, тактовую частоту 8.000000 MHz, Crystal Oscillator Divider: 1, остальное можно оставить без изменения, или выбрать дополнительные опции для настройки портов и ресурсов ATtiny24.

4. В менюшке File у CodeWizardAVR выбираем Generate, Save and Exit. Создаем папку для проекта, в этой папке сохраняем файлы file1.c (основной код программы - там расположена функция main с бесконечным циклом), file2.prj (файл проекта) и file3.cwp (CodeWizardAVR project files).

5. Добавляем свои переменные и свой код - инициализация перед бесконечным циклом while(1) и код программы внутри цикла while(1).

6. Делаем Project\Make. В папке проекта появится файл file1.cof.

7. Идем в меню Settings\Debugger. Прописываем полный путь к exe-файлу AVR Studio 4 (у меня это было C:\Program Files\Atmel AVR Tools\AvrStudio4\AVRStudio.exe) и из выпадающего списка выбираем Atmel AVR Studio 4. Жмем OK, не обращаем внимания на предупреждение:

CodeVisionAVR will produce an extended COFF object file.
Please make sure to use AVR Studio 4.06 or later.
Earlier versions of AVR Studio 4 do not support the
extended COFF object file format and will not work
properly.

Причина предупреждения - у нас AVR Studio Version 4.12, Service Pack 4, Build 498 (или более новая).

8. Появится стартовое окошко Welcome to AVR Studio 4. Жмем кнопу Open, выбираем файл file1.cof в папке нашего проекта. AVR Studio предложит сохранить файл проекта file1_cof.aps, соглашаемся и сохраняем его в той же папке.

9. Появится окно Select debug platform and device, выбираем JTAGICE mkII, Device выбираем ATtiny24, Port выбираем USB. Жмем кнопу Finish.

10. Помигает зеленый светодиод внутри, а на верхней крышке красный крайний светодиод потухнет (останется на верхней крышке гореть зеленый светодиод и центральный красный). Появится окно проекта и исходный текст, по которому можно отлаживать программу - выполнять по шагам, ставить точки останова, просматривать переменные и регистры. Потом можно запускать сессию отладки, запуская файл file1_cof.aps.

11. Опишу методику, как включать режим debugWIRE. Напомню, что режим debugWIRE разрешается программированием fuse DWEN. Чтобы технология debugWIRE заработала, нужно запрограммировать debugWIRE Enable fuse DWEN (DWEN=0). С завода ATtiny24 поставляется с незапрограммированной DWEN (DWEN=1), и при этом debugWIRE запрещена.

Таким образом, включена отладка или нет, запоминается в самой микросхеме. Запускаем *.aps файл, или другим способом открываем сессию отладки в AVR Studio 4. Если функция debugWIRE запрещена, появляется окошко:

Unable to connect to device. This could be caused by reset line
circuitry or disabled debugWIRE interface. Make sure that the
reset line is free before continuing.

В этом окне нужно выбрать "Use SPI to enable debugWIRE interface". Помигают светодиоды на JTAGICE mkII, и появится окно:

The debugWIRE interface is now enabled. Please
cycle target power to continue debugging. You may
now disconnect the additional SPI lines.

Отключаем питание с макетной платы. На JTAGICE mkII гаснет зеленый светодиод на верхней панели. В окошке Message появляется сообщение "JTAGICE mkII: Target power lost.". Снова подаем питание на макетную плату. На JTAGICE mkII загорается зеленый светодиод на верхней панели. В окошке Message появляется сообщение:

"JTAGICE mkII: Target power has been restored.".

Жмем OK. Открываются отладочные окна, система готова к отладке.

12. Напоследок опишу методику, как переключаться из режима debugWIRE в режим ISP (чтобы, например, стереть микроконтроллер или установить биты защиты памяти). это переключение очень неочевидно, поскольку связано с восстановлением fuse DWEN в исходное состояние (DWEN=1).

Нажимаем Alt+O или заходим в меню Debug\JTAGICE mkII Options (это меню доступно только тогда, когда активна сессия отладки Debug\Start Debugging). На закладке Connection жмем кнопку Disable debugWIRE. В ответ вылезет окно:

To disable the debugWIRE fuse, the SPI lines must be connected
according to "Connecting to Target through the debugWIRE
Interface" in the JTAGICE mkII online help.
Would you like to disable debugWIRE and close the project?

Отвечаем Yes. Раскроются все окна отладки. Теперь можно программировать устройство через меню Tools\Program AVR\Auto Connect, доступны все программируемые ресурсы микроконтроллера, вплоть до его полного стирания.

 

Комментарии  

 
0 #2 Алексей 02.09.2010 03:13
Нет, слоны не поддерживают DebugWire, только JTAG.
Ищу схему отладчика по DebugWire (для AtTiny/Atmel)..
Цитировать
 
 
0 #1 Алексей 30.08.2010 04:24
Если отсутствует JTAGICE mkII то существует ли ли какая схема или возможность использовать отладку DebugWire с JTAG-ICE Clone?

microsin: я ни разу не имел дело с клонами JTAGICE mkII или JTAG-ICE, хотя много в Интернете про них читал. Если эти клоны поддерживают протокол DebugWire, то все должно работать.
Цитировать
 

Добавить комментарий


Защитный код
Обновить

Top of Page