Hello everyone. My customer has requested I move from RA to Synergy, and I'm perplexed by the HAL differences.
This project uses just about every peripheral available, and I enjoyed porting to RA initially. The IDE and configurator and code all worked exceptionally well. The R_ interfaces for configuring and using the underlying driver model had few bugs or issues, and I really appreciated being able to mouse over and get the help context popups too for each R_ function.
But Synergy is really taxing me. While the R_ functions are sometimes defined in the synergy driver libraries, they all appear to be private, and instead the framework exposes global members with their own differently-named functions for performing the same functions. I've been told by our local Renesas FAEs that examples don't exist for much of the BSP and pointed me to the Synergy Software Package User's Manual. But this does not list the names of the global variables and many of the underlying structures used to make this all work.
For example with the ADC. On FSP you'd do:
err = R_ADC_Open (&g_adc0_ctrl, &g_adc0_cfg);
In SPP however this becomes
err = g_adc_on_adc.open(g_adc0.p_ctrl, g_adc0.p_cfg);
For some peripherals I've been able to sort out the syntactical changes. But others are just eluding me. There's just a never-ending depth to all the configure and control registers and their new associated global structures. So I'm hesitant to proceed without asking for help first. Am I missing the big picture here? Is there a way to enable access to the R_ calls I'm used to?
Thank you for any insight you can provide!
- Jason
Hello,
I am a bit surprised that someone moves from RA to Synergy, which means from a newer device family to an older.
However there is no migration guide from RA to Synergy or vice versa to automate the process of porting between the families. You would need to manually re-create a new project and add the software modules from the beginning. SSP and FSP are similar but not identical so every change of API should be handled individually.
Yes, I am starting with a blank project from scratch and attempting to recreate everything inside SSP with Synergy. But the HAL calls and foundational structure is considerably different. The documentation is often outdated, and code examples do not seem to exist. FSP with RA was a breeze to work with. SSP with Synergy is very bad in comparison. Please confirm this is the way of things?
As to the why...
Renesas unfortunately provided my customer and I with some initial bad recommendations, with continued mixed messaging. Renesas never released 5V tolerant capable of IO to the RA packages the product requires. So that set the stage for where things ended up.
which RA would you target ? some of the lower end devices are 5V tolerant (e.g. RA2 family)..
The other boards were designed to use R7FS3A77C3A01CFB#AA1. The design fully utilizes the high pin count and resources available. Our customer designed in the RA6M3G on the board I initially ported, which I was able to just desolder/swap out and have been using as my development platform for the second stage of porting.
We were told: While we have some new RA devices that support 5V operation, none of them have as much I/O, RAM, and Flash as the S3A7. The closest we have is the RA2A2 with 512K Flash 48K RAM and a 100pin option. Additionally, looking at the roadmap out through 2026, we do not have anything that would match the S3A7 and support 5V.
Thanks!
I cannot see how RA6M3 (or another RA) would not be as good as S3A7 or even better.
RA6M3 has 21 5-V tolerant GPIOs:
Also RA6M3 has more I/O ports, up to 2MB flash (more than S3A7) and up to 640-KB SRAM (more than S3A7).
Before migrating from RA to Synergy (which does not make much sense) I would recommend to consider carefully the selection of the device.
Let me know if you have other questions.
Apologies, I mispoke. After calling our local FAE he reminded me that for the other boards we require full 5V operation. As in 5V VDD. And that is much more limited on RA vs Synergy in packages with higher pin and flash counts.
The board I am currently developing on does not have this requirement, but it is a convenient platform for me to port and verify everything is working before kicking off the remaining porting effort across the product line.
Since I do not have the full picture on the product selection I will share the product selector tool for RA and Synergy for your reference:
https://www.renesas.com/en/products/microcontrollers-microprocessors/renesas-synergy-platform-mcus/product-selector?srsltid=AfmBOopwLJlSWlp49BPP7-VuH2BgshSqBeqFpiBvDM2wCqgAbY_TXmAL
https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus/product-selector
Regarding the porting process, there is not a straightforward process, if you have specific questions I am glad to help.
Yes that is fine. My questions were SW in nature and the HW discussions have derailed us a bit.
Let's ignore porting entirely. Please approach this as if I was a first-time Synergy User.
Question 1:
Is it expected that R_ calls are largely not used in Synergy HAL, despite being referenced in the online Synergy Software Manual and being defined in many header files? Instead Synergy uses abstracted calls found on global driver objects? For example: g_adc_on_adc.open(g_adc0.p_ctrl, g_adc0.p_cfg); to open and configure the ADC driver.
Question 2:
Does a repo of project examples exist anywhere? Most videos and worksheets mention a downloadable set of examples having existed at some point. Many forum questions also have folks searching on the Renesas website, but my perception is any examples may have been purged along the way.
Thank you!
There used to be an archive of examples for Synergy and the different kits that Renesas produced. But those have not been maintained and were pulled from the web. It used to be the Synergy Gallery.
If there is something specific, I can check my archives to see if I still have a copy.
What e2 studio version are you using and what SSP version are you looking at?
If you are not using e2 studio are you using IAR for Synergy?
Hello there. I am using E2 Studio 2024 with SPP 2.6.1. The latest downloadables on the site.
Examples of CAN send/receive with interrupts and Flash writing would be helpful.
Were bootloader examples ever provided for Synergy with ThreadX?
Our FAE was able to get us a USBX CDC example so I think we should be ok there.
I really appreciate anything you might be able to share here!
Which Renesas kit do you have available?
Jason,
I have found an old Module Guide for the CAN module. I have ported it up to the current SSP 2.6.1.
I will also attach the old PDF that may or may not be the most up to date as far as screen shots, etc.
8510.can_hal_mg_ap.zip
r11an0065eu0101-synergy-can-hal-mod-guide.pdf
I have not located a ThreadX w/ Bootloader yet.
Q1) Yes, it is expected.
Q2) There is no repo like for FSP examples. The sample codes/app notes exist on the Renesas website on each product page.