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

|
С температурным сенсором ситуация начинает проясняться. Оказывается я малость протупил - кроме переключения мультиплексора этот сенсор еще надо включать специальным битом в регистре REFCTRL. А тут и ответ от Atmel подоспел: Цитата The internal temperature sensor is ideally linear from 0°K to the measured value in the production. The temperature reference value in the signature row which the measurement is done at is 85°C (358°K) but with an inaccuracy of +- 5 degrees. This deviation will result in some error when measuring at other temperatures. The measurement stored in the signature row is done in unsigned mode with 12-bit resolution and the internal 1V reference. The ADC setup has to be the same if this value is going to be used in the application. The stored value can be used for a 2-point calibration where the second point will be 0°K and the ADC value will be 0.
|
|
|
|
|
Jan 29 2010, 10:12
|
Группа: Новичок
Сообщений: 1
Регистрация: 4-02-08
Пользователь №: 34 729

|
Добрый день. Кто нибудь работал с таймерами. Я использую Xmegу 128A и появился вопрос. Когда включаю таймер/счетчик в режиме захвата(настраиваю на событие по появлению фронтов с пина), то удается работать только с каналом A. На остальных(B, C и D) прерываний не возникает. Может так и должно быть, но в datasheet ничего не нашел?
|
|
|
|
|
Jan 30 2010, 05:12
|

В поисках истины
  
Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923

|
Ничего не надо. Подключал на прямую. Код // Initialize EBI. EBI_Enable( EBI_SDDATAW_8BIT_gc, EBI_LPCMODE_ALE1_gc, EBI_SRMODE_NOALE_gc, EBI_IFMODE_3PORT_gc );
// Initialize SRAM EBI_EnableLPC ( &EBI.CS1, // Chip Select 1. EBI_CS_ASPACE_128KB_gc, // 128 KB Address space. (void *) SRAM_ADDR, // Base address. EBI_CS_SRWS_0CLK_gc );
|
|
|
|
|
Jan 30 2010, 07:03
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 7-05-06
Пользователь №: 16 862

|
Цитата(МП41 @ Jan 29 2010, 15:35)  Инвертор на ALE лепить не хочется. Кстати, на портах Хмеги есть такая фича, как Inverted I/O. Включается соответствующим битом в регистрах PINnCTRL. Если посмотреть на структурную схему портов, то она должна действовать и на альтернативные функции портов. Сейчас ради интереса проверил на COM порте - инвертирует! А ведь иногда это действительно удобно.
|
|
|
|
|
Feb 2 2010, 11:46
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Никак не могу понять, может ли EBI тактироваться тактовой частотой 64 MHz. С одной стороны в мануале на Xмегу на странице 268 написано: Цитата The EBI is clocked from the Fast Peripheral clock, running up to two times faster than the CPU and supporting speeds of up to 64 MHz. Но с другой стороны в даташите на XMega128A1 в эл. характеристиках на странице 69 написано, что ClkSYS 32 MHz максимум. И если взглянуть на схему распределения тактовых сигналов в мануале на Xмегу на странице 77, то видно, что единственный PLL стоит до ClkSYS и вроде бы больше неоткуда взять удвоенную частоту. И еще в мануале на Xмегу на странице 270 упоминается сигнал Clk2PER, которого нет на схеме дистрибуции клока. Мне интересно, Atmel просто перепутал и вместо ClkPER2 написал Clk2PER, или сигнал Clk2PER действительно существует, но просто нигде не описан?
|
|
|
|
|
Feb 3 2010, 08:01
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153

|
Всем доброго дня Начал юзать Xmegu. С портами проблем не возникло А вот с UART затык Привожу код Код #define CPU_FREQ 2000000 #define BAUD_RATE 9600 #define BRREG_VALUE 12
// definition for UART control #define UART_PORT PORTF #define UART_TX_PIN PIN7_bm #define BAUD_RATE_LOW_REG USARTF1.BAUDCTRLA #define UART_CONTROL_REG USARTF1.CTRLB #define ENABLE_TRANSMITTER_BIT USART_TXEN_bp #define ENABLE_RECEIVER_BIT USART_RXEN_bp #define UART_STATUS_REG USARTF1.STATUS #define TRANSMIT_COMPLETE_BIT USART_TXCIF_bp #define DATA_REG_EMPTY_BIT USART_DREIF_bp #define RECEIVE_COMPLETE_BIT USART_RXCIF_bp #define UART_DATA_REG USARTF1.DATA
/****************************************************************************** * Функция : * Описание : * Вх. параметры : * Возвр. значение : *****************************************************************************/ void UART_Init(void) { UART_PORT.DIRSET |= UART_TX_PIN; BAUD_RATE_LOW_REG = BRREG_VALUE; UART_CONTROL_REG = (1<<ENABLE_RECEIVER_BIT)| (1<<ENABLE_TRANSMITTER_BIT); } /****************************************************************************** * Функция : * Описание : * Вх. параметры : * Возвр. значение : *****************************************************************************/ void UART_Tx(u08 D) { UART_DATA_REG = D; while(!(UART_STATUS_REG &(1<<TRANSMIT_COMPLETE_BIT))); UART_STATUS_REG |= (1<<TRANSMIT_COMPLETE_BIT); } /****************************************************************************** * Функция : * Описание : * Вх. параметры : * Возвр. значение : *****************************************************************************/ u08 UART_Rx(void) { u08 ret=0; while(!(UART_STATUS_REG&(1<<RECEIVE_COMPLETE_BIT))); //while(bit_is_clear()); ret = UART_DATA_REG; return ret; }
int main(void) { u08 val=0; //PORTF.DIR = (1<<6) | (1<<7); //PORTF.OUT = (1<<6) | (1<<7); UART_Init(); for(;;) { val = UART_Rx(); if(val=='a') { UART_Tx('Y'); } else if(val=='A') { UART_Tx('N'); } //UART_Tx('*'); } } Прошиваю и получаю тиши Мож я не доконча вкулил мануал? Прошу помочь
|
|
|
|
|
Feb 3 2010, 10:06
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153

|
Цитата(MDD @ Feb 3 2010, 15:05)  USART работает нормально и по опросу, и по прерываниям. Как по мне, у Вас в инициализации не хватает установки регистра USARTx.CTRLC для задания протокола. Например, для асинхронного 8N1 там дожно быть 0x03. Спасибо
|
|
|
|
|
Feb 5 2010, 10:09
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 23-07-08
Из: Екатеринбург
Пользователь №: 39 153

|
Начал работать с EBI, и впал в ступор. Задумка следующая - прицепить циклок как внешкюю память По мануалу есть режим без использования адресной защелки ALE   По ногам получаеться следующее: PH0 WE PH1 RE PH2 ALE - не использую PH3 PH4 CS0/A16 PH5 CS1/A17 PH6 CS2/A18 PH7 CS3/A19 PJ0..PJ7 -> D0..D7 PR0..PR7 -> A0..A7/A8..A15 а вот с конфигурированием регистров встал... ALE должен использоваться всегда получаеться
|
|
|
|
|
Feb 5 2010, 11:05
|
Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057

|
Цитата(Зайцев Иван @ Feb 5 2010, 16:09)  Начал работать с EBI, и впал в ступор. Задумка следующая - прицепить циклок как внешкюю память а вот с конфигурированием регистров встал... ALE должен использоваться всегда получаеться Если ALE не использовать, то можно адресовать максимум 256 байт внешней SRAM. А у тебя SRAM какого размера?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|