реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> ATXMEGA - запуск от внешнего таймера, ATXMEGA128A1
Slonofil
сообщение Sep 11 2013, 11:14
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Товарищи!

Помогите запустить ATXMEGA128A1 от врешнего кварцевого генератора 25 МГц! Пишу под GCC в AVR Studio 4.19. В качестве результата хочется получить на PE7 clkPer (через event system).

Мой код, который не дал результата, таков:
Код
int main(void)
{
    cli();

    OSC_XOSCCTRL = OSC_FRQRANGE_12TO16_gc |
                   OSC_XOSCSEL_EXTCLK_gc;
    OSC_CTRL = OSC_XOSCEN_bm;
    while(!(OSC_STATUS & OSC_XOSCRDY_bm)) {; }

    CPU_CCP = CCP_IOREG_gc;
    CLK_CTRL = CLK_SCLKSEL_XOSC_gc;
    OSC_CTRL &= 0xFE;

    EVSYS_CH0MUX = EVSYS_CHMUX_PRESCALER_1_gc;      // ClkPER div by 2^0 is event source
    PORTCFG_CLKEVOUT = PORTCFG_EVOUT_PE7_gc;        // Event Channel 7 Output on Port E pin 7
                                                    //  PORTCFG_CLKOUT_PE7_gc = (0x03<<0)

    PORTA_DIR = 0b00000000;
    PORTB_DIR = 0b11111111;
    PORTC_DIR = 0b00000000;
    PORTD_DIR = 0b00000000;
    PORTE_DIR = 0b10000000;             // PE7 must be configured as output for the event to be available on the pin
    PORTF_DIR = 0b00000000;
    PORTH_DIR = 0b00000000;
    PORTJ_DIR = 0b00011000;
    PORTK_DIR = 0b00000000;
    PORTQ_DIR = 0b0000;

    while (1)
    {
        asm ("nop");
    }
}


Сообщение отредактировал Slonofil - Sep 11 2013, 11:15
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 11 2013, 15:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Вы уверены что правильно разрешаете работу генератора?
В Си не силён, но в примерах встречал вот так : OSC.CTRL|=OSC_XOSCEN_bm;
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 11 2013, 16:19
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(zombi @ Sep 11 2013, 18:42) *
Вы уверены что правильно разрешаете работу генератора?
В Си не силён, но в примерах встречал вот так : OSC.CTRL|=OSC_XOSCEN_bm;

Я не накладываю маску, а задаю явное значение. Может, в этом проблема - обнуление бита работы внутреннего 2МГц генератора может быть игнорируется, а может и игнорирует всю команду... попробую сделать с маской.

Но тут ещё другая проблема: не запускается каметь даже от внутреннего генератора...
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 11 2013, 16:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Slonofil @ Sep 11 2013, 19:19) *
Но тут ещё другая проблема: не запускается каметь даже от внутреннего генератора...

Что значит не запускается???
От внутр. RC2M дОлжОн запускаться обязятельно!
Сначала простое ногодрыганье от внутр. 2MHz! а уже потом всякие внешние генераторы, сис. событий и т.д.
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 11 2013, 16:45
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(zombi @ Sep 11 2013, 19:41) *
Что значит не запускается???
От внутр. RC2M дОлжОн запускаться обязятельно!
Сначала простое ногодрыганье от внутр. 2MHz! а уже потом всякие внешние генераторы, сис. событий и т.д.

Во, я тоже так думал! А нифига, не дрыгаются ноги. Вот такая программа никак не идёт, хотя компилируется без ошибок (что ожидаемо), и штатно шьётся, судя по поведению AVR ISP mkII.

Код
#include <avr/io.h>
#include <stdint.h>
#include <stdlib.h>
#include <avr/interrupt.h>


int main(void)
{
    cli();

    PORTA_DIR = 0b00000000;
    PORTB_DIR = 0b11111111;
    PORTC_DIR = 0b00000000;
    PORTD_DIR = 0b00000000;
    PORTE_DIR = 0b10000000;                              // PE7 must be configured as output for the event to be available on the pin
    PORTF_DIR = 0b00000000;
    PORTH_DIR = 0b00000000;
    PORTJ_DIR = 0b00011000;
    PORTK_DIR = 0b00000000;
    PORTQ_DIR = 0b0000;

    while (1)
    {
        PORTB_OUT = 0x55;
        asm ("nop");
        PORTB_OUT = 0xAA;
    }
}
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 11 2013, 16:51
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Ну тогда я пас.
Надо сишников подождать biggrin.gif
Или накропайте микро прогу на асме.
С фузами всё в порядке?
А что за плата?
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 11 2013, 16:56
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(zombi @ Sep 11 2013, 19:51) *
Ну тогда я пас.
Надо сишников подождать biggrin.gif
Или накропайте микро прогу на асме.
С фузами всё в порядке?
А что за плата?

