Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATxmega
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7
Склихасовский
ну в смысле топологии пп - тут я спокоен..
присутствует и полигоны и сплошная металлизация с сеткой VIA со слоя на слой.
конденсаторы кварца к земле тоже по всем правилам развел.. все на кротчайших расстояниях...

ну вот такой казус...
причем партия плат около 12шт - и у всех разное поведение. кстати партия кристаллов 0922.
так что незнаю на что и думать...
буду ждать новых кварцев.
эти какие то нонейм (SM16.000) вот и все что я о них знаю....
ещё вот один момент: при включении, видно как программа начинает работать не сразу задержка 2-3 сек
ориентир :светодиод прием-передачи по RS485
очевидно генератор в готовность никак не войдет...
МП41
Я бы на Вашем месте толщину дорожек к кварцу увеличил до возможного, чтобы снизить индуктивность, а земли конденсаторов - соединил бы термальными отводами с полигоном.
Склихасовский
ну это из области мертвому припарка...
но учту..
правда не совем понял что такое термальный отвод с полигоном
есть картинка?
Duhas
а я бы на вашем месте переделал бы плату... на 1 стороне мона лучше сделать... и почитал рекомендации всякие в т.ч. от атымела по разводке кварца...

вот пример.. пинаут для А3.. особо не гонял, но у меня при такой разводке всегда все ок...
Vasily_
Цитата(Склихасовский @ Mar 26 2010, 16:37) *
ну в смысле топологии пп - тут я спокоен..
присутствует и полигоны и сплошная металлизация с сеткой VIA со слоя на слой.
конденсаторы кварца к земле тоже по всем правилам развел.. все на кротчайших расстояниях...

ну вот такой казус...
причем партия плат около 12шт - и у всех разное поведение. кстати партия кристаллов 0922.
так что незнаю на что и думать...
буду ждать новых кварцев.
эти какие то нонейм (SM16.000) вот и все что я о них знаю....
ещё вот один момент: при включении, видно как программа начинает работать не сразу задержка 2-3 сек
ориентир :светодиод прием-передачи по RS485
очевидно генератор в готовность никак не войдет...

Так емкости к кварцу подключать нельзя, глюки обеспечены! вам правильно советуют даже с картинками. smile.gif
МП41
Примерно вот так:
Нажмите для просмотра прикрепленного файла
Склихасовский
Цитата(Vasily_ @ Mar 26 2010, 22:03) *
Так емкости к кварцу подключать нельзя, глюки обеспечены! вам правильно советуют даже с картинками. smile.gif

Объясните , в чем не прав? ей богу не догоняю


Цитата(Duhas @ Mar 26 2010, 21:32) *
а я бы на вашем месте переделал бы плату... на 1 стороне мона лучше сделать... и почитал рекомендации всякие в т.ч. от атымела по разводке кварца...

вот пример.. пинаут для А3.. особо не гонял, но у меня при такой разводке всегда все ок...

а в чем разница?

Цитата(МП41 @ Mar 26 2010, 23:15) *

вот, а я после прочтения кучи литературы как раз отказался от такого варианта - там чтото вроде нельзя подключать конденсаторы к сплошной земле - нужно отдельным проводником
вот собственно http://caxapa.ru/lib/emc_immunity.html - фигура6
Vasily_
Цитата
Объясните , в чем не прав? ей богу не догоняю

емкость нужно землить каждую отдельным проводником максимальной ширины или через перереход сразу на землю.
Цитата
вот, а я после прочтения кучи литературы как раз отказался от такого варианта - там чтото вроде нельзя подключать конденсаторы к сплошной земле - нужно отдельным проводником

Можно и отдельным проводником но тоже максимальной ширины и прошивается по всей длине переходн.. отв.. на землю.

Я сейчас делаю вот так и все работает отлично.
Нажмите для просмотра прикрепленного файла
Duhas
для своей продукции атымел рекомендует землю от кондеров кварца подключать напрямую к земляной ноге контроллера расположенной рядом с XTAL1/2.. втыкаю кондеры в полигон вы даете возможность токам не относящимся кварцу бегать рядом и сбивать такт...

