Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E
взаимодействие ARM<->FPGA
Vasily_A
Добавлено 27.02.2010 13:35 Редактировалось 27.02.2010 13:36
0
Сообщение: 1
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
с платой есть простейший пример подключение SRAM: 8данных, 19адресов, OE, WE и CS. все элементарно и понятно.
хочется писать-читать свои 8бит регистры (много регистров, штук 20) аналогично SRAM, просто используя те же 8данных, несколько адресов, OE, WE и отдельный CS (он очень удачно автором туда разведен)
вопросы такие:
1. как программно со стороны ARM будет это выглядеть?
2. что надо в программе сконфигурить, чтоб просто увидеть свои регистры как кусок памяти?
3. может этот CS уже к какой то области адресного пространства отнесен?
4. имеющаяся SRAM на fpga на каких адресах?

пример по работе с gpio через dev/mem из соседней ветки будет взят за основу...
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 27.02.2010 15:30 Редактировалось 27.02.2010 15:32 Сообщение: 2
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
1. как память и будет выглядеть
2. скорей всего достаточно включить нужный CS если он по умолчанию выключен
3. да - см.доку на процессор ;)
4. если это такой же пример как шел c LPC то память FPGA начинается прамо с 0x0 относительно своего куска этого CS

Я посылал пример на основе LPC-S3E там и FPGA прошивка была и драйвер для uClinux. Но видимо потерялся при переезде форума
Спуститься к концу Подняться к началу
Персональная информация
Vasily_A
Добавлено 27.02.2010 17:22 Сообщение: 3
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
может кто всеж подскажет:
1. какой адрес у fpga-шной sram?
2. какой адрес у дополнительного CS, и какой размер окна по умолчанию, и как это _Корректно_ изменить, не трогая образ линукса во флеше (пока не трогая, потом придется)?

вопрос этот, скорей к Павлу - общий ход действий многим понятен, но для автора платы все заметно проще :)

P.S. затребовать такты ожидания при доступе к sram плис у проца на данной плате судя по всему не получится (просто мне примерно 30мб/с желательно с sram внутрь fpga читать, и изредка в нее армом писать)?
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 27.02.2010 23:58 Редактировалось 28.02.2010 00:00 Сообщение: 4
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Ну так в чем сложность то? Берем схему и смотри какой CS заведен на ПЛИС. Оказывается NCS0. Идем в доку и видим, что CS0 привязан с 0x1000_0000 до 0x1FFF_FFFF.

А если нужно быстри читать/писать - просто выставляете тайминги у SMC контроллера что бы ПЛИС поспевал и все.
Спуститься к концу Подняться к началу
Персональная информация
Vasily_A
Добавлено 28.02.2010 11:19 Сообщение: 5
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
c F_CS0 стало понятно, спасибо!
F_CS0 = NCS0 с 0x1000_0000 до 0x1FFF_FFFF

но что с F_CS1 (это именно тот CS, который для свой переферии в плис предназначен)?
67 нога АРМ и 204 нога фпга
F_CS1 = PC5/A24/SPI1_NPCS1

он даже на EBI не заведен :(
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 28.02.2010 12:02 Сообщение: 6
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
но что с F_CS1 (это именно тот CS, который для свой переферии в плис предназначен)?
67 нога АРМ и 204 нога фпга
F_CS1 = PC5/A24/SPI1_NPCS1

он даже на EBI не заведен :(

И что Вас смущает, напрмер, данные будут начиная с 0x1000_0000, а регистры управления-состояния с 0х1100_0000 ...
Спуститься к концу Подняться к началу
Персональная информация
Vasily_A
Добавлено 28.02.2010 14:16 Редактировалось 28.02.2010 14:18 Сообщение: 7
Vasily_A
0

Пункты: 33
Регистрация: 17.02.2010
Ура! я А19 на FP142 сразу на схеме не разглядел :)
получается так: с 0x1000 0000 до 0x1007 FFFF адресуем SRAM,
дополнительно нализируя А19==0 по сравнению с примером, а то что при А19==1 и активным F_CS0 используем под свои нужды?

доступ так будет выглядеть?

#include <sys/mman.h>
int fd;
void *mapped_base;
fd=open("/dev/mem",O_RDWR|O_SYNC);
mapped_base=mmap(0,0x100000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000);
*(char*)(mapped_base+0x00000)= данные в sram[0]
*(char*)(mapped_base+0x80000)= данные в регистре[0]
Спуститься к концу Подняться к началу
Персональная информация
Felzinger
Добавлено 05.03.2010 22:34 Сообщение: 8
Felzinger
0

Пункты: 3672
Регистрация: 19.01.2010
Пол: Мужчина
Немогли бы выложить пример программы взаимодействия ARM и FPGA.
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 27.04.2010 00:10 Редактировалось 27.04.2010 00:11 Сообщение: 9
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Чего то у меня не вытанцовывается ARM-FPGA. Как SMC должен быть сконфигурирован? ПОнятно что в 8 бит, а что еще? У кого работает - покажите состояние 0xffffec00 - 0xffffecff.

А то у меня ерунда какая-то при доступе:

Код

U-Boot> nm 10000000
10000000: 000000d1 ? 1234
10000000: 000000d1 ? 12345678
10000000: 123412d1 ? 87654321
10000000: 876587d1 ? ffffffff
10000000: ffffffd1 ? 00000000
10000000: 000000d1 ? U-Boot>
Спуститься к концу Подняться к началу
Персональная информация
Strijar
Добавлено 27.04.2010 19:47 Сообщение: 10
Strijar
Ранг
5

Группа: Клиенты
Пункты: 1618
Регистрация: 21.04.2009
Пол: Мужчина
Проблема решилась установкой штатного BootSrap с диска. А вообще виноваты были тайминги. Надо:

FFFFEC0C <= 00000000
FFFFEC04 <= 03020101
FFFFEC00 <= 00000000
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-AT91SAM9XXXXX-S3E