Плата готовая, требуется освоить. На асме на такой же плате мега по крайней мере запускалась, теперь стоит задача оживить пациента на С.

С фьюзами даже и не знаю, что делать, так что пока оставил всё как есть, по умолчанию. А надо с ними что-то делать?

Кстати, нужно ли подтягивать внешним резистором RESET к плюсу питания или нет? Вроде ж есть внутренний.
Go to the top of the page
 
+Quote Post
zombi
сообщение Sep 11 2013, 17:06
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(Slonofil @ Sep 11 2013, 19:56) *
С фьюзами даже и не знаю, что делать, так что пока оставил всё как есть, по умолчанию. А надо с ними что-то делать?

Ну Вам виднее, но я бы не доверял умолчаниям. Хрен его знает кто и как их умолчал biggrin.gif

Цитата(Slonofil @ Sep 11 2013, 19:56) *
Кстати, нужно ли подтягивать внешним резистором RESET к плюсу питания или нет? Вроде ж есть внутренний.
Всегда ставлю 10кОм.
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 11 2013, 17:11
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(zombi @ Sep 11 2013, 20:06) *
Ну Вам виднее, но я бы не доверял умолчаниям. Хрен его знает кто и как их умолчал biggrin.gif

Ну, наверное, да. Тогда что нужно там выставлять? Сейчас как на картинке.

Цитата(zombi @ Sep 11 2013, 20:06) *
Всегда ставлю 10кОм.

Щас ткнулся осциллографом в RESET - всё как положено при шитье через PDI - дрыги при программировании, "AVRISP mkII: : Done" в окошке среды, единица колом после программирования, и никаких больше движений.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 12 2013, 09:13
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Кстати, пока контроллер на плате мне не отвечает взаимностью, задумал купить отдельный кристалл и поиграться с ним на макетке (если сожгу - не жалко). Но есть макетка только под 64 и 80 пинов TQFP. Правильно ли я понимаю, но наиболее родственно-близким к ATXMEGA128A1 будет ATXMEGA128A3? И чем ATXMEGA128A3 отличается от ATXMEGA128A3U (который в половину дешевле)?
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 12 2013, 09:50
Сообщение #11


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Slonofil @ Sep 12 2013, 13:13) *
Правильно ли я понимаю, но наиболее родственно-близким к ATXMEGA128A1 будет ATXMEGA128A3?

Я бы так не сказала. На мой взгляд, ближайшим родственником ATXMEGA128A1 будет ATXMEGA128A1U. И только потом всё остальное.

Цитата(Slonofil @ Sep 12 2013, 13:13) *
И чем ATXMEGA128A3 отличается от ATXMEGA128A3U (который в половину дешевле)?

Главным образом, наличием USB. Минорные отличия описаны здесь:
Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U

Лишний USB не мешает, т.к. его пины можно использовать по старому назначению.
Берите с буквой U, они новые и в них errara исправлена. А старые стоят дороже, как антиквариат sm.gif, т.к. с производства сняты.
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 12 2013, 09:59
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(Xenia @ Sep 12 2013, 12:50) *
Главным образом, наличием USB. Минорные отличия описаны здесь:
Migration from ATxmega256A3/192A3/128A3/64A3 to ATxmega256A3U/192A3U/128A3U/64A3U

Берите с буквой U, они новые и в них errara исправлена. А старые стоят дороже, как антиквариат sm.gif, т.к. с производства сняты.

Исключительно благодарен, уважаемая Xenia!

Цитата(Xenia @ Sep 12 2013, 12:50) *
Я бы так не сказала. На мой взгляд, ближайшим родственником ATXMEGA128A1 будет ATXMEGA128A1U. И только потом всё остальное.

Как писАл постом выше, у меня нет макетки для 100-ногого TQFP, ищу на 64 ноги, но наиболее похожий по внутренностям.