объяснение кривое, но я еще не проснулся )
Склихасовский
Цитата(Vasily_ @ Mar 27 2010, 23:36) *
емкость нужно землить каждую отдельным проводником максимальной ширины или через перереход сразу на землю.

Можно и отдельным проводником но тоже максимальной ширины и прошивается по всей длине переходн.. отв.. на землю.

Я сейчас делаю вот так и все работает отлично.

Хорошо , а чем вы это обосновываете?
получается у вас VIA переходное отверстие, по сущности, единственный участок чистой земли.
например на мой вариант разводки - я могу показать документы электромагнитных испытаний во вниэме:
http://www.vniiem.ru/ru/index.php?option=c...9&Itemid=75
все проходило по группе B более и ненадо было.. ( ну конечно законченное устройство - вернее группа из 6 устройств на атмеле)


Цитата(Duhas @ Mar 28 2010, 07:22) *
для своей продукции атымел рекомендует землю от кондеров кварца подключать напрямую к земляной ноге контроллера расположенной рядом с XTAL1/2.. втыкаю кондеры в полигон вы даете возможность токам не относящимся кварцу бегать рядом и сбивать такт...

объяснение кривое, но я еще не проснулся )

Вот вот и я о том же посему и нарисовал отдельный проводник соединяющий емкости в одной точке
другое дело тут все говорят про ширину - здесь я не догнал...
Duhas
про ширину - советуют не уменьшать ширину проводников, а сделать ее максимально возможной, хотя тех же .2 .3 мм я думаю более чем достаточно.. но можно и сделать в размер пада под ногу МК...

на счет подключения земли кондеров.. у меня вот так:

Нажмите для просмотра прикрепленного файла

красным выделил путь тока от кондеров кварца... в моем случае еще к этой дорожке подключен кондер от аналогового питания, что в идеале нежелательно...

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

вообще к как тут кроме меня советовали.. к полигонам подключают кондеры кварцев.. к примеру те же производители свичей Dlink.. но я бы не стал )
Склихасовский
я с вами согласен...
но вопрос про хмегу пока открыт
надеюсь на след недели привезут "фирменные" кварцы - тогда отпишусь
MDD
Цитата(Duhas @ Mar 28 2010, 07:22) *
подключать напрямую к земляной ноге контроллера расположенной рядом с XTAL1/2

У Хмег там расположена нога AGND. Точнее в даташите она названа просто GND, наряду с остальными. Но расположенный рядом вывод AVcc не оставляет ей выбора...
Duhas
т.е. вы прдлагаете не использовать ее в качестве земли кварца?
МП41
А я ,честно говоря, был до сих пор уверен, что делал правильно, правда проблем не было.
MDD
Цитата(Duhas @ Mar 29 2010, 14:12) *
т.е. вы прдлагаете не использовать ее в качестве земли кварца?

Я-то как раз использовал. Но пришлось дополнительно позаботиться, чтобы аналоговая земля и "земля кварца" соединялись между собой в районе этой ноги.
Duhas
скоро надо будет ПП рисать на А3.. учту ваши комментарии )
Склихасовский
Вообщем привезли мне кварцы "нормальные"
ситуация не изменилась
по сравнению с амплитудой генерации у обычной меги - земля и небо...
пока выход вижу это 8 мгц...
кому не лень, сравните величину амплитуд генераторов у мега и Xmega32.
МП41
А какое напряжение питания у меги и Xмеги?
Склихасовский
3.292 v xmega
5.0 - мега
разница амплитуд более чем в 5-6 раз
V_G
Цитата(Склихасовский @ Apr 2 2010, 14:48) *
3.292 v xmega
5.0 - мега
разница амплитуд более чем в 5-6 раз

Xmega32A4
8 МГц, кондеры по 27 пФ, питание 3.3 В
Двойной размах 1 В, измерял с 10 МОм делителем 1:10, на стандартном 1 МОм щупе ничего не видно.
Никаких дерганий и шумов.
Программу не проверял, т.к. она настроена под другие частоты.
Код:
CODE
LDI r16,OSC_FRQRANGE_2TO9_gc|OSC_XOSCSEL_XTAL_16KCLK_gc
STS OSC_XOSCCTRL,r16

