чтение и запись в SDRAM
чтение и запись в SDRAM
Добрый день,
По нужде пробую после МК ПЛИСы, а именно DE0-NANo SOC (ALtera Cyclon V)
Задача считывать 8 каналов цифровых данных и записывать сразу в SDRAM.
Когда запись закончиться, надо будет перенести все данные на карточку памяти MicroSD.
ПЛИСы для меня новы. Подскажите как это правильней сделать?
Счетчик (хелло ворлд) делал. Правда почему то все сбивается от отключения питания.
По нужде пробую после МК ПЛИСы, а именно DE0-NANo SOC (ALtera Cyclon V)
Задача считывать 8 каналов цифровых данных и записывать сразу в SDRAM.
Когда запись закончиться, надо будет перенести все данные на карточку памяти MicroSD.
ПЛИСы для меня новы. Подскажите как это правильней сделать?
Счетчик (хелло ворлд) делал. Правда почему то все сбивается от отключения питания.
- Реклама
-
Stewart
- Открыл глаза
- Сообщения: 76
- Зарегистрирован: Вт апр 05, 2016 19:00:29
- Откуда: Ростовская обл. Новочеркасск
Re: чтение и запись в SDRAM
Для того, что-бы не сбивалось, надо во внешнюю память конфигурацию записать и указать ПЛИСине, откуда загрузиться.es131245 писал(а): Правда почему то все сбивается от отключения питания.
Ох уж эти сказки...
Ох уж эти сказочники...
Ох уж эти сказочники...
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Добрый день!
Пытаюсь запустить SDRAM M12L16161 "ногодрыгом" на stm32f103.
Это вообще возможно осуществить, дрыгая ногами (CLK, CKE, CS, RAS, CAS, BA, A0-A10, WE, LDQM, UDQM) в ручном режиме,
в соответствии с временными диаграммами, приведёнными в даташите?
Есть ли ограничения минимальной частоты сигнала CLK и особые требования к его стабильности?
Может ли негативно влиять тот факт, что интервалы между положительными фронтами CLK постоянно меняются ("ногодрыг", а не по таймеру)?
Пытаюсь запустить SDRAM M12L16161 "ногодрыгом" на stm32f103.
Это вообще возможно осуществить, дрыгая ногами (CLK, CKE, CS, RAS, CAS, BA, A0-A10, WE, LDQM, UDQM) в ручном режиме,
в соответствии с временными диаграммами, приведёнными в даташите?
Есть ли ограничения минимальной частоты сигнала CLK и особые требования к его стабильности?
Может ли негативно влиять тот факт, что интервалы между положительными фронтами CLK постоянно меняются ("ногодрыг", а не по таймеру)?
Re: чтение и запись в SDRAM
[uquote="pinchemierda",url="/forum/viewtopic.php?p=3840802#p3840802"]Пытаюсь запустить SDRAM M12L16161 "ногодрыгом" на stm32f103.[/uquote]
Я бы лучше взял какую-то QSPI PSRAM, типа такой. Учитывая простоту протокола по 4 бита может даже быстрее будет работать, чем твоя SDRAM по 16-ть. И F1 самая медленная серия при работе с портами, его бы заменил на F303, там ногодрыг наоборот самый быстрый.
Я бы лучше взял какую-то QSPI PSRAM, типа такой. Учитывая простоту протокола по 4 бита может даже быстрее будет работать, чем твоя SDRAM по 16-ть. И F1 самая медленная серия при работе с портами, его бы заменил на F303, там ногодрыг наоборот самый быстрый.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Да, походу не укладываюсь в CLK cycle time max = 1000 нс.
40 тактов уходит на то, чтобы один бит порта пнуть регистром GPIOx->BSRR или BRR !!! Как так то!?
А с помощью битбэндинга не быстрее будет?
40 тактов уходит на то, чтобы один бит порта пнуть регистром GPIOx->BSRR или BRR !!! Как так то!?
А с помощью битбэндинга не быстрее будет?
- Реклама
Re: чтение и запись в SDRAM
40 тактов там никак не может быть, разве что оптимизация выключена. В 4 такта я бы поверил...
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Я может смотрю не туда, или кнопки не те нажимаю))
В отладке встаю на строку (хочу например PA15 сделать HIGH) GPIOA->BSRR |= 1<<15;
Открываю Systick, записываю текущее значение в калькулятор, шагаю на следующую строчку.
В Systick уже новое значение (меньше предыдущего, т.к. считает назад). По разнице определяю количество тактов (40).
Тактирование Systick 72MHz, оптимизация 0.
Ассемблер:
0x08000880 480A LDR r0,[pc,#40] ; @0x080008AC
0x08000882 6800 LDR r0,[r0,#0x00]
0x08000884 F4404000 ORR r0,r0,#0x8000
0x08000888 4908 LDR r1,[pc,#32] ; @0x080008AC
0x0800088A 6008 STR r0,[r1,#0x00]
В отладке встаю на строку (хочу например PA15 сделать HIGH) GPIOA->BSRR |= 1<<15;
Открываю Systick, записываю текущее значение в калькулятор, шагаю на следующую строчку.
В Systick уже новое значение (меньше предыдущего, т.к. считает назад). По разнице определяю количество тактов (40).
Тактирование Systick 72MHz, оптимизация 0.
Ассемблер:
0x08000880 480A LDR r0,[pc,#40] ; @0x080008AC
0x08000882 6800 LDR r0,[r0,#0x00]
0x08000884 F4404000 ORR r0,r0,#0x8000
0x08000888 4908 LDR r1,[pc,#32] ; @0x080008AC
0x0800088A 6008 STR r0,[r1,#0x00]
Re: чтение и запись в SDRAM
Тут все неправильно, начиная с того, что BSRR - это write-only регистр. И SysTick может тикать пока отладчик пытается пошагово команды выполнять, если хочется примерно замерять такты таким образом, то нужно использовать DWT->CYCCNT.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Reflector, большое спасибо за DWT->CYCCNT, не знал про это. От SysTick такого не ожидал.
Получилось 20 тактов при нулевой оптимизации (при О2 снижается до 12 тактов).
А с BSRR что не так? Он вроде и нужен (в том числе) для того чтобы "атомарно" устанавливать один или несколько битов порта.
Получилось 20 тактов при нулевой оптимизации (при О2 снижается до 12 тактов).
А с BSRR что не так? Он вроде и нужен (в том числе) для того чтобы "атомарно" устанавливать один или несколько битов порта.
Re: чтение и запись в SDRAM
[uquote="pinchemierda",url="/forum/viewtopic.php?p=3840895#p3840895"]А с BSRR что не так? Он вроде и нужен (в том числе) для того чтобы "атомарно" устанавливать один или несколько битов порта.[/uquote]
Именно, BSRR нужен чтобы не делать неатомарный RWM используя ODR, но читать из BSRR зачем? Работать то будет, хотя не гарантированно для новых серий, но медленнее.
Именно, BSRR нужен чтобы не делать неатомарный RWM используя ODR, но читать из BSRR зачем? Работать то будет, хотя не гарантированно для новых серий, но медленнее.
Последний раз редактировалось Reflector Ср май 13, 2020 14:09:33, всего редактировалось 1 раз.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Я вроде не читал...
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)
Re: чтение и запись в SDRAM
[uquote="pinchemierda",url="/forum/viewtopic.php?p=3840898#p3840898"]Я вроде не читал...
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)[/uquote]
И как можно модифицировать BSRR не читая его значение? Ты же листинг приводил, там LDR/ORR/STR...
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)[/uquote]
И как можно модифицировать BSRR не читая его значение? Ты же листинг приводил, там LDR/ORR/STR...
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Блин, точно, переделаю. Не судите строго, тот ещё самоучка))
Кстати, SDRAMка заработала, вопреки CLK cycle time max
Спасибо!
Кстати, SDRAMка заработала, вопреки CLK cycle time max
Спасибо!
Re: чтение и запись в SDRAM
Может проще было взять китайскую плату с STM32F407ZGT6, напаять на ее метровую статическую память и работать через FSMC? Это быстрее и проще и удобнее чем через ногодрыг.
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Да такая платка есть. Sram к ней докупать надо, а sdram полно валяется.
Со статической ещё успею наиграться.
Весь интерес был именно sdram и ногодрыгом
Со статической ещё успею наиграться.
Весь интерес был именно sdram и ногодрыгом
Re: чтение и запись в SDRAM
Если спортивный интерес это одно, а если для практического применения - совсем другое.pinchemierda писал(а):Весь интерес был именно sdram и ногодрыгом
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Добрый день! Столкнулся с необъяснимым поведением микросхемы памяти SDRAM HY57V561620FT. Прошу помощи в понимании происходящего.
При подачи команды чтения, после задержки CAS Latency выводы данных DQ должны переходить из Hi-Z в состояние выхода данных (+3.3В либо GND). Так и происходит с выводами DQ(0,2,4,6,9,11,13,15), а вот выводы DQ(1,3,5,7,8,10,12,14) остаются в состоянии высокого импеданса.
Подумал, может быть микросхема не исправна. Перепаял её на другую, тоже самое. Проверил разводку питания микросхемы, питание и земля корректно подведены к выводам VDD, VDDQ, VSS и VSSQ. При пайке не перегревал особо. Если дело всё таки в паяльнике, то смущает, что две микросхемы от разных производителей ведут себя одинаково. И почему страдает именно эта половина выводов DQ? Может кто сталкивался с таким?
При подачи команды чтения, после задержки CAS Latency выводы данных DQ должны переходить из Hi-Z в состояние выхода данных (+3.3В либо GND). Так и происходит с выводами DQ(0,2,4,6,9,11,13,15), а вот выводы DQ(1,3,5,7,8,10,12,14) остаются в состоянии высокого импеданса.
Подумал, может быть микросхема не исправна. Перепаял её на другую, тоже самое. Проверил разводку питания микросхемы, питание и земля корректно подведены к выводам VDD, VDDQ, VSS и VSSQ. При пайке не перегревал особо. Если дело всё таки в паяльнике, то смущает, что две микросхемы от разных производителей ведут себя одинаково. И почему страдает именно эта половина выводов DQ? Может кто сталкивался с таким?
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: чтение и запись в SDRAM
[uquote="pinchemierda",url="/forum/viewtopic.php?p=4064567#p4064567"]остаются в состоянии высокого импеданса.[/uquote]
Откуда такой вывод?
Откуда такой вывод?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
-
pinchemierda
- Встал на лапы
- Сообщения: 130
- Зарегистрирован: Ср мар 22, 2017 09:52:52
Re: чтение и запись в SDRAM
Замедлил тактирование до 1 Гц и отлаживался по светодиодам.Gudd-Head писал(а):Откуда такой вывод?
Да уже разобрался с проблемой. Паяльник заземлил и новую микросхему припаял и всё ОК стало.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: чтение и запись в SDRAM
Обидно. Впрочем, ничего нового.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]


