[STM32F4] stm32f4 synchronized psram problem

[复制链接]
1669|3
 楼主| eittinfo 发表于 2019-5-18 08:37 | 显示全部楼层 |阅读模式
hi guys
i work on my stm32f4discovery based on stm32f407vgt6.
i have a problem with fsmc and synchronized psram mode.
i do some test and result is here:
first i config fsmc as Sync Nor flash accourding this below config:
  1.   FSMC_NORSRAM_TimingTypeDef Timing;

  2. /** Perform the SRAM1 memory initialization sequence
  3. */
  4. hsram1.Instance = FSMC_NORSRAM_DEVICE;
  5. hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
  6. /* hsram1.Init */
  7. hsram1.Init.NSBank = FSMC_NORSRAM_BANK1;
  8. hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
  9. hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_NOR;
  10. hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
  11. hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_ENABLE;
  12. hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
  13. hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
  14. hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
  15. hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
  16. hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
  17. hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
  18. hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
  19. hsram1.Init.WriteBurst = FSMC_WRITE_BURST_ENABLE;
  20. hsram1.Init.PageSize = FSMC_PAGE_SIZE_NONE;
  21. /* Timing */
  22. Timing.AddressSetupTime = 40;
  23. Timing.AddressHoldTime = 15;
  24. Timing.DataSetupTime = 255;
  25. Timing.BusTurnAroundDuration = 15;
  26. Timing.CLKDivision = 16;
  27. Timing.DataLatency = 12;
  28. Timing.AccessMode = FSMC_ACCESS_MODE_A;
  29. /* ExtTiming */

  30. if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
  31. {
  32. _Error_Handler(__FILE__, __LINE__);
  33. }
and to write data on fsmc bus use this code :
  1. uint16_t w[] = {
  2. 0xffff, 0x0, 0xffff, 0,
  3. 0xffff, 0, 0xffff, 0xAAAA};

  4. for (uint8_t uwIndex = 0; uwIndex < 8; uwIndex++)
  5. *(uint16_t *) ((uint32_t)0x60000000 + uwIndex * 2)=w[uwIndex];
and i get this result :


as above image you can see not anythings on fsmc_clk pin,but i expect have fsmc clock on this pin!!!!
so i test new fsmc config as below :
  1.   FSMC_NORSRAM_TimingTypeDef Timing;

  2. /** Perform the SRAM1 memory initialization sequence
  3. */
  4. hsram1.Instance = FSMC_NORSRAM_DEVICE;
  5. hsram1.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
  6. /* hsram1.Init */
  7. hsram1.Init.NSBank = FSMC_NORSRAM_BANK1;
  8. hsram1.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
  9. hsram1.Init.MemoryType = FSMC_MEMORY_TYPE_PSRAM;
  10. hsram1.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
  11. hsram1.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_ENABLE;
  12. hsram1.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
  13. hsram1.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
  14. hsram1.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
  15. hsram1.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
  16. hsram1.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
  17. hsram1.Init.ExtendedMode = FSMC_EXTENDED_MODE_DISABLE;
  18. hsram1.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
  19. hsram1.Init.WriteBurst = FSMC_WRITE_BURST_ENABLE;
  20. hsram1.Init.PageSize = FSMC_PAGE_SIZE_NONE;
  21. /* Timing */
  22. Timing.AddressSetupTime = 40;
  23. Timing.AddressHoldTime = 15;
  24. Timing.DataSetupTime = 255;
  25. Timing.BusTurnAroundDuration = 15;
  26. Timing.CLKDivision = 16;
  27. Timing.DataLatency = 12;
  28. Timing.AccessMode = FSMC_ACCESS_MODE_A;
  29. /* ExtTiming */

  30. if (HAL_SRAM_Init(&hsram1, &Timing, NULL) != HAL_OK)
  31. {
  32. _Error_Handler(__FILE__, __LINE__);
  33. }
and accourding new config you can see this resulte :

i have clock in fsmc_clk pin without any data on other pins and fsmc data bus!!!!
whats problem in my code!????
thx for your advice
coshi 发表于 2019-5-23 11:26 | 显示全部楼层
楼主想问什么问题
zljiu 发表于 2019-5-23 11:24 | 显示全部楼层
这个 英文看不太好
 楼主| eittinfo 发表于 2019-5-18 08:41 | 显示全部楼层
i upload result images again
config mode 1 ,fsmc as nor flash config:
fsmc_nor.png

config test 2, fsmc as sync psram config:
fsmc_psram_sync.png
thx
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部