roboforum.ru

Технический форум по робототехнике.

STM32 и КР580ВВ55 (i8255)

ARM7, ARM9, ARM11 etc.

STM32 и КР580ВВ55 (i8255)

Сообщение wg1973 » 11 янв 2019, 23:55

Контроллеры STM32 могу поддерживать внешнюю SRAM.
Можно ли вместо RAM подключить классическую 8-битную периферию типа КР580ВВ55 (i8255) или AY-3-8910 или Yamaha YM2149F?
Судя по диаграммам взаимодействия с чипами памяти проблем не видно, разве что кроме скорости/частоты доступа, но это решаемо. Так же будем отбрасывать старший байт данных. Декодирование адреса тоже не проблема.
Но не понятно есть ли какой то кеш для внешней памяти при обращении от CPU?

Есть у кого то такой опыт подключения?
wg1973
 
Сообщения: 2
Зарегистрирован: 11 янв 2019, 23:31

Re: STM32 и КР580ВВ55 (i8255)

Сообщение Angel71 » 13 янв 2019, 05:47

sram и stm32 бывают сильно разные. sram есть как минимум с парралельным интерфейсом и с spi.
если под "поддерживать внешнюю SRAM" подразумевается парралельная память и отражение её в адресное пространство (прозрачно чтение/запись), то это к fsmc (а он не во всех есть + отличается по своим возможностям от чипа к чипу). им же с некоторой внешней переферией работать можно. изучите в общем, что это за блок, есть/нет он в нужном вам чипе и т.д.
sram с spi интерфейсом всё очень просто - spi как spi. 1..n байт записывать/считывать хоть по dma, хоть без.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: STM32 и КР580ВВ55 (i8255)

Сообщение wg1973 » 13 янв 2019, 21:37

Про SPI речь даже не идет, только parllel bus. См. речь идет про i8255
Если взять для примера STM32F4(7) то в "старших" моделях есть Flexible memory controller (FMC). Он поддерживает static RAM. Также есть множество примеров по подключению RAM-map LCD контролеров. И вроде как бы все работает. Но одно дело когда обращаться к памяти (даже когда это video-ram) и другое когда это порты ввода вывода. Не будет ли какого кэширования?
Для примера делаем:
write_ram base+0, const0
write_ram base+2, const2
write_ram base+1, const1
Для памяти и даже для видео-памяти это не критично если будет закешировано и преобразовано в:
write_ram base+0, const0
write_ram base+1, const1
write_ram base+2, const2
а вот для портов I/O это важно.
И становится совсем не ясно что будет с периферией где надо делать последовательную запись по одному адресу нескольких значений.
Вопрос кто то подключал parllel bus периферию как external memory к STM32?
wg1973
 
Сообщения: 2
Зарегистрирован: 11 янв 2019, 23:31

Re: STM32 и КР580ВВ55 (i8255)

Сообщение Angel71 » 13 янв 2019, 22:21

для настройки и проверки что на пинах происходит, есть такая очень полезная штука как даталоггер. не подходит или не можете разобраться/настроить, смотрите, на сколько подходит работа через дма (параллельнаое синхронное чтени-запись). никто не запрещает с портами работать и без всяких дма и контроллеров памяти.
Последний раз редактировалось Angel71 14 янв 2019, 19:40, всего редактировалось 1 раз.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: STM32 и КР580ВВ55 (i8255)

Сообщение Aseris » 14 янв 2019, 19:41

Кеша через FMC / FSMC нет.
Eсли работать с медленной переферией проще через GPIO делать.
Либо кеш ручками делать.

Добавлено спустя 5 минут 25 секунд:
Обычно то что описано в примере делает оптимизатор в компиляторе при записи в "память", ему нужно популярно обьяснять что область памяти есть _IO/volatile.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python


Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron