OCTO SPI output impedance on H7-series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-08 8:53 AM
I have swapped from a custom PCB-board with a 6-layer stack using a STM32H725IGKB, to another custom board with a 4-layer stack using STM32H723ZGT6 (simpler package).
I am using an external OCTO SPI on both boards, but I have R/W errors with the 4-layer board.
Both boards are routed with 50 ohms impedance and uses 33 ohms series resistors for the OCTO SPI.
I am wondering if the output impedance is the same for these two H7-devices?
Solved! Go to Solution.
- Labels:
-
STM32H7 Series
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 5:38 AM
Hi
LQFP package's are notoriously less performant than BGA's (longer bond wire), but this is probably not your problem.
Are PC2 and/or PC3 used for the OCTOSPI? This two pin's have special timing restriction on the STM32H723.
Martin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-08 8:59 AM
Have you checked the package pins?
I think concerning the packages, H723 is compatible with H733, and H725 with H735 - but I'm not 100% sure.
I just remember there was something that surprised me when I had to make that choice.
Concerning the output drivers - another guess: exactly the same.
PS: also check the alternate function numbers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 12:45 AM
Thanks,
Yes, pins are checked back and forth, but what do you mean with alternative function numbers?
@st, could you please confirm the output impedance is the same for these devices and that 33 ohms series resistors are recomended?
Thanks in advance
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 3:51 AM
/* MCO */
GPIO_InitStruct.Pin = LL_GPIO_PIN_8;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
See ".Alternate = ...AF_0".
But it's probably the same between these types, so forget that...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 5:12 AM
Yes, thanks
They set as you layed out for both devices
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 5:38 AM
Hi
LQFP package's are notoriously less performant than BGA's (longer bond wire), but this is probably not your problem.
Are PC2 and/or PC3 used for the OCTOSPI? This two pin's have special timing restriction on the STM32H723.
Martin
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-09 5:40 AM
Make sure the "Compensation Cell" is enabled. You can also back off the Speed setting on short traces.
Some memories also allow the load or drive to be adjusted.
Any difference in the chip and bus clocking between boards?
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-10 12:01 AM
Hi,
Yes I am using PC2_C and PC3_C - is there something I must take into consideration?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-10 12:11 AM
Thanks Tesla,
- I have tried enable the compensation cell
- I lowered GPIO speed from "very high" to "high" and "medium" - if that is what you meant?
- I guess the load (or impedance) could be adjusted via the memory's register, but have not tried it yet, should be default 50 ohm and all traces are routed in 50 ohm.
- Exactly the same bus set-up and clocking for both boards
I discovered that I used 30 ohms (5% tolerance) series resistors rather than 33 ohms due to lack in inventory but is a small margin and it should probably not be the cause. I am out of ideas and I begin thinking there perhaps could been some issue with the PCB stack-up during manufacturering.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2024-08-10 12:43 AM - edited ‎2024-08-10 1:01 AM
Hi,
>Yes I am using PC2_C and PC3_C - is there something I must take into consideration?
YES. The xx_C are not good to drive hi-speed signals :
ds:
So you have about 400 ohms source resistance here +
xx_C should be used only for ADC input ...
and should not drive more > 1mA , otherwise you might kill it . (I did - so i know - with just the clock to a TFT on a xx_C pin. Testing TFT with 4MHz clock was ok, but then i switched to 16MHz - 1 screen written, then pin died. )
So dont use these pins for hi-speed signals - they cannot drive it. If you cannot change it now, try with
ed : low speed setting (400 ohm in series ! ) , just to verify your design is working. (maybe 2 MHz clock...)
