Универсальность просто так не даётся... Если надо 20 и 40 МГц, то устройство становится сложным, среди 8-битных МК в паябельных корпусах вообще нет SPI быстрее 16 Мбод. Надо городить какой-нибудь stm32, может с четырехпроводным QSPI... В принципе, тоже можно уложиться в две микры, но по stm32 я не спец.
Другой подход - предусматривать какую-то синхронизацию / замедление, когда ориону приходится ожидать реакции устройства. Для высоких частот это вполне нормально, ибо у периферии всегда есть свои ограничения. Например, те же stm32 не успевают читать флэш-память программы даже на 80 МГц, поэтому там наворочены всякие кэширования...
Но синхронизация сильно бьёт в плане скорости по низкочастотным орионам... А делать разным код конечно плохо (хотя представляю, что будет с обычным кодом опроса клавы на 20 МГц орионе).
Читать W25Q128 можно легко и быстро с произвольного адреса. Но минимальный стираемый блок - 4096 байт (хотя на заранее стёртое место можно писать блоками по 256 байт).
Конечно можно (это же МК!) съэмулировать произвольную запись секторами по 512 байт... Но быстродействие записи снизится, а эти w25q128 вообще не быстрые на запись, даже при последовательной записи мне удавалось лишь 20-30 кб/с.
В этом плане куда лучше SDHC-карты, они быстрые и их можно писать секторами по 512 байт (другое дело, что там физический стираемый блок может быть побольше 32 кб и скорость при произвольной записи может просесть очень сильно).





Ответить с цитированием