ViKo 1 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба Не пойму, сколько данных можно пересылать в этой "вспышке". Сколько хочешь, или 4 полуслова - это предел? Если много, то непонятно, как задается конец сигналов NE, NWE. Если всего ничего, так зачем такой режим нужен? Хотел приспособить для передачи конфигурационного потока в Xilinx Spartan. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба Ну вот, допустим, на странице 1571 RM на STM32F429: Цитата Single-burst transfer When the selected bank is configured in burst mode for synchronous accesses, if for example an AHB single-burst transaction is requested on 16-bit memories, the FSMC performs a burst transaction of length 1 (if the AHB transfer is 16-bit), or length 2 (if the AHB transfer is 32-bit) and de-assert the chip select signal when the last data is strobed. Clearly, such a transfer is not the most efficient in terms of cycles (compared to an asynchronous read). Nevertheless, a random asynchronous access would first require to reprogram the memory access mode, which would altogether last longer. Cross boundary page for Cellular RAM 1.5 Cellular RAM 1.5 does not allow burst access to cross the page boundary. The FSMC controller allows to split automatically the burst access when the memory page size is reached by configuring the CPSIZE bits in the FSMC_BCR1 register following the memory page size. Burst-режим здесь подразумевает, что на 16-битной (например) памяти можно неразрывно обратиться к 32-битному слову на чтение/запись, и после транзакции второго полуслова контроллер установит сигнал CS в неактивное состояние. Где Вы про 4 полуслова увидели? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба Что следует из приведенной цитаты касательно моих вопросов? Я её вдоль и поперек изучил еще до того, как создал тему. 4 полуслова видел на картинках в таком же RM, но на свой МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 178 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба 21 минуту назад, ViKo сказал: Что следует из приведенной цитаты касательно моих вопросов? Я её вдоль и поперек изучил еще до того, как создал тему. 4 полуслова видел на картинках в таком же RM, но на свой МК. Значит 4 полуслова максимум можете записать в burst-транзакции. Вы спросили о поведении сигналов, в том числе CS. В приведенном абзаце явно указано, что CS будет дергаться после записи последнего полуслова из двух (при записи 32-битных данных в 16-битную память). Для 4 полуслов, думаю, память деактивируется также после записи последнего полуслова. P.S. В конце концов, написать тестовый код и прицепиться логическим анализатором или осциллографом, да посмотреть, проблемно? В чем Вы хотите получить выгоду Burst-а при транзакциях в ПЛИС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 марта, 2019 Опубликовано 11 марта, 2019 · Жалоба А заголовок Single-burst transfer вас не смущает? Очевидно, возможна и не одиночная пересылка. Придет время, прицепимся, а пока ищем ответов у знатоков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Вот в памяти Winbond можно читать-писать много слов за раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Я чего не понимаю - что должно быть инициатором пересылки? Хочу передавать по DMA. А ну как не будет успевать автомат FSMC? Или опережать. Что там будет происходить, например, с CLK? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Прикинул-раскинул, не буду с этим Burst экспериментировать, обойдусь обычными чтением-записью по шине. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Integro 0 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба 22 hours ago, ViKo said: Если много, то непонятно, как задается конец сигналов NE, NWE. Поведение сигналов хорошо показано в Datasheet - production data, начиная со страницы 142 Вот пример записи, про ограничение на размер транзакции ничего не сказано: То-есть при записи должна играть комбинация NWE, NBL и NWAIT сигналов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 12 марта, 2019 Опубликовано 12 марта, 2019 · Жалоба Ага, про datasheet я и не вспомнил. Посмотрел картинки. Про длину записи всё так же ничего не сказано. Есть параметр: Bits 18:16 CPSIZE[2:0]: CRAM page size. These are used for CellularRAM™ 1.5 which does not allow burst access to cross the address boundaries between pages. When these bits are configured, the FSMC controller splits automatically the burst access when the memory page size is reached (refer to memory datasheet for page size). 000: No burst split when crossing page boundary (default after reset) 001: 128 bytes 010: 256 bytes 011: 512 bytes 100: 1024 bytes Others: reserved Из чего можно предположить, что размер пересылки не ограничен несколькими словами. Хотя, это не говорит однозначно. Может, просто на границе страницы 1 пересылка 2 слов разделяется на 2 по 1. Сейчас другое напрягает. Как успеть так присунуть данные на запись в FSMC, чтобы не опоздать к окончанию FSMC_CLK и не перезаписать еще не отправленные. Такты на всех картинках стоят, как вкопанные, не затягиваются. Если данные задержать, так NE окончится. И вообще, по DMA хочу перекидывать, но не программным триггером, а аппаратным с QSPI. Есть NWAIT, но FPGA его, понятное дело, не воспринимает. В общем, идея, похоже, не рабочая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться