2026-03-11 1:11 PM
Hello all,
I've been using this U5 chip for a couple of years but I am just now trying to update all of the packages to start working on the project again. I have the U5 firmware at 1.8.0, AZRTOS-H7 at 3.5.0 (I'll explain why I mention that), FileX is 6.4.0 and the CubeIDE is 2.0.0.
When I started this project, I was using an H7 chip and that is where the Azure implementation started. Now things seem integrated and those choices in the software packs selection in CubeMX don't seem to matter...I assume. The H7 package is the one still loaded to my hard drive. I've tried creating a new project and setting everything up again but nothing has changed from my original project. I tried to apply some U5 patch with version 2.2.0 or something like that. MX took it and made it disappear into the void. Again, maybe I don't need to care about manual package setup anymore.
ThreadOS works great and everything has been working great for me. I added USBX, FILEX and LEVELX to the project back in the beginning, but I am only now trying to start using them. In particular, I am trying to get a 4-bit SDIO interface going on my custom board. The card does initialize through the HAL_SD_Init() call. I modified it a bit so it doesn't lock up code execution (Error_Handler) if I don't have a card plugged in when I boot the board.
The issue I have now is that when I try to mount the file system, I get a FX_IO_ERROR in a call that ultimately results in a FX_BOOT_ERROR returned so it isn't talking to the card correctly. I have tried falling back to 1-bit, flow control enabled/disabled and the SD CLOCK all the way down to about 250KHz just to remove any possible PCB issues. The traces are short and over a ground plane at about 34mm, at most. I'm not expecting a hardware issue.
I have noticed that the SDIO drivers use DMA and I worry that maybe those aren't being set up correctly. Maybe it is using the H7 directives which is an M4 chip and not an M33 so it might be different. I don't really know but it goes back to wondering if it all happens correctly simply by referring to the U5_firmware library. FileX does have the "SD Interface" enabled. Things seem correct and everything builds fine. I just can't get past fx_media_open() successfully.
I have an 8GB card and a 1GB card. They are industrial rated cards for outdoor use and getting a bit old since I started using them in 2018. I haven't tried bigger cards yet because I wanted to get past this point with a card that was already working with STM32 chips. The 8GB was used with an F4 project and works fine to this day. They both have FAT32 and work fine in a PC with no errors on the cards.
I am worried that because the U5 still seems to have non-standard support that something isn't right in the project but I have no idea what. I would appreciate any help from anyone who has this working and some insight into what I can do to solve this.
Thanks so much!
Michael
2026-03-17 2:29 AM
Hello @MichaelW
Please refer to the example below as starting point.
2026-03-17 1:17 PM
Hi there,
Thanks for the reply. I have looked at that code before. It doesn't seem to be using the SDIO interface and I don't think my problem is related to that, as far as hardware configuration is concerned. My problem could be more about wondering if CubeMX is actually creating a project that is properly compatible with the U5 series. Since the code that doesn't work is using DMA functionality, I wonder if it is being set up correctly. There's almost nothing you can select to configure and it does things behind my back so I can only assume. I have no idea what I am supposed to do, at this point. It's probably something minor or the U5 still isn't properly supported in your tools.
If there was a video about setting up Azure with the U5, I will have to dig around for it. I didn't find anything specific for this, so far. Again, there is almost nothing to manually select so I'm running on a hope and a dream when I press the "generate code" button.
Michael