Полная версия этой страницы:
ATxmega
Склихасовский
Mar 26 2010, 14:37
ну в смысле топологии пп - тут я спокоен..
присутствует и полигоны и сплошная металлизация с сеткой VIA со слоя на слой.
конденсаторы кварца к земле тоже по всем правилам развел.. все на кротчайших расстояниях...
ну вот такой казус...
причем партия плат около 12шт - и у всех разное поведение. кстати партия кристаллов 0922.
так что незнаю на что и думать...
буду ждать новых кварцев.
эти какие то нонейм (SM16.000) вот и все что я о них знаю....
ещё вот один момент: при включении, видно как программа начинает работать не сразу задержка 2-3 сек
ориентир :светодиод прием-передачи по RS485
очевидно генератор в готовность никак не войдет...
Я бы на Вашем месте толщину дорожек к кварцу увеличил до возможного, чтобы снизить индуктивность, а земли конденсаторов - соединил бы термальными отводами с полигоном.
Склихасовский
Mar 26 2010, 18:11
ну это из области мертвому припарка...
но учту..
правда не совем понял что такое термальный отвод с полигоном
есть картинка?
а я бы на вашем месте переделал бы плату... на 1 стороне мона лучше сделать... и почитал рекомендации всякие в т.ч. от атымела по разводке кварца...
вот пример.. пинаут для А3.. особо не гонял, но у меня при такой разводке всегда все ок...
Vasily_
Mar 26 2010, 19:03
Цитата(Склихасовский @ Mar 26 2010, 16:37)

ну в смысле топологии пп - тут я спокоен..
присутствует и полигоны и сплошная металлизация с сеткой VIA со слоя на слой.
конденсаторы кварца к земле тоже по всем правилам развел.. все на кротчайших расстояниях...
ну вот такой казус...
причем партия плат около 12шт - и у всех разное поведение. кстати партия кристаллов 0922.
так что незнаю на что и думать...
буду ждать новых кварцев.
эти какие то нонейм (SM16.000) вот и все что я о них знаю....
ещё вот один момент: при включении, видно как программа начинает работать не сразу задержка 2-3 сек
ориентир :светодиод прием-передачи по RS485
очевидно генератор в готовность никак не войдет...
Так емкости к кварцу подключать нельзя, глюки обеспечены! вам правильно советуют даже с картинками.
Склихасовский
Mar 27 2010, 05:07
Цитата(Vasily_ @ Mar 26 2010, 22:03)

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

Объясните , в чем не прав? ей богу не догоняю
Цитата(Duhas @ Mar 26 2010, 21:32)

а я бы на вашем месте переделал бы плату... на 1 стороне мона лучше сделать... и почитал рекомендации всякие в т.ч. от атымела по разводке кварца...
вот пример.. пинаут для А3.. особо не гонял, но у меня при такой разводке всегда все ок...
а в чем разница?
Цитата(МП41 @ Mar 26 2010, 23:15)

вот, а я после прочтения кучи литературы как раз отказался от такого варианта - там чтото вроде нельзя подключать конденсаторы к сплошной земле - нужно отдельным проводником
вот собственно
http://caxapa.ru/lib/emc_immunity.html - фигура6
Vasily_
Mar 27 2010, 20:36
Цитата
Объясните , в чем не прав? ей богу не догоняю
емкость нужно землить каждую отдельным проводником максимальной ширины или через перереход сразу на землю.
Цитата
вот, а я после прочтения кучи литературы как раз отказался от такого варианта - там чтото вроде нельзя подключать конденсаторы к сплошной земле - нужно отдельным проводником
Можно и отдельным проводником но тоже максимальной ширины и прошивается по всей длине переходн.. отв.. на землю.
Я сейчас делаю вот так и все работает отлично.
Нажмите для просмотра прикрепленного файла
для своей продукции атымел рекомендует землю от кондеров кварца подключать напрямую к земляной ноге контроллера расположенной рядом с XTAL1/2.. втыкаю кондеры в полигон вы даете возможность токам не относящимся кварцу бегать рядом и сбивать такт...
объяснение кривое, но я еще не проснулся )
Склихасовский
Mar 28 2010, 05:11
Цитата(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.. втыкаю кондеры в полигон вы даете возможность токам не относящимся кварцу бегать рядом и сбивать такт...
объяснение кривое, но я еще не проснулся )
Вот вот и я о том же посему и нарисовал отдельный проводник соединяющий емкости в одной точке
другое дело тут все говорят про ширину - здесь я не догнал...
про ширину - советуют не уменьшать ширину проводников, а сделать ее максимально возможной, хотя тех же .2 .3 мм я думаю более чем достаточно.. но можно и сделать в размер пада под ногу МК...
на счет подключения земли кондеров.. у меня вот так:
Нажмите для просмотра прикрепленного файлакрасным выделил путь тока от кондеров кварца... в моем случае еще к этой дорожке подключен кондер от аналогового питания, что в идеале нежелательно...
если подключить землю к полигону - то неизвестно какие токи добавятся на пути токов от кварца... в худших вариантах возможны пропуски тактов, случайные такты, сбой генерации...
вообще к как тут кроме меня советовали.. к полигонам подключают кондеры кварцев.. к примеру те же производители свичей Dlink.. но я бы не стал )
Склихасовский
Mar 28 2010, 09:49
я с вами согласен...
но вопрос про хмегу пока открыт
надеюсь на след недели привезут "фирменные" кварцы - тогда отпишусь
Цитата(Duhas @ Mar 28 2010, 07:22)

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