LDI r16,OSC_RC2MEN_bm|OSC_RC32KEN_bm|OSC_XOSCEN_bm
STS OSC_CTRL,r16

LDS r16,OSC_STATUS
SBRS r16,OSC_XOSCRDY_bp
RJMP PC-3

LDI r16,CLK_SCLKSEL_XOSC_gc
LDI r17,CCP_IOREG_gc
OUT CPU_CCP,r17 ;загрузили Protect IO Register signature
STS CLK_CTRL,r16 ;внешнее тактирование
Склихасовский
2 V__G
а это все к чему?
про 8 мгц кварца? так там и у меня все идеально...
V_G
Пардон, потерял нить беседы...
На 16 МГц размах 300 мВ от пика до пика, видны шумы. Возможно, щуп чего вносит, у xmegи более слаботочный выход, чем у просто меги.
Щуп проверил при замерах от эталонного ВЧ генератора на 8 и 16 МГц, все ОК.
Стабильность программы все равно не проверю.
vav618
Добрый день Уважаемые участники форума, возник такой вопрос по работе с ATxmega32A4:
Как организовать прямой доступ к памяти (DMA) к внешнему устройству вода вывода (увв). В http://www.gaw.ru/html.cgi/txt/doc/micros/...ega_a/index.htm - есть хороший перевод документации по ATxmega и в чостности написано, что возможны следующие конфигурации работы DMA:
из одной области памяти в другую
из области памяти в УВВ
из УВВ в область памяти
из одного УВВ в другое УВВ
Так вот, если в качестве источника (или назначения) выбрать увв, а еще конкретнее какой-либо внешний порт ввода вывода контроллера, связанный с внешней шиной (к примеру) FT245 (FT232) – как сформировать аппаратные сигналы чтения записи (RD, WR) для работы с FT245 (FT232)? В документации и в примере по работе с DMA на сайте ATMEL ответа на данный вопрос не нашел. Похоже DMA работает только с внутренними устройствами увв, типа АЦП и т.д., что не очень интересно.
MDD
Цитата(Склихасовский @ Apr 2 2010, 06:48) *
3.292 v xmega
5.0 - мега
разница амплитуд более чем в 5-6 раз


Сравнил с мегой16, кварцы одинаковые. Так и есть, разница на 16МГц раз в 6. Абсолютные цифры назвать не берусь, сейчас под рукой только осциллограф с полосой в 10МГц. Тем не менее, поводов для беспокойства работа устройства на Хмеге у меня не вызывает. Правда, в плане электромагнитных помех это устройство эксплуатируется в достаточно комфортных условиях (батарейное питание и т.д.)
А вот для какого-нибудь индустриального применения наверное действительно следовало бы взять кварц с частотой пониже.

Цитата(vav618 @ Apr 3 2010, 08:07) *
Так вот, если в качестве источника (или назначения) выбрать увв, а еще конкретнее какой-либо внешний порт ввода вывода контроллера, связанный с внешней шиной (к примеру) FT245 (FT232) – как сформировать аппаратные сигналы чтения записи (RD, WR) для работы с FT245 (FT232)?

DMA точно работает с ОЗУ. Старшие Хмеги умеют работать с внешним ОЗУ(с формированием стробов). Наверное можно попробовать подсунуть FTxxx в качестве ячейки внешней ОЗУ.
V_G
Цитата(vav618 @ Apr 3 2010, 16:07) *
Так вот, если в качестве источника (или назначения) выбрать увв, а еще конкретнее какой-либо внешний порт ввода вывода контроллера, связанный с внешней шиной (к примеру) FT245 (FT232) – как сформировать аппаратные сигналы чтения записи (RD, WR) для работы с FT245 (FT232)? В документации и в примере по работе с DMA на сайте ATMEL ответа на данный вопрос не нашел. Похоже DMA работает только с внутренними устройствами увв, типа АЦП и т.д., что не очень интересно.

