arduino / arduino/ArduinoCore-mbed

SDRAM.h uses PLL2 instead of HCLK3 (same freq on Portenta)

Open
#994 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
411
Forks
225
PR merge metrics
No merged PRs in 30d

Description

Hello,
It seems ram_internal.c and .h / SDRAM init uses and fully defines PLL2, leaving one with no configurable clocks if using a display. This seems pointless on Portenta, as using HCLK would result in same 200mhz for the FMC clock, while on giga it's 240mhz, which is a slightly higher, but it gets divided by two into 120, staying within the spec of 166mhz. Further in my pull request for giga I changed the frequency defined, and I believe based on this timings get automatically calculated to ensure the correct delays,
Not having PLL2 available is a huge limited on projects.

Contributor guide

No contributing guide indexed for this repository

Research direction

Inspect ram_internal.c and ram_internal.h, including the SDRAM initialization and frequency definitions. Compare the PLL2 and HCLK3 paths for Portenta and GIGA, then verify that the resulting FMC clock and calculated timings remain within specification. Done means SDRAM no longer unnecessarily consumes PLL2 while retaining correct supported-board timings.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.