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

 
 
> AT91SAM9260 + CompactFlash, При обращении по адреcу 0х50000000 получаем data abort
Liseev
сообщение Mar 23 2010, 16:13
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 99
Регистрация: 27-10-07
Из: СПб
Пользователь №: 31 797



Пытаюсь подцепить CF к AT91SAM9260. Схемы подключения практически не отличаются от рекомендованных в атмеловских мануалах.
Инициализирую железо, как описано во многих примерах:
- CS4 (CF_CS0) назначаю на SMC + CF
- настраиваю временные параметры для CS4,
- ноги, которые задействованы для подключения CF, назначаю на периферийные функции

После чего при любом обращении (чтение или запись) к адресному пространству, отведенному CS4, вываливаемся по Data Abort.
Что бы это могло значить?

Кусок кода:
CODE

#define CF_BASE_ADR 0x50000000
...
AT91C_BASE_CCFG->CCFG_EBICSA |= (1 << 4);
AT91C_BASE_SMC->SMC_SETUP4 = (0x03 << 0) // 3 cycle nWE setup length
| (0x03 << 8) // 3 cycle nCSWE setup length for write access
| (0x03 << 16) // 3 cycle nRE setup length
| (0x03 << 24) // 3 cycle nCSRD setup length for read access
;
AT91C_BASE_SMC->SMC_PULSE4 = (0x0F << 0) // 15 cycles nWR pulse length
| (0x11 << 8) // 17 cycles nCS pulse length in write access
| (0x0D << 16) // 13 cycles nRD pulse length
| (0x0F << 24) // 15 cycles nCS pulse length in read access
;
AT91C_BASE_SMC->SMC_CYCLE4 = (0x15 << 0) // 21 cycles for complete write length
| (0x12 << 16) // 18 cycles for complete read length
;
AT91C_BASE_SMC->SMC_CTRL4 = (1 << 0) // read operation is controlled by nRD
| (1 << 1) // write operation is controlled by nWE
| (1 << 4) // nWait is used
| (0 << 8) // bytes access is realized by the nBSx signals
| (1 << 12) // DBW: 16-bit access
| (2 << 16) // Add 2 cycles for data float time
| (0 << 20) // data float time is not optimized
| (0 << 24) // Page mode is not enabled
;

AT91C_BASE_PMC->PMC_PCER |= (1 << AT91C_ID_PIOC); // Разрешаем PIOC
AT91C_BASE_PIOC->PIO_ASR = 0x8710;
AT91C_BASE_PIOC->PIO_BSR = 0x00C0;
AT91C_BASE_PIOC->PIO_PDR = 0x87D0;

...

unsigned short Data;

Data = * ((unsigned short *)CF_BASE_ADR); // Здесь вываливается в Data Abort

...

Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 21:04
Рейтинг@Mail.ru


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