|
|
  |
ATxmega |
|
|
|
May 6 2009, 04:03
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862

|
Цитата(_Алексей_ @ May 6 2009, 05:32)  Теперь и я стал счастливым обладателем ATXMEGA32A4:) Где брали? Меня "мелкие" кристаллы гораздо больше интересует, чем 128А1 Цитата При программировании столкнулся со следующей ситуацией: в AVRStudio 4.16 запускаю оболочку для программирования, программирую, но контроллер не реагирует. Закрываю оболочку программирования и контроллер оживает! Такого на mega-x не было. После программирования (и с запущенной оболочкой) контроллер сразу начинал работать. Как побороть мою проблему? При программировании ATxmega128A1 через AVR ISP2 все как обычно. Контроллер стартует сразу после прошивки. Может у Вас разъем программатора неправильно распаян?
|
|
|
|
|
May 6 2009, 04:59
|
Группа: Новичок
Сообщений: 11
Регистрация: 16-02-09
Пользователь №: 44 925

|
>Где брали? Rainbow
>При программировании ATxmega128A1 через AVR ISP2 все как обычно. Контроллер стартует сразу после прошивки. Может у Вас разъем программатора неправильно распаян?
Программирую с помощью JTAG ICE MK2 по PDI. Если бы было распаяно не правильно, то контроллер бы не программировался и не работала бы отладка.
|
|
|
|
|
May 6 2009, 05:13
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862

|
Цитата(_Алексей_ @ May 6 2009, 07:59)  Rainbow Спасибо за наводку. Цитата Программирую с помощью JTAG ICE MK2 по PDI. С ним дел не имел. Но попробую предположить - может он сразу после прошивки переводит чип в режим пошаговой отладки через PDI?
|
|
|
|
|
May 6 2009, 05:51
|
Группа: Новичок
Сообщений: 11
Регистрация: 16-02-09
Пользователь №: 44 925

|
>Спасибо за наводку Пожалуйста  >С ним дел не имел. Но попробую предположить - может он сразу после прошивки переводит чип в режим пошаговой отладки через PDI? Вряд ли. Посмотрел осциллографом состояние линий PDI_DATA и PDI_CLK и стало понятно. При запуске оболочки открывается сеанс связи с МК и не закрывается. А т.к. одна из эти линий совмещена с линией RST, то понятно почему МК не оживает. MDD, Вы для программирования используете AVRStudio и PDI? Вроде 128A1 можно еще по JTAG шить, если не ошибаюсь. В процессе изучения XMEGA возникает масса вопросов. FAQ еще никто не сделал? Вот хочу изменить внутреннюю частоту с 2МГц на 32МГц, но не получается. Как я понял, надо активировать защиту защиту регистров (СРР регистр), изменить CLK_CTRL и OSC_CTRL, но не выходит. Запускаю отладчик и вижу, что регистр CLK_CTRL не изменяется. В pdf не смог найти таблицы с описанием адресации всех регистров. Пишу на асме, надо знать к каким обращаться через out/sts.
Сообщение отредактировал _Алексей_ - May 6 2009, 05:51
|
|
|
|
|
May 6 2009, 06:47
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862

