Featured Discussions
Hi,
I want to translate the following article to Japanese. Please confirm to my work.
KBA "GitHub alternative for ModusToolbox™ and Friends content - KBA239628"
URL: https://community.infineon.com/t5/Knowledge-Base-Articles/GitHub-alternative-for-ModusToolbox-and-Friends-content-KBA239628/ta-p/722530
Best Regards,
Hayashi.K
From a linux system, I want to read back the configured program image from a CYC65215 part and check that its CRC is correct -- assuming it has an appended CRC. Does the image have a CRC? Is the CRC generated using a known algorithm with a standard polynomial? If so, which polynomial?
Show LessAre there available instructions or guidance on connecting the BGT60TR13C development kit to a jetson orin nano? Or a way to compile the sdk for the jetson? Following the "Building SDK from source code" in the RFS SDK Documentation in the radar_sdk didn't work for compile or install using python wheel.
Show LessHi
I am building a BLE remote controller. It should respond to user entry and send a command via BLE to the receiver, both are PSOc6.
What is the best practice to reduce power consumption ?
I read the PSoC design documents for low power, but there is still some confusion. The options are to put in deep sleep either CM0+ and/or CM4 until a user entry is detected using GPIO ISR, then it wakes up to resume the connection and send the BLE packet.
What is the best practice ?
Thanks
Show Less
Hello. I have an IRQ for my serial device that looks similar this:
CY_ISR(uart_isr) {
if (h_UART_CHECK_INTR_RX_MASKED(h_UART_INTR_RX_NOT_EMPTY))
{
uint32_t data = h_UART_UartGetByte();
uint8_t byte = data & 0xFF;
// Ignore any errors.
if ((data & 0xFFFFFF00) != 0) {
return;
}
queue_data(&queue, byte);
h_UART_ClearRxInterruptSource(h_UART_INTR_RX_NOT_EMPTY);
}
}
But I get an issue where I will occasionally get an underflow error. Which is to say on the `((data & 0xFFFFFF00) != 0` will be true. It is not a framing or parity error, but the underflow error. But I don't understand how that could happen since I am specifically checking for the FIFO not being empty. Alright, so I made an alternative.
CY_ISR(uart_isr) {
if (h_UART_CHECK_INTR_RX_MASKED(h_UART_INTR_RX_NOT_EMPTY))
{
for (uint32_t count = h_UART_SpiUartGetRxBufferSize; count > 0; count--) {
uint32_t data = h_UART_UartGetByte();
uint8_t byte = data & 0xFF;
// Skip errors
if ((data & 0xFFFFFF00) != 0) {
continue;
}
queue_data(&queue, byte);
}
h_UART_ClearRxInterruptSource(h_UART_INTR_RX_NOT_EMPTY);
}
}
And this ends up being even worse somehow. Count will be a positive number, but then it will skip each byte received.
Basically what I'm asking if, how can it be possible for
h_UART_CHECK_INTR_RX_MASKED(h_UART_INTR_RX_NOT_EMPTY)
to be true, but then there be an underflow error in the byte read? I did a test and every error it received was an underflow. If I inspect the values that get received upon this underflow, some are actual data sent (aka not an underflow) and some are just junk.
This has been a thorn in my side for months but so far my solution has been "about one in fifty messages fail for some reason," but that is getting old.
Show LessI'm trying to install ModusToolbox on Linux (Ubuntu 22.04) but I fail to get past the login process.
I originally posted a reply to this thread as it looked similar to my issue but was asked to create a new thread instead.
I downloaded "ModusToolboxSetupInstaller_1.0.0.468_linux_x64.deb" from softwaretools.infineon.com and launched it.
I get the following log messages:
After clicking on "Login" nothing happens and I get the following log:
I don't know how to solve this issue as I don't even see a login prompt. I only get the error "Error: Failed to Login: 'process failed to start'"
Show LessHi,
I have designed a custom PCB with STM32H735 MCU and due to EoL and current unavailability of older HyperRAM S70KL1281 (that was originally used on ST-Micro's Discovery Kit) I decided to choose new HyperRAM S70KL1282. It's wired the same way as on discovery kit (including RWDS signal) and I was carefull about OSPI signal traces length matching.
I set up the MCU OSPI/HyperBus peripheral according to STM example and I use existing HyperRAM driver:
https://github.com/STMicroelectronics/stm32-s70kl1281
I fixed the initial latency from 6 to 7.
I can successfully read the device ID words and config reg 0,1.
The problem is that when I write some data at address 0 and read it back I found the data pattern writen with 8 bytes offset from the address 0 even I use always address 0 as argument to the R/W functions. I also tried enable memory mapped mode and access the RAM via pointer but I still got this strange offset. I also tried to lower the OSPI frequency by divider down to 33MHz but still any change. Contrary the users of old memory chip S70KL1281 doesn't report such problems. They shared the OSPI peripheral configuration that I tried to use so setting on MCU side (master) should be the same but I still have the 8B offset. I cannot get S70KL1281 to try. Any idea what's wrong? Do I need to set something in CR0/1 differently than POR values? Here are some of my code and debug terminal output to describe the issue:
{
uint8_t buff[64]={0};
int i;
buff[0]=0xab; buff[1]=0xcd; buff[2]=0xef; buff[3]=0xaa;
if (S70KL1281_Write(&XRAM, buff, 0, 16)!=S70KL1281_OK)
printf("Failed to write to HyperRAM\n");
for (i=0; i<32; i++)
printf("%02X ", buff[i]);
printf("\n");
if (S70KL1281_Read(&XRAM, buff, 0, 32)!=S70KL1281_OK)
printf("Failed to read from HyperRAM\n");
for (i=0; i<32; i++)
printf("%02X ", buff[i]);
printf("\n");
if (S70KL1281_Read(&XRAM, buff, 0, 32)!=S70KL1281_OK)
printf("Failed to read from HyperRAM\n");
for (i=0; i<32; i++)
printf("%02X ", buff[i]);
printf("\n");
}
The memory address is 0 but I get this:
Ext. OctoSPI HyperRAM ID: 0C81 0001
Manufacturer: Infineon, HyperRAM 2.0, rowbits: 13, colbits: 9
AB CD EF AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
57 47 57 5D D5 D7 8C 15 AB CD EF AA 00 00 00 00 00 00 00 00 00 00 00 00 D5 D5 57 5F D5 D5 5F 75
57 47 57 5D D5 D7 8C 15 AB CD EF AA 00 00 00 00 00 00 00 00 00 00 00 00 D5 D5 57 5F D5 D5 5F 75
There's some garbage in first 8 Bytes (57 47 57 5D D5 D7 CC 15 - uninitialized memory?) followed by correct pattern AB CD EF AA and trailing zeros from buffer
And the memory mapped mode:
{
__IO uint32_t *mem_addr = (__IO uint32_t *)(OCTOSPI2_BASE);
int i;
if (S70KL1281_EnableMemoryMappedMode(&XRAM)!=S70KL1281_OK)
printf("Failed to Enable Memory Mapped Mode\n");
else
printf("Memory Mapped Mode Enabled\n");
mem_addr[0]=0xABCDEFAA;
mem_addr[1]=0x12345678;
mem_addr[2]=0;
mem_addr[3]=0;
for (i=0; i<48; i++); // a shot delay, 46 read ok, 47 read garbage
printf("%08lX\n", mem_addr[0]);
printf("%08lX\n", mem_addr[0]);
printf("%08lX\n", mem_addr[0]); // 57 45 57 5D = "WEW]"
for (i=0; i<32/4; i++)
printf("%08lX ", mem_addr[i]);
printf("\n");
for (i=0; i<32; i++)
printf("%02X ", ((uint8_t *)mem_addr)[i]);
printf("\n");
}
Output is:
Ext. OctoSPI HyperRAM ID: 0C81 0001
Manufacturer: Infineon, HyperRAM 2.0, rowbits: 13, colbits: 9
Memory Mapped Mode Enabled
ABCDEFAA - this read changes according to for loop short delay, for shorter times it reads ABCDEFAA, for longer times it reads 5D574557
5D574557
5D574557
5D574557 158CD7D5 ABCDEFAA 12345678 00000000 00000000 5F57D5D5 755FF5D5
57 45 57 5D D5 D7 8C 15 AA EF CD AB 78 56 34 12 00 00 00 00 00 00 00 00 D5 D5 57 5F D5 F5 5F 75
Please let me know other users of this memory chip if it works for you properly or not and on what MCU/platform.
Dear Mr\Mrs,
I tried to create a project starting of Modustoolbox for IAR embedded. Compiling is failing with this issue:
"Error[Li005]: no definition for "__iar_Initlocks" [referenced from C:\Users\emanuelebelpanno\mtw\Empty_PSoC4_App\Debug\Obj\TOOLCHAIN_IAR_13573725619442129044.dir\cy_clib_support_iar.o]"
I've tried to look for this function and it isn't present in the project. How Cam I solve this issue?
I'm using Windows 10, IAR embedded ARM 9.50.2.
Kind Regards,
EB
Show LessI have installed ModusToolbox 3.2 and wanted to create my first application using the USB on a XMC4500.
But I did not get far as the USB (device or host) is not in the list of peripherials. Why does Infineon not support the USB?
Does anyone have a working USB example for the XMC4500? I have tried using the USB driver supplied in the ARM/Keil µVision pack, but that does not work correctly and after 6 months the Infineon support has given up and closed my support case.
Can anyone help?
Show Less