Программируемая логика - это не так уж и сложно. Разберемся вместе.
Ответить

чтение и запись в SDRAM

Вт май 10, 2016 10:01:59

Добрый день,

По нужде пробую после МК ПЛИСы, а именно DE0-NANo SOC (ALtera Cyclon V)
Задача считывать 8 каналов цифровых данных и записывать сразу в SDRAM.
Когда запись закончиться, надо будет перенести все данные на карточку памяти MicroSD.

ПЛИСы для меня новы. Подскажите как это правильней сделать?
Счетчик (хелло ворлд) делал. Правда почему то все сбивается от отключения питания.

Re: чтение и запись в SDRAM

Вт май 10, 2016 10:48:17

es131245 писал(а): Правда почему то все сбивается от отключения питания.

Для того, что-бы не сбивалось, надо во внешнюю память конфигурацию записать и указать ПЛИСине, откуда загрузиться.

Re: чтение и запись в SDRAM

Ср май 13, 2020 09:52:16

Добрый день!
Пытаюсь запустить SDRAM M12L16161 "ногодрыгом" на stm32f103.
Это вообще возможно осуществить, дрыгая ногами (CLK, CKE, CS, RAS, CAS, BA, A0-A10, WE, LDQM, UDQM) в ручном режиме,
в соответствии с временными диаграммами, приведёнными в даташите?
Есть ли ограничения минимальной частоты сигнала CLK и особые требования к его стабильности?
Может ли негативно влиять тот факт, что интервалы между положительными фронтами CLK постоянно меняются ("ногодрыг", а не по таймеру)?

Re: чтение и запись в SDRAM

Ср май 13, 2020 11:28:36

Пытаюсь запустить SDRAM M12L16161 "ногодрыгом" на stm32f103.

Я бы лучше взял какую-то QSPI PSRAM, типа такой. Учитывая простоту протокола по 4 бита может даже быстрее будет работать, чем твоя SDRAM по 16-ть. И F1 самая медленная серия при работе с портами, его бы заменил на F303, там ногодрыг наоборот самый быстрый.

Re: чтение и запись в SDRAM

Ср май 13, 2020 12:10:15

Да, походу не укладываюсь в CLK cycle time max = 1000 нс.
40 тактов уходит на то, чтобы один бит порта пнуть регистром GPIOx->BSRR или BRR !!! Как так то!?
А с помощью битбэндинга не быстрее будет?

Re: чтение и запись в SDRAM

Ср май 13, 2020 12:21:26

40 тактов там никак не может быть, разве что оптимизация выключена. В 4 такта я бы поверил...

Re: чтение и запись в SDRAM

Ср май 13, 2020 12:43:16

Я может смотрю не туда, или кнопки не те нажимаю))
В отладке встаю на строку (хочу например 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

Ср май 13, 2020 12:53:25

Тут все неправильно, начиная с того, что BSRR - это write-only регистр. И SysTick может тикать пока отладчик пытается пошагово команды выполнять, если хочется примерно замерять такты таким образом, то нужно использовать DWT->CYCCNT.

Re: чтение и запись в SDRAM

Ср май 13, 2020 14:00:40

Reflector, большое спасибо за DWT->CYCCNT, не знал про это. От SysTick такого не ожидал.
Получилось 20 тактов при нулевой оптимизации (при О2 снижается до 12 тактов).
А с BSRR что не так? Он вроде и нужен (в том числе) для того чтобы "атомарно" устанавливать один или несколько битов порта.

Re: чтение и запись в SDRAM

Ср май 13, 2020 14:06:18

А с BSRR что не так? Он вроде и нужен (в том числе) для того чтобы "атомарно" устанавливать один или несколько битов порта.

Именно, BSRR нужен чтобы не делать неатомарный RWM используя ODR, но читать из BSRR зачем? Работать то будет, хотя не гарантированно для новых серий, но медленнее.
Последний раз редактировалось Reflector Ср май 13, 2020 14:09:33, всего редактировалось 1 раз.

Re: чтение и запись в SDRAM

Ср май 13, 2020 14:09:29

Я вроде не читал...
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)

Re: чтение и запись в SDRAM

Ср май 13, 2020 14:12:47

Я вроде не читал...
Писал только GPIOA->BSRR |= 1<<15; (сорян, если туплю)

И как можно модифицировать BSRR не читая его значение? Ты же листинг приводил, там LDR/ORR/STR...

Re: чтение и запись в SDRAM

Ср май 13, 2020 14:24:10

Блин, точно, переделаю. Не судите строго, тот ещё самоучка))
Кстати, SDRAMка заработала, вопреки CLK cycle time max
Спасибо!

Re: чтение и запись в SDRAM

Ср май 13, 2020 22:10:00

Может проще было взять китайскую плату с STM32F407ZGT6, напаять на ее метровую статическую память и работать через FSMC? Это быстрее и проще и удобнее чем через ногодрыг.

Re: чтение и запись в SDRAM

Чт май 14, 2020 00:36:06

Да такая платка есть. Sram к ней докупать надо, а sdram полно валяется.
Со статической ещё успею наиграться.
Весь интерес был именно sdram и ногодрыгом

Re: чтение и запись в SDRAM

Чт май 14, 2020 01:50:39

pinchemierda писал(а):Весь интерес был именно sdram и ногодрыгом
Если спортивный интерес это одно, а если для практического применения - совсем другое.

Re: чтение и запись в SDRAM

Чт июл 22, 2021 15:11:03

Добрый день! Столкнулся с необъяснимым поведением микросхемы памяти 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? Может кто сталкивался с таким?

Re: чтение и запись в SDRAM

Сб июл 24, 2021 00:44:55

остаются в состоянии высокого импеданса.

Откуда такой вывод?

Re: чтение и запись в SDRAM

Ср июл 28, 2021 23:07:12

Gudd-Head писал(а):Откуда такой вывод?
Замедлил тактирование до 1 Гц и отлаживался по светодиодам.
Да уже разобрался с проблемой. Паяльник заземлил и новую микросхему припаял и всё ОК стало.

Re: чтение и запись в SDRAM

Пт июл 30, 2021 20:32:52

Обидно. Впрочем, ничего нового.
Ответить