Diger67
Вторник 02 мая 2017 г. 1:18 утра
Многие люди используют STM32F103XXX. Но у него нет периферийного модуля QSPI. После прочтения документации по памяти (W25QXXX) мы попытались записать функции, которые позволяют вам читать информацию из нее, используя этот протокол. И вот что случилось. Если кто -то заинтересован в том, чтобы поместить источник, напишите. Недостатки включают неспособность использовать DMA и расширение памяти STM32 и использование в качестве общего пространства.
https: // youtu.be/yqsgpbkaefi
https: // youtu.be/yqsgpbkaefi
AG123
Вторник 2 мая 2017 г. 11:23 утра
Я думаю, что QSPI все еще полезен для устройств Flash SPI с использованием QSPI
казалось, что STM32 обладает поддержкой аппаратной поддержки QSPI, но только для конкретных устройств
http: // www.ул.com/content/ccc/resource/ ... 227538.PDF
Даже без DMA 4 -битные параллельные чтения могли бы увидеть довольно высокую пропускную способность
казалось, что STM32 обладает поддержкой аппаратной поддержки QSPI, но только для конкретных устройств
http: // www.ул.com/content/ccc/resource/ ... 227538.PDF
Даже без DMA 4 -битные параллельные чтения могли бы увидеть довольно высокую пропускную способность
victor_pv
Вторник 02 мая 2017 г. 14:17
Diger67 написал:Многие люди используют STM32F103XXX. Но у него нет периферийного модуля QSPI. После прочтения документации по памяти (W25QXXX) мы попытались записать функции, которые позволяют вам читать информацию из нее, используя этот протокол. И вот что случилось. Если кто -то заинтересован в том, чтобы поместить источник, напишите. Недостатки включают неспособность использовать DMA и расширение памяти STM32 и использование в качестве общего пространства.
https: // youtu.be/yqsgpbkaefi
https: // youtu.be/yqsgpbkaefi
Racemaniac
Вторник 02 мая 2017 г. 14:36
Есть ли какое -либо преимущество в использовании этого программного Quadspi iso просто аппаратный SPI?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Diger67
Вторник 02 мая 2017 г. 16:38
Реданьяк написал:Есть ли какое -либо преимущество в использовании этого программного Quadspi iso просто аппаратный SPI?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Racemaniac
Вторник 02 мая 2017 г. 16:45
Diger67 написал:Реданьяк написал:Есть ли какое -либо преимущество в использовании этого программного Quadspi iso просто аппаратный SPI?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
victor_pv
Вторник 02 мая 2017 г. 16:47
Diger67 написал:Реданьяк написал:Есть ли какое -либо преимущество в использовании этого программного Quadspi iso просто аппаратный SPI?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Обычно такие чипы памяти поддерживают как обычную SPI, так и Quad SPI, и я предполагаю, что вы все еще быстрее используете аппаратный SPI против программного QuadSPI.
или это чип, который имеет только Quadspi?
Diger67
Вторник 02 мая 2017 г. 16:51
Ух ты !! Извини. Сказал, что глупость, конечно, 18 Мбит / с. Но даже на этой скорости 4-проводной программной автобус выиграет в SPI.
Diger67
Вторник 2 мая 2017 г. 16:57
victor_pv написал:
Diger, не уверен, была ли это опечатка, но F103 может выполнять аппаратный SPI на 18 -мегабит, официально в SPI1 до 3, и до 36 Мбит неофициально в SPI1.
Вы имеете в виду ограничение флэш -памяти с 4 -мбитами?
Вы имеете в виду ограничение флэш -памяти с 4 -мбитами?
victor_pv
Вторник 02 мая 2017 г., 19:13
Diger67 написал:victor_pv написал:
Diger, не уверен, была ли это опечатка, но F103 может выполнять аппаратный SPI на 18 -мегабит, официально в SPI1 до 3, и до 36 Мбит неофициально в SPI1.
Вы имеете в виду ограничение флэш -памяти с 4 -мбитами?
Вы имеете в виду ограничение флэш -памяти с 4 -мбитами?
Diger67
Ср. 3 мая 2017 г. 2:26
Эта идея родилась случайно. Я подключил память к STM32F446 от QSPI, он не работал правильно. Как я узнал на доске, было неверно отметить два булавки. У меня не было никакого другого STM32 с QSPI Adware, мне пришлось написать программное обеспечение. Измерять скорость чтения не сложно. Материал, который вы предложили мне прочитать, он может оказаться чем -то полезным.
П.с.
Посмотрите на таблицу данных для этой памяти, и вы поймете, что реализовать на предлагаемом алгоритме QSPI будет практически невозможно.
П.с.
Посмотрите на таблицу данных для этой памяти, и вы поймете, что реализовать на предлагаемом алгоритме QSPI будет практически невозможно.
Diger67
Ср. 3 мая 2017 г. 11:58
Я проверил время чтения дампа до 256 байтов. При инициализации Systick в 1 мкс время чтения для программы QSPI составляет 1 мс.
uint8_t idData[3];
uint8_t dataBuff[0x100];
static __IO uint32_t sysTickCounter;
__IO uint32_t uwTick = 0;
float timeend;
uint32_t time;
uint32_t GetSysTick(void)
{
return uwTick;
}
void SysTick_Handler(void)
{
uwTick++;
}
int main(void)
{
SysTick_Config(SystemCoreClock/1000000); //1uS
Gpio_Init();
QSPIInit();
QSPI_Read_ID(READ_ID_CHIP, idData, 3);
time = GetSysTick();
QSPI_data_read(0, 0x00, 6, dataBuff);
timeend = (GetSysTick() - time)/1000 ;
while(1)
{
}
}