Если вы работаете с FT232 по последовательному порту (UART), то для приема в качестве регистра-источника указываете USARTXX_DATA с побайтной передачей в буфер приемника по флагу RXCIF. Для передачи в качестве регистра назначения указываете USARTXX_DATA с побайтной передачей из буфера передатчика по флагу DREIF.
Чисто с внешним параллельным портом с сигналами чтения-записи (RD, WR) DMA работать не будет, не предназначен он для формирования временных диаграмм. А где в FT232 параллельный порт?
Konstantin Ilichev
Уважаемые коллеги!

Каково ваше мнение - можно ли уже применять XMEGA A1 с шиной внешней памяти
или эти кристаллы ещё сырые???

И есть ли информация, когда XMEGA получит статус MASS PRODUCTION ???
Пока на сайте Atmel только "Introducing".

А то я собрался переходить от любимой MEGA64 на что-то новое из 8/16-битников.
Первым шагом стал переход на MEGA640 - нужны были 4 UARTa.
V_G
С А1 не работал. А что, очень нужна внешняя шина?
A4 в моих задачах считаю отработанной штукой. Но ведь всего не пробовал...
vav618
Цитата
А где в FT232 параллельный порт?
Да конечно, в FT232 нет параллельного порта. Имеется в виду работа только с FT245.
_Артём_
Цитата из errat-ы на xmega256A3:
Цитата
6. Writing EEPROM or Flash while reading any of them will not work
The EEPROM and Flash cannot be written while reading EEPROM or Flash, or while executing
code in Active mode.


Нужно ли понимать так, что после запуска записи в EEPROM нудо уходить в sleep?
V_G
Цитата(_Артём_ @ Apr 5 2010, 03:23) *
Нужно ли понимать так, что после запуска записи в EEPROM нудо уходить в sleep?

Зачем в слип-то? Перед записью вы обязаны проверить флаг готовности NVM, например, вызвав следующую п/п:
CODE
_WAIT_FOR_SPM:
LDS r17,NVM_STATUS
ANDI r17,NVM_NVMBUSY_bm
BRNE _WAIT_FOR_SPM
RET

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

Про то, что не будет писать в Active mode - или неполная цитата, или ошибка в эррате, т.к. по смыслу это - чушь. У меня (правда на А4) все работает, и эрраты на А3 я не смотрю.
_Артём_
Полный текст из errat-ы
Цитата
6. Writing EEPROM or Flash while reading any of them will not work
The EEPROM and Flash cannot be written while reading EEPROM or Flash, or while executing
code in Active mode.
Problem fix/Workaround
Enter IDLE sleep mode within 2.5 uS (Five 2 MHz clock cycles and 80 32 MHz clock cycles)
after starting an EEPROM or flash write operation. Wake-up source must either be
EEPROM ready or NVM ready interrupt. Alternatively set up a Timer/Counter to give an
overflow interrupt 7 mS after the erase or write operation has started, or 13 mS after atomic
erase-and-write operation has started, and then enter IDLE sleep mode.
V_G
Да, этта глюк...
Слава богу, его в А4 нет. Атмел, видать, рекомендует, как обходиться с уже глючными процами. Как джентльмены, они должны либо прекратить выпуск серии A3, либо исправить, пообещав бонусы сдатчикам глючных девайсов.
МП41
Надо посматривать в сторону большой внешней I2C EEPROM-памяти...
V_G
Цитата(МП41 @ Apr 6 2010, 00:19) *
Надо посматривать в сторону большой внешней I2C EEPROM-памяти...