Интересно, а А1/А3 действительно сняты с производства? Где можно взглянуть на их производственный статус? На странице Атмела не нашёл =(

Сообщение отредактировал Slonofil - Sep 12 2013, 10:03
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 12 2013, 10:16
Сообщение #13


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Slonofil @ Sep 12 2013, 13:59) *
Интересно, а А1/А3 сняты с производства? Где можно взглянуть на их производственный статус? На странице Атмела не нашёл =(


Не признаются пока, видимо на складе старых еще полно. Но новые с буквой U клепают вовсю, да и цена у них низкая.

Тут ведь как еще произошло - семейство XMega началось с самой "крутой" A1, а прочие (A3, A4, B1, B3, C3, C4, D3, D4, E5) в той или иной степени представляют ее урезанные варианты, хотя и что-то из интерфейсов бывает добавлено. В этом смысле A1 не повезло, т.к. первый блин обычно бывает комом sm.gif. Из-за этого у нее самая длинная errata, причем во многих случаях неисправимая (не работает bootloader, DMA SPI в master-режиме и многое другое). Это-то и досадно. Но тут на счастье подоспела A1U, у которой многое удалось исправить. В этой ситации продолжать производить старые A1 уже не имеет никакого смысла. С A3 ситуация получше, т.к. в ее конструкции кое-что из огрехов A1 было исправлено с самого начала, но A3U, на мой взгляд, все равно предпочтительнее.

Однако надо понимать, что XMega - новая серия, имеющая очень много отличий от прошлых Mega. И к тому же пересыщенная периферией. Было бы невероятным, если бы флагман этой серии получился бы сразу без сучка и без задоринки.
Go to the top of the page
 
+Quote Post
Slonofil
сообщение Sep 12 2013, 10:24
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 327
Регистрация: 6-10-09
Из: РФ :: Ленинград
Пользователь №: 52 781



Цитата(Xenia @ Sep 12 2013, 13:16) *
Не признаются пока, видимо на складе старых еще полно. Но новые с буквой U клепают вовсю, да и цена у них низкая.

Тут ведь как еще произошло - семейство XMega началось с самой "крутой" A1, а прочие (A3, A4, B1, B3, C3, C4, D3, D4, E5) в той или иной степени представляют ее урезанные варианты, хотя и что-то из интерфейсов бывает добавлено. В этом смысле A1 не повезло, т.к. первый блин обычно бывает комом sm.gif. Из-за этого у нее самая длинная errata, причем во многих случаях неисправимая (не работает bootloader, DMA SPI в master-режиме и многое другое). Это-то и досадно. Но тут на счастье подоспела A1U, у которой многое удалось исправить. В этой ситации продолжать производить старые A1 уже не имеет никакого смысла. С A3 ситуация получше, т.к. в ее конструкции кое-что из огрехов A1 было исправлено с самого начала, но A3U, на мой взгляд, все равно предпочтительнее.

Однако надо понимать, что XMega - новая серия, имеющая очень много отличий от прошлых Mega. И к тому же пересыщенная периферией. Было бы невероятным, если бы флагман этой серии получился бы сразу без сучка и без задоринки.

Видите ли, какое дело: я ни бум-бум ни в каких мегах, ни в старых, ни в новых, так что мне в принципе всё равно с чего начинать. Если Вы говорите, что лучше с A3U - так и сделаю. Главное, чтобы потом можно было знания применить на А1, которая уже заложена в плату, с которой хошь-не хошь, а надо работать.

И вот ещё хотел уточнить у Вас как у опытного пользователя данной серии: а что ещё у А1 из серьёзного не допилено кроме бутлодыря и DMA+MasterSPI? Чтобы мне на мину не нарваться при первом же подходе к снаряду...
Go to the top of the page
 
+Quote Post
Xenia
сообщение Sep 12 2013, 10:55
Сообщение #15


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Slonofil @ Sep 12 2013, 14:24) *
Видите ли, какое дело: я ни бум-бум ни в каких мегах, ни в старых, ни в новых, так что мне в принципе всё равно с чего начинать. Если Вы говорите, что лучше с A3U - так и сделаю. Главное, чтобы потом можно было знания применить на А1, которая уже заложена в плату, с которой хошь-не хошь, а надо работать.

Этого я не говорила, а сказала лишь, что с буквой U лучше, чем без этой буквы. Т.е. понимать сказанное надо так, что A1U предпочтительнее, чем A1, а A3U предпочтительнее, чем A3. Тогда как A1/A1U и A3/A3U между собой я не сравнивала.

Но на вашем месте, а бы заменила A1 на A1U, т.к. риска тут никакого нет, ввиду практически полного подобия (в том числе и в корпусах). А вот заменять A1 на A3/A3U поостереглась. Полагаю, что рисковать здесь стоило бы только в одном случае - если флеша нужно больше, чем 128К, т.к. у A1U предел 128К, а у A3U бывает до 256К.

Цитата(Slonofil @ Sep 12 2013, 14:24) *
И вот ещё хотел уточнить у Вас как у опытного пользователя данной серии: а что ещё у А1 из серьёзного не допилено кроме бутлодыря и DMA+MasterSPI? Чтобы мне на мину не нарваться при первом же подходе к снаряду...

К сожалению, по чаcти ATXmega я тоже новичок (только один проект сделала), а бутлодырь и DMA+MasterSPI - это как раз то, на что я сама нарвалась sm.gif.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 07:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01493 секунд с 7
ELECTRONIX ©2004-2016