Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM9G45, SMC: Asynchronous Page Mode read
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vugluskr
Конфигурация платы:
МК AT91SAM9G45 подключен к FPGA (Xilinx Spartan-6) к шине EBI1, связб осуществляется через SMC. На ФПГА заведены сигналы:
EBI1_A[25..1]
EBI1_DATA[15..0]
EBI1_NCS2
EBI1_NWE
EBI1_NRD
Пишет/читает нормально. Но вот заявленный режим Asynchronous Page Mode не поддерживается (см. документ doc6438.pdf page218).
Конфигурация контрольного регистра для CS2
Код
    AT91C_BASE_SMC->SMC_CTRL2  = (        AT91C_SMC_NWAITM_NWAIT_DISABLE
                                                              | AT91C_SMC_TDFEN
                                                                  | ((0x1 << 16) & AT91C_SMC_TDF)
                                  | AT91C_SMC_DBW_WIDTH_SIXTEEN_BITS
                                  | AT91C_SMC_PMEN
                                  | (0x3 << 28));//32 bytes burst READ


В поле PS данного регистра (биты 29..28) задается режим бурст чтения по 4, 8, 16, 32 байта. Соответственно на 16 битной шине это должно соответствовать 2,4,8,16 транзакциям чтения (смене адреса). Реальноже работает только PS = 0x0/0x1. Если задавать 0x2/0x3 - производится только 8 транзакций чтения.
На рисунке сигналы с шины, ловим ЧипСкопом внутри ФПГА, режим контроллера - считываем 32 байта (т.е. 16 транзакций):


соответствие сигналов на рисунке сигналам на шине процессора:
EBI1_A - addr
EBI1_DATA - bus_data
EBI1_NCS2 - bus_cs2
EBI1_NWE - bus_nwe
EBI1_NRD - bus_nrd

Это я что-то делаю не так или действительно что-то с контроллером

p.s. у меня не ES, а нормальная версия микроконтроллера
MrAlex
Читаете по полстраницы, поэтому и 8 транзакций.
vugluskr
Цитата(MrAlex @ Nov 15 2010, 18:18) *
Читаете по полстраницы, поэтому и 8 транзакций.


я пробовал читать и по 10 страниц - картина не меняется, или Вы хотите сказать, что
Код
memcpy(tmp,FPGA_CS2,64);

это пол страницы?
MrAlex
Это ж чисто софтверная функция, реализация зависит от компилятора, ничто не мешает ее в ассемблере посмотреть.
vugluskr
Цитата(MrAlex @ Nov 16 2010, 09:14) *
Это ж чисто софтверная функция, реализация зависит от компилятора, ничто не мешает ее в ассемблере посмотреть.


Причем здесь ассемблер? Вы вопрос и времянки видели?

305: memcpy(tmp,FPGA_CS2,32);
0x00300264 E3A02020 MOV R2,#0x00000020
0x00300268 E1A01005 MOV R1,R5
0x0030026C E1A00006 MOV R0,R6
0x00300270 EB0004EE BL __rt_memcpy_w(0x00301630)


соответственно
__rt_memcpy_w:
0x00301630 E92D4010 STMDB R13!,{R4,R14}
0x00301634 E2522020 SUBS R2,R2,#0x00000020
0x00301638 3A000005 BCC 0x00301654
0x0030163C E8B15018 LDMIA R1!,{R3-R4,R12,R14}
0x00301640 E2522020 SUBS R2,R2,#0x00000020
0x00301644 E8A05018 STMIA R0!,{R3-R4,R12,R14}
0x00301648 E8B15018 LDMIA R1!,{R3-R4,R12,R14}
0x0030164C E8A05018 STMIA R0!,{R3-R4,R12,R14}
0x00301650 2AFFFFF9 BCS 0x0030163C
0x00301654 E1B0CE02 MOVS R12,R2,LSL #28
0x00301658 28B15018 LDMCSIA R1!,{R3-R4,R12,R14}
0x0030165C 28A05018 STMCSIA R0!,{R3-R4,R12,R14}
0x00301660 48B10018 LDMMIIA R1!,{R3-R4}
0x00301664 48A00018 STMMIIA R0!,{R3-R4}
0x00301668 E8BD4010 LDMIA R13!,{R4,R14}
0x0030166C E1B0CF02 MOVS R12,R2,LSL #30
0x00301670 24913004 LDRCS R3,[R1],#0x0004
0x00301674 24803004 STRCS R3,[R0],#0x0004
0x00301678 012FFF1E BXEQ R14
MrAlex
Все данные идут через core, что и требовалось доказать.
The ARM926EJ-S processor performs all AHB accesses as single word, bursts of four words, or
bursts of eight words. Any ARM9EJ-S core request that is not 1, 4, 8 words in size is split into
packets of these sizes.
vugluskr
Цитата(MrAlex @ Nov 16 2010, 14:27) *
Все данные идут через core, что и требовалось доказать.
The ARM926EJ-S processor performs all AHB accesses as single word, bursts of four words, or
bursts of eight words. Any ARM9EJ-S core request that is not 1, 4, 8 words in size is split into
packets of these sizes.


мда, действительно - я не прав.... и как же сделать не через core?
MrAlex
Использовать DMA
vugluskr
Цитата(MrAlex @ Nov 16 2010, 18:27) *
Использовать DMA


мда.... вот этого я и не хотел слышать
Спсибо, за консультацию
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.