Ну, кому сколько надо... Есть и SPI, правда, уже флэш. Зато на 2,4,8М.
Duhas
на днях перестала видеться Xmega128A3.. после безуспешной (по не понятным мне пока причинам ) попытки завести уарт я лег спать.. с утра приехав в универ со всем добром.. хмегу дракон больше не видит.. хоть плата скорее макетка чем плата - но все прозвонил, питание проверил.. все ок... что могло ее убить - ума не приложу.. с мегами такого не бывало.. что я с ними только не делал...
V_N
Была такая проблема . Правда Xmega128А1 запаял на макетку флюса не пожалел тактируется от внутреннего генератора подключил к программатору читается программируется через день не читается и не програмируется
Порядком помучился в конце поднял ее с макетки хорошо промыл запаял снова все заработало .
Duhas
хм.. ну флюс там был.. ЛТИ120.. попробую сдуть за заново поставить..
Vasily_
ЛТИ-120 – активный флюс, предназначенный для пайки оксидированных деталей из медных сплавов без предварительной зачистки (меди и её сплавов, оцинкованных изделий, нержавеющих сплавов, нихрома и др.)

Паять таким флюсом электронику, Круто, что еще можно сказать.
Duhas
читаем этикетку:
применение: пайка элементов радиомонтажа, печатных плат, углеродистых сталей, цинка легкосплавными припоями.

состав: канифоль сосновая, спирт, активаторы.

далеко не первый чип паяный этим флюсом.. хотя я его и смывал спиртом...
Petka
Цитата(Duhas @ Apr 10 2010, 14:14) *
....
активаторы.
... хотя я его и смывал спиртом...

лучше сначала бензином, потом спиртом, потом мылом с водой щёточкой пройтись тщательно по всем контактам и то даже это не гарантирует смывку флюса из под корпусов микросхем и пассива.
МП41
Интересно, а будут ли работать винстаровские или аналогичные индикаторы 16х2 с Xmega, если индикатор питать штатными 5В, но управляя уровнями 3.3В? Неохота ставить преобразователь уровней или искать индикатор с 3В питанием.
Qwertty
Цитата(МП41 @ Apr 11 2010, 01:18) *
Интересно, а будут ли работать винстаровские или аналогичные индикаторы 16х2 с Xmega, если индикатор питать штатными 5В, но управляя уровнями 3.3В?

У HD44780 при 5В питании логическая 1 >= 2.2В Так что работать должно, но есть еще целый зоопарк аналогов. А у них может быть что угодно с уровнями.
V_G
И в обратную сторону резистор со стабилитрончиком поставить. У меня так xmega с max232 работает.
oll
Цитата(МП41 @ Apr 11 2010, 04:18) *
Интересно, а будут ли работать винстаровские или аналогичные индикаторы 16х2 с Xmega, если индикатор питать штатными 5В, но управляя уровнями 3.3В? Неохота ставить преобразователь уровней или искать индикатор с 3В питанием.