т.е. вы прдлагаете не использовать ее в качестве земли кварца?
Я-то как раз использовал. Но пришлось дополнительно позаботиться, чтобы аналоговая земля и "земля кварца" соединялись между собой в районе этой ноги.
скоро надо будет ПП рисать на А3.. учту ваши комментарии )
Склихасовский
Apr 1 2010, 11:08
Вообщем привезли мне кварцы "нормальные"
ситуация не изменилась
по сравнению с амплитудой генерации у обычной меги - земля и небо...
пока выход вижу это 8 мгц...
кому не лень, сравните величину амплитуд генераторов у мега и Xmega32.
А какое напряжение питания у меги и Xмеги?
Склихасовский
Apr 2 2010, 03:48
3.292 v xmega
5.0 - мега
разница амплитуд более чем в 5-6 раз
Цитата(Склихасовский @ 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 ;внешнее тактирование
Склихасовский
Apr 2 2010, 15:32
2 V__G
а это все к чему?
про 8 мгц кварца? так там и у меня все идеально...
Пардон, потерял нить беседы...
На 16 МГц размах 300 мВ от пика до пика, видны шумы. Возможно, щуп чего вносит, у xmegи более слаботочный выход, чем у просто меги.
Щуп проверил при замерах от эталонного ВЧ генератора на 8 и 16 МГц, все ОК.
Стабильность программы все равно не проверю.
Добрый день Уважаемые участники форума, возник такой вопрос по работе с 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 работает только с внутренними устройствами увв, типа АЦП и т.д., что не очень интересно.
Цитата(Склихасовский @ 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 в качестве ячейки внешней ОЗУ.
Цитата(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
Apr 3 2010, 14:09
Уважаемые коллеги!
Каково ваше мнение - можно ли уже применять XMEGA A1 с шиной внешней памяти
или эти кристаллы ещё сырые???
И есть ли информация, когда XMEGA получит статус MASS PRODUCTION ???
Пока на сайте Atmel только "Introducing".
А то я собрался переходить от любимой MEGA64 на что-то новое из 8/16-битников.
Первым шагом стал переход на MEGA640 - нужны были 4 UARTa.
С А1 не работал. А что, очень нужна внешняя шина?
A4 в моих задачах считаю отработанной штукой. Но ведь всего не пробовал...
Цитата
А где в FT232 параллельный порт?
Да конечно, в FT232 нет параллельного порта. Имеется в виду работа только с FT245.
_Артём_
Apr 4 2010, 16:23
Цитата из 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?
Цитата(_Артём_ @ 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 я не смотрю.
_Артём_
Apr 5 2010, 11:45
Полный текст из 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.
Да, этта глюк...
Слава богу, его в А4 нет. Атмел, видать, рекомендует, как обходиться с уже глючными процами. Как джентльмены, они должны либо прекратить выпуск серии A3, либо исправить, пообещав бонусы сдатчикам глючных девайсов.
Надо посматривать в сторону большой внешней I2C EEPROM-памяти...
Цитата(МП41 @ Apr 6 2010, 00:19)

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

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

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

Интересно, а будут ли работать винстаровские или аналогичные индикаторы 16х2 с Xmega, если индикатор питать штатными 5В, но управляя уровнями 3.3В? Неохота ставить преобразователь уровней или искать индикатор с 3В питанием.
LPC2103 (3.6В) работает.
Leonmezon
Apr 19 2010, 14:25
Возникла задача получения точного прерывания на 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.
}
Не совсем понятен Ваш вопрос.
Вы хотите всегда иметь на на выходе интервал, ближайший к 1сек при любом заранее неизвестном кварце?
Leonmezon
Apr 20 2010, 14:42
Цитата(MDD @ Apr 20 2010, 18:22)

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

Вы получаете свою частоту 1Гц вначале за счет деления на 1024 в прескаллере, затем за счет деления на 28800 в самом счетчике.
Изменяя коэф деления на 1, например 27799, получим частоту 1.00003Гц
Можно объединить два таймера в один 32-х разрядный с общим коэф деления 29491200.
Тогда изменяя коэф деления на 1, например 29491199, получим частоту 1.00000003Гц. Т.е. шаг подстройки на три порядка более тонкий.
Правда сам я не пробовал соединять так таймеры, но даташит вроде такую возможность обещает.
Но в любом случае для оценки правильности интервала Вам потребуется какой-то внешний эталон частоты или времени.
Правильно я понимаю - частоту кварца можно узнать только внешне (программно из Xmege я ее не узнаю).
По таймерам понятно (если использовать 64-бит еще точнее можно сделать

)
Не хочется макетку делать.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.