QSPI in STM32 || Write and Read || N25Q

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024

ความคิดเห็น • 49

  • @antoinebrunel8892
    @antoinebrunel8892 3 ปีที่แล้ว +2

    Of course we want to see how do it for the STM35 !
    Always a pleasure to watch your video !

  • @fjbart2069
    @fjbart2069 18 วันที่ผ่านมา

    Can you use QSPI for general storage and/or Memory mapped: boot from EXT when using TouchGFX ( TouchGFX stores assets in QSPI)? Would it require multiple QSPI devices?

  • @silelis1980
    @silelis1980 3 ปีที่แล้ว +2

    Will there be a tutorial how to store firmware or some firmware function in qspi?

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว +4

      Yes the next one... Listen to the ending part 🙄

  • @fjbart2069
    @fjbart2069 21 วันที่ผ่านมา

    Is the method an alternative to using the HAL_QSPI functions?

    • @ControllersTech
      @ControllersTech  20 วันที่ผ่านมา

      I don't understand the question

    • @fjbart2069
      @fjbart2069 20 วันที่ผ่านมา

      @@ControllersTech Your application uses higher level functions that utilize the HAL_QSPI (stm327xx_HAL_qspi.c) drivers for simplifying the common tasks of working with the QSPI. Am I understanding this correctly?

    • @ControllersTech
      @ControllersTech  20 วันที่ผ่านมา

      Yes

  • @brijeshkhokhar
    @brijeshkhokhar 3 ปีที่แล้ว

    When I build project with release mode on STM32CubeIDE it stop working, same code works if build with debug configuration...Any Suggestion/ Help ??

  • @sofienmed8723
    @sofienmed8723 ปีที่แล้ว

    Hi, thanks for the tutorial, you said that what you did is not the effective way for storing numbers, is there another way to store numbers or other data types without converting them to strings ? will the memcpy() do the job ?

    • @ControllersTech
      @ControllersTech  ปีที่แล้ว

      You can use enums to convert numbers or floats into the bytes and store it.
      Then convert the bytes back to numbers to extract the value.

  • @bobby9568
    @bobby9568 3 ปีที่แล้ว +3

    You are the KING!

  • @woldecosgrove
    @woldecosgrove 6 หลายเดือนก่อน

    in respond to your reply : could you please do a video on STM32H745 Discovery QSPI flash MT25QL512A ?

  • @oumaymabouachra4466
    @oumaymabouachra4466 2 ปีที่แล้ว

    How did you choose the fifo threshold?

  • @manojsuryawanshi1334
    @manojsuryawanshi1334 2 ปีที่แล้ว

    i am not able to read more than 256 bytes in externnal spi
    I am reading 4 bytes of structure after 256 bytes data is rollover

  • @svsv123
    @svsv123 2 ปีที่แล้ว

    Hello Controllers Tech! Do you know any method to emulate the external NOR flash memory? Ofcourse they have very high erase/program cycles but still how to manage writing to flash memory by avoiding writing to the same address?

  • @woldecosgrove
    @woldecosgrove 7 หลายเดือนก่อน

    Hello great video, just a question can this tutorial work on STM32H750 Discovery bd? is it the same QSPI flash ?

    • @ControllersTech
      @ControllersTech  7 หลายเดือนก่อน

      H750 has MT25 series I guess. The method remains the same, but the commands are a little different. Please check towards the end of the video.

    • @woldecosgrove
      @woldecosgrove 6 หลายเดือนก่อน

      @@ControllersTech yes its MT25QL512A

  • @RATelectro
    @RATelectro 2 ปีที่แล้ว +1

    Thank you for your hard work explaining this stuff!
    I did this for STM32H750VB and W25Q64, but stumbled across the problem with memcpy - it throws me into MemManage_Handler. Regular read and write commands work fine, i have set up MPU parameters accordingly. Can you please tell, what could be wrong? I use a single/dual line QSPI setting, can this work with memory mapped mode?
    By the way, for some flash like W25Q64, chip erase delay can be much higher than default HAL_QSPI delay of 5s, so i had to ta add extra 20s delay, so loooong

    • @moonraker179
      @moonraker179 ปีที่แล้ว

      Did you figure out solution for this? I'm also running into this issue.

  • @domoledlight
    @domoledlight 5 หลายเดือนก่อน

    Thanks a lot for those Qspi tuto so clear I have developed my own stm32h75vbt6 mini pcb board and follow your tuto for flah spi and Qspi all is working as expected 😊😊😊
    I have a question about erase function. Do you erase by convention before write or because it is not recomanded to overwrite data on the same adress.
    2 _ how to well manage adress function when you want to acces small data to many adresses.

  • @dnyaneshvarsalve2984
    @dnyaneshvarsalve2984 2 ปีที่แล้ว

    Hello @ControllersTech thanks for the video.
    you said in the beginning that you will tell what changes will be required for MX25 chip.
    Can you please make a video or explain it

  • @hezortemendoza4999
    @hezortemendoza4999 3 ปีที่แล้ว +1

    Great movies i like your works a lot. So i have board STM32F508-DK F7508-B05 and normally memory chip is N25Q128 and unfortunately i have a problem, i do not pass the step QSPI_AutoPollingMemReady in the function CSP_QUADSPI_Init and i do not why.

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว +1

      Try disconnecting the cable and connect again.
      By the way, this video is made with the same board.

    • @hezortemendoza4999
      @hezortemendoza4999 3 ปีที่แล้ว

      ​@@ControllersTech Ha yes it's works, it's bizzard :D, thk you for this litlle debugging

  • @arlenalem
    @arlenalem 2 ปีที่แล้ว

    Thanks for your videos, they are really helpfull,
    I am using your driver in the 32F746GDISCOVERY , it has the same flash memory N25Q128A. The code is stopped when the I try to execute the CSP_QSPI_Erase_Chip() function.
    When I debug the program, I saw that the program is stopped when I execute the HAL_QSPI_AutoPolling() function if I press "stepover" to continue to debug, but if I press "stepinto" everything is OK.
    CSP_QSPI_Erase_Chip(){
    ...
    QSPI_AutoPollingMemReady(){
    ...
    HAL_QSPI_AutoPolling()
    ...
    }
    ...
    }
    The program run without any problem if i don't use the function CSP_QSPI_Erase_Chip() function.
    Is there any update for that function? Could you help me with that?

  • @kasekuchentv7869
    @kasekuchentv7869 8 หลายเดือนก่อน

    Very, very helpful. You are a true lifesaver.

  • @Headhog777
    @Headhog777 3 ปีที่แล้ว +1

    Awesome video, just when I needed it!
    Is there a chance that you will make tutorial about recording and playing sound from these two microphones on STM32F750dk? Or at least some directions where should I look for help, because documentation almost doesn't even mention microphone nor provides example of usage
    Thank you in advance, best luck!

  • @federicodevitiis609
    @federicodevitiis609 2 ปีที่แล้ว

    Hi, very interesting video!!!
    I'm using H743ZI2 with dual IS25LP032. Do you think the MT25TL example can be adapted to my case? If so, may you suggest me which modifications I've to do, please?

  • @muhammadnasaruddinrachmat4279
    @muhammadnasaruddinrachmat4279 3 ปีที่แล้ว

    Please make tutorial about stm32+ros(robotic os).

  •  2 ปีที่แล้ว

    Hi, thank you for video and code. Is this code compatible with QSPI w25q64 chip?

    • @ControllersTech
      @ControllersTech  2 ปีที่แล้ว

      Nope, but read the comments. Someone have posted a link for it

    • @eliasdrotleff5987
      @eliasdrotleff5987 2 ปีที่แล้ว

      It works with W25Q64, set "FlashSize=22", increase the delay in "QSPI_AutoPollingMemReady" to 20 seconds: e.g. "if (HAL_QSPI_AutoPolling(&hqspi, &sCommand, &sConfig, 20000) != HAL_OK) {", and set the "DummyCycles" in "CSP_QSPI_ReadMemory" to the value 6 e.g. " s_command.DummyCycles = 6;"

  • @francisgremillet2698
    @francisgremillet2698 3 ปีที่แล้ว

    Great tuto as usual! Is flash memeory limited regarding writing operations number?

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว

      I don't know. I haven't tested much of the write read.
      Like i mentioned in the video, i am going to focus on memory mapped mode.
      This videos was just the connection test for the flash memory

  • @lahirupamodya6188
    @lahirupamodya6188 3 ปีที่แล้ว

    just the video I was looking for !

  • @thechallenger3020
    @thechallenger3020 3 ปีที่แล้ว

    Hello Controllers Tech, Thanks a lot for the video, it was very helpfull! I am facing an issue with the "Write Enable". When I call the Autopolling Function for changing the mode, the status match flag is not set and I know why. Unfortunately, I don't have an oscilloscope to check the HW part. Do you have an idea about what could be the issue? Thanks a lot and keep going :)
    Issue Resolved:
    Thank you, I have resolved the issue by using the 2 banks (MT25QL512) in the STM32H750-DK Board. But I still have an issue with the read. When I read from memory and check in the DR register, I don't find the correct information, always I get 0x88888888 and erase state of the memory 0xFF.

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว

      What memory do you have ?

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว +1

      Your message was deleted by youtube for some reason, but if you are using h750 discovery, then check my github.
      I have there the code for H745, which is exactly similar..

    • @thechallenger3020
      @thechallenger3020 3 ปีที่แล้ว

      @@ControllersTech Thanks, I will check and provide feedback! I also saw a strange behaviour, the bank 1 fails at the write enable but the bank doesn't and it fails after, could it be a HW issue, or a configuration one?

    • @ControllersTech
      @ControllersTech  3 ปีที่แล้ว

      It's definitely configuration issue..
      For these dual banks, i tried using single bank but that didn't worked. So i tried using both banks simultaneously.
      I have mentioned this in the readme file

    • @thechallenger3020
      @thechallenger3020 3 ปีที่แล้ว

      @@ControllersTech I will try to do that, thanks !

  • @renatomasias1368
    @renatomasias1368 ปีที่แล้ว

    good thanks, i can run now the n25q with your libreries. With these modification can be delete the warnings
    uint16_t number = 1234;
    uint8_t buf[5];
    sprintf ((char *)buf, "%u", number);
    if (CSP_QSPI_Write(buf, 0, strlen ((char *)buf)) != HAL_OK)
    { Error_Handler(); }

  • @RixtronixLAB
    @RixtronixLAB 3 ปีที่แล้ว

    Nice video, thanks :)