|
Цитата(_Алексей_ @ May 6 2009, 08:51)  MDD, Вы для программирования используете AVRStudio и PDI? Вроде 128A1 можно еще по JTAG шить, если не ошибаюсь. Да, использую студию и AVR ISP2 через PDI. Через JTAG мне не чем шить. Цитата В процессе изучения XMEGA возникает масса вопросов. FAQ еще никто не сделал? Вот хочу изменить внутреннюю частоту с 2МГц на 32МГц, но не получается. Как я понял, надо активировать защиту защиту регистров (СРР регистр), изменить CLK_CTRL и OSC_CTRL, но не выходит. Запускаю отладчик и вижу, что регистр CLK_CTRL не изменяется. В pdf не смог найти таблицы с описанием адресации всех регистров. Пишу на асме, надо знать к каким обращаться через out/sts. Да, я вот тоже привык по FAQ новые контроллеры изучать. А здесь похоже придется поучаствовать в его написании Прежде всего не лишним будет напомнить, что при изучении Xmega нужно пользоваться двумя документами - непосредственно даташитом на контроллер и общим мануалом. Мануал лежит здесь http://www.atmel.com/dyn/resources/prod_do...nts/doc8077.pdf Теперь по тактированию. Для этого следует изучить апноту AVR1003: Using the XMEGA Clock System . Там есть пример кода, правда на С. Но есть и критическая секция, написанная на асме. Непосредственно переключение нужно делать быстро, за четыре такта, иначе не переключится. Просмотр сишного листинга показывает, что теперь (по понятным причинам) к большинству регистров доступ идет через команды работы с памятью . Ниже пример тактирования от PLL (кварц 16МГц с умножением на 2) Привожу фрагмент листинга, чтобы был виден "ассемблер". Код 58 //Настраиваем тактирование 59 //Кварц 16МГц, умножение на 2 60 OSC.XOSCCTRL=0xcb; //Кварц(12-16),16К циклов \ 00000000 EC0B LDI R16, 203 \ 00000002 93000052 STS 82, R16 61 OSC.CTRL|=0x08; //Включаем кварцевый генератор \ 00000006 E5E0 LDI R30, 80 \ 00000008 E0F0 LDI R31, 0 \ 0000000A BFFB OUT 0x3B, R31 \ 0000000C 8100 LD R16, Z \ 0000000E 6008 ORI R16, 0x08 \ 00000010 8300 ST Z, R16 \ 00000012 E5E1 LDI R30, 81 62 do{} while ((OSC.STATUS & 0x08)==0); //ожидаем готовности кв. генератора \ ??main_0: \ 00000014 8100 LD R16, Z \ 00000016 FF03 SBRS R16, 3 \ 00000018 CFFD RJMP ??main_0 63 OSC.PLLCTRL=0xc2;// PLL от кварца, К=2 \ 0000001A EC02 LDI R16, 194 \ 0000001C 8304 STD Z+4, R16 64 OSC.CTRL|=0x10;//Включаем PLL \ 0000001E E5E0 LDI R30, 80 \ 00000020 8100 LD R16, Z \ 00000022 6100 ORI R16, 0x10 \ 00000024 8300 ST Z, R16 \ 00000026 E5E1 LDI R30, 81 65 do{} while ((OSC.STATUS & 0x10)==0); //Ожидаем готовности PLL \ ??main_1: \ 00000028 8100 LD R16, Z \ 0000002A FF04 SBRS R16, 4 \ 0000002C CFFD RJMP ??main_1 66 CCPwriteCLKtoPLL(); //переключаемся на тактирование от PLL \ 0000002E .... RCALL CCPwriteCLKtoPLL 67 OSC.CTRL=0x18; //выключаем все генераторы, кроме кварца и PLL \ 00000030 E108 LDI R16, 24 \ 00000032 93000050 STS 80, R16
................................
226 //критическая секция для переключения источника тактирования CCPwriteCLKtoPLL:
\ 00000000 ED08 ldi r16,0xd8 \ 00000002 E014 ldi r17,0x04 \ 00000004 BF04 out 0x34,r16 \ 00000006 93100040 sts 64,r17 0000000A 9508 RET
Сообщение отредактировал MDD - May 6 2009, 06:48
|
|
|
|
|
May 6 2009, 07:03
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153

|
Цитата(_Алексей_ @ May 6 2009, 10:59)  Программирую с помощью JTAG ICE MK2 по PDI. Если бы было распаяно не правильно, то контроллер бы не программировался и не работала бы отладка. Схему подключения МКII выложить можете?
|
|
|
|
|
May 6 2009, 08:35
|
Группа: Новичок
Сообщений: 11
Регистрация: 16-02-09
Пользователь №: 44 925

|
MDD, спасибо за пример! Действительно, надо было заглянуть в Application.
Рабочий пример на асме переключения на встроенный генератор 32МГц
;32 MHz Internal RC Oscillator Enable ldi A,OSC_RC32MEN_bm sts OSC_CTRL,A ;32 MHz Internal RC Oscillator Ready? lds A,OSC_STATUS sbrs A,1 ;OSC_RC32MRDY_bm rjmp PC-3 ;Configuration Change Protection Register. Protected IO register ldi A,CCP_IOREG_gc out CPU_CCP,A ;System Clock Selection. 32 MHz Internal RC Oscillator. ldi A,CLK_SCLKSEL_RC32M_gc sts CLK_CTRL,A
Не понятно как сейчас пользоваться командами SBRS и SBRС при использовании ATxmega32A4def.inc, т.к. SBRS и SBRС используют номер бита, а в ATxmega32A4def.inc биты преобразованы в hex-значения.
>Схему подключения МКII выложить можете? Какая там схема... 2 проводка: RESET/PDI_CLK и PDI_DATA.
|
|
|
|
|
May 6 2009, 08:57
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862

|
Цитата >Схему подключения МКII выложить можете? Какая там схема... 2 проводка: RESET/PDI_CLK и PDI_DATA. Распайку разъема нужно смотреть в Студии: Help->AVR Tools User Guide Хочу заметить, что на данный момент там цоколевка разъема именно под PDI для AVR ISP2 не приведена. Ее нужно брать в разделе для JTAGICE mkII. Атмеловцы сделали распайку одинаковой с прицелом под STK600.
|
|
|
|
|
May 13 2009, 19:30
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(MDD @ May 6 2009, 11:57)  Хочу заметить, что на данный момент там цоколевка разъема именно под PDI для AVR ISP2 не приведена. AVR studio 4.16 Build 628 Help/AVR Tools user guide -> AVRISP mkII User Guide/2:Hardware Description/2.5:Target Interface/2.5.2 PDI Interface __________________________ Этой ATxmega128A1 чего нехватает, так это простейшего ремаппинга хотя бы SPI да UART-ы (дерущиеся по ногам между собой да с таймерами) хотя бы с пары портов на эти EBI-ческие, свободные при отсутствии внешней памяти, порты. Или хотя бы пару SPI бросить на порт К, который в режиме LPC2 свободен. А то всего много, а использовать в полный рост проблематично. Ну ничего, про запрет прерывания на пару тактов после записи в SPL (отсутствие чего я лет пять назад в обсуждениях AVR записывал в их недостаток) сделали, может и это допатчат.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|