реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
zksystem
сообщение Feb 25 2009, 12:12
Сообщение #1


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Посоветуйте недорогую память объемом 512Кбайт - 1Mбайт, которую можно подключить к STM32 посредством FSMC.

Цитата(zksystem @ Feb 25 2009, 15:05) *
Посоветуйте недорогую память объемом 512Кбайт - 1Mбайт, которую можно подключить к STM32 посредством FSMC.



Извиняюсь, плохо смотрел, в девките STM3210E-EVAL оказывается есть в схеме - IS61WV51216BLL-10MLI 512к x 16


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
MikePic
сообщение Feb 25 2009, 12:48
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 7-11-06
Пользователь №: 22 054



Вот только стоит IS61WV51216BLL-10MLI как чугунный мост angry.gif 256К x 16 от Гнусмаса на порядок дешевле
Go to the top of the page
 
+Quote Post
shytsko.v
сообщение Feb 17 2015, 21:43
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 13-01-15
Пользователь №: 84 565



Доброго времени суток, форумчане. Прошу помощи в таком вот вопросе. Имею набор разработчика Open407I-C, в нем есть модуль SRAM с микросхемой IS62WV12816BLL.
Решил освоить STemWin, заодно и подцепить SRAM. И сразу столкнулся с проблемой, три месяца пытаюсь решить ее - не выходит.
Суть такая: при записи во внешнюю SRAM записывется не только та ячейка, которую хочу записать, но и другая ячека с адресом + 0x100 или -0x100 от записываемого адреса (+ или - зависит от бита 8 адреса).
Напримет (использую банк 3, базовый адрес 0x68000000):
пишу по адресу 0x68000000, тем же значением записывается и 0x68000100
пишу по адресу 0x68000100, тем же значением записывается и 0x68000000
Пробовал выставлять максимальные тайминги и снижать частоту контроллера вплоть до 16МГц, не помогает.
Заказал другой модуль, на микросхеме IS62WV51216BLL, ведет себя аналогично.

Мой код инициализации
Код
  hsram3.Instance = FSMC_NORSRAM_DEVICE;
  hsram3.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
  hsram3.Init.NSBank = FSMC_NORSRAM_BANK3;
  hsram3.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
  hsram3.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM;
  hsram3.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
  hsram3.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
  hsram3.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
  hsram3.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
  hsram3.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
  hsram3.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
  hsram3.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
  hsram3.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
  hsram3.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
  hsram3.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
  /* Timing */
  Timing.AddressSetupTime = 15;
  Timing.AddressHoldTime = 15;
  Timing.DataSetupTime = 255;
  Timing.BusTurnAroundDuration = 15;
  Timing.CLKDivision = 16;
  Timing.DataLatency = 17;
  Timing.AccessMode = FSMC_ACCESS_MODE_A;

  HAL_SRAM_Init(&hsram3, &Timing, NULL);


Картинки
После записи по адресу 0x68000000
 Уменьшено до 88%
Прикрепленное изображение
1354 x 386 (47.07 килобайт)


После записи по адресу 0x68000100
 Уменьшено до 88%
Прикрепленное изображение
1360 x 395 (48.57 килобайт)


За ответы заранее спасибо

Сообщение отредактировал shytsko.v - Feb 17 2015, 21:45
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 17 2015, 22:01
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



А что, если на плате A8 (или A7?, там сдвиг адреса есть) постоянно закорочен на землю или питание? Чисто ошибка разводки.
Go to the top of the page
 
+Quote Post
shytsko.v
сообщение Feb 17 2015, 22:57
Сообщение #5





Группа: Новичок
Сообщений: 3
Регистрация: 13-01-15
Пользователь №: 84 565



Цитата(ViKo @ Feb 17 2015, 23:01) *
А что, если на плате A8 (или A7?, там сдвиг адреса есть) постоянно закорочен на землю или питание? Чисто ошибка разводки.

Спосибо. Так и есть, A7 закорочен на питание. Рядом с пином PF13 (A7) находится пин питания и между ними сопелька.
А ведь была такая мысль. Но подумал, если пин закорочен на землю или питание, на нем будет постоянно 0 или 1 и писаться будет в одну ячейку, пусть и не правильную. Выходит, что уровень на этом пине плавает в течение цикла записи, поэтому и пишет в две ячейки. А ведь нужно было всего-то мультиметром туда тыкнуть
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 17 2015, 23:31
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(shytsko.v @ Feb 18 2015, 01:57) *
Но подумал, если пин закорочен на землю или питание, на нем будет постоянно 0 или 1 и писаться будет в одну ячейку, пусть и не правильную. Выходит, что уровень на этом пине плавает в течение цикла записи, поэтому и пишет в две ячейки.

Нет, пишется всегда в 0x100, и читается всегда из 0x100. Хотите писать в 0x000, а читаете все равно из 0x100.
Что, на обеих платах по одинаковой сопле? blink.gif
Go to the top of the page
 
+Quote Post
shytsko.v
сообщение Feb 18 2015, 07:21
Сообщение #7





Группа: Новичок
Сообщений: 3
Регистрация: 13-01-15
Пользователь №: 84 565



Цитата(ViKo @ Feb 17 2015, 23:31) *
Нет, пишется всегда в 0x100, и читается всегда из 0x100. Хотите писать в 0x000, а читаете все равно из 0x100.
Что, на обеих платах по одинаковой сопле? blink.gif


Ну да, логично. Сопля на контроллере была. Теперь все работает заечательно. Спасибо

Сообщение отредактировал shytsko.v - Feb 18 2015, 07:22
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 17:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.02788 секунд с 7
ELECTRONIX ©2004-2016