LPC2103 (3.6В) работает.
Leonmezon
Возникла задача получения точного прерывания на Xmege по времени. Использую таймер с соответствующим счетом от кварца Crystal: 14.7456Mhz с умножением на PLL=2 т.е. частота тактирования 29491200 Гц, как откалибровать таймер?
Вот код: (сейчас все работает, но хочется повысить точность (желательно программно, т.е. не делать отдельно макетку для точного определения частоты кварца).
Код
//ICC-AVR application builder  
// Target : ATxmega128A1
/// Crystal: 14.7456Mhz

#include <ioxm128A1v.h>
#include <AVRdef.h>

// Прерывание по окончанию счета
#pragma interrupt_handler iv_TCE1_OVF_isr:54
void iv_TCE1_OVF_isr(void)
{
TCE1.CTRLA=0x00; // stop Timer 1 порта Е
TCE1.CNT.i=0x8F80;   // установка значения для счета
flag_rs232=1;
TCE1.CTRLA|=0x07; //start Timer 1 порта Е
}

//TIMER1 initialize - prescale: 1,  actual value:  1,000 Sec (0,0%)
// Тактовая частота таймера 29491200 Гц
//Деление на 1024
// Установка для счета  0x8F80
void timerE1_init(void)
{
TCE1.CTRLA=0x00; // stop Timer 1 порта Е
TCE1.CNT.i=0x8F80;   // установка значения для счета  
TCE1.INTCTRLA = 0x01; // Разрешение прерывания по переполнению - уровень низкий.
TCE1.CTRLA|=0x07; //start Timer 1 порта Е
}

void clock (void)// Функция установки тактирования от кварцевого генератора с умножением частоты в 2 раза
{
//Настраиваем тактирование
//Кварц 16МГц, умножение на 2
OSC.XOSCCTRL=0xc3; //Кварц(12-16),16К циклов (сb) или 256К -  (с3)
OSC.CTRL|=0x08; //Включаем кварцевый генератор
do{} while ((OSC.STATUS & 0x08)==0); //ожидаем готовности кв. генератора
OSC.PLLCTRL=0xc2;// PLL от кварца, К=2
OSC.CTRL|=0x10;//Включаем PLL
do{} while ((OSC.STATUS & 0x10)==0); //Ожидаем готовности PLL
//переключаемся на тактирование от PLL
asm ("ldi r16,0xd8");
asm ("ldi r17,0x04");
asm ("out 0x34,r16");
asm ("sts 64,r17");
OSC.CTRL&=~BIT(0); //выключаем внутренний генератор на 2 МГц, работаем от внешнего кварца
}

void PMIC_SET (void)
{
    // Разрешение прерывания и установка какие прерывания разрешены
      CLI();
    PMIC.CTRL |= 0x07;   // Enable interrupts in the PMIC.
    SEI(); // Enable the global interrupt flag.

}
MDD
Не совсем понятен Ваш вопрос.
Вы хотите всегда иметь на на выходе интервал, ближайший к 1сек при любом заранее неизвестном кварце?
Leonmezon
Цитата(MDD @ Apr 20 2010, 18:22) *
Не совсем понятен Ваш вопрос.
Вы хотите всегда иметь на на выходе интервал, ближайший к 1сек при любом заранее неизвестном кварце?

Вопрос вот чем: у нас есть регистр TCE1.CNT.i=0x8F80; // установка значения для счета
в котором необходимо установить число для счета таймера и зависит оно от частоты кварца (которое в общем может отличаться от того что на нем написано - немного естественно).
Есть решение аппаратное: делаем макетку, ставим кварц и частотомером вымеряем частоты кварца точно и на ее основе получаем значение регистра TCE1.CNT.i - при котором прерывание будет происходить максимально близко к 1 сек (грубо говоря 1,00000001 сек).
Я же хочу используя возможности Xmege - получиться ту же точность без вымерения кварца - возможно ли это ? (Если да - то каким путем).
MDD
Вы получаете свою частоту 1Гц вначале за счет деления на 1024 в прескаллере, затем за счет деления на 28800 в самом счетчике.
Изменяя коэф деления на 1, например 27799, получим частоту 1.00003Гц
Можно объединить два таймера в один 32-х разрядный с общим коэф деления 29491200.
Тогда изменяя коэф деления на 1, например 29491199, получим частоту 1.00000003Гц. Т.е. шаг подстройки на три порядка более тонкий.
Правда сам я не пробовал соединять так таймеры, но даташит вроде такую возможность обещает.
Но в любом случае для оценки правильности интервала Вам потребуется какой-то внешний эталон частоты или времени.
Leonmezon
Цитата(MDD @ Apr 20 2010, 21:57) *
Вы получаете свою частоту 1Гц вначале за счет деления на 1024 в прескаллере, затем за счет деления на 28800 в самом счетчике.
Изменяя коэф деления на 1, например 27799, получим частоту 1.00003Гц
Можно объединить два таймера в один 32-х разрядный с общим коэф деления 29491200.
Тогда изменяя коэф деления на 1, например 29491199, получим частоту 1.00000003Гц. Т.е. шаг подстройки на три порядка более тонкий.
Правда сам я не пробовал соединять так таймеры, но даташит вроде такую возможность обещает.
Но в любом случае для оценки правильности интервала Вам потребуется какой-то внешний эталон частоты или времени.

Правильно я понимаю - частоту кварца можно узнать только внешне (программно из Xmege я ее не узнаю).
По таймерам понятно (если использовать 64-бит еще точнее можно сделать rolleyes.gif )
Не хочется макетку делать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.