Featured Discussions
Hi Team,
I have some tasks executing on a 10ms Scheduler using Systick. DMA Transfers are initiated during that 10ms executions.
But, whenever the Systick Interrupt occurs the DMA transfers is also preempted and gets continued again on the next 10ms cycle.
Since DMA has to run parallelly why I am getting this issue. Sharing the current configuration and the scope images of the same for the reference. Let me know if anything needs updated on the configuration front.
Issue case scenario:
Systick Scheduler every 10ms where 4.3msec is used for other application processing and after that 1D DMA Transfers(Mem to PDMA) using SPI is initiated.
As we having limitation on the Buffer of 128 Bytes transfer. So to transfer 4096 bytes of data we need to transfer 32 cycles.
In the below scope image the Color coding is mentioned as follows
Green - GPIO to identify the start and stop of the DMA transfer of 4096 bytes of data
Yellow - Area blocked for other application instruction executions.
Pink - Systick Interrupt
Blue - DMA Transfer Interrupt for each 128 burst of 32 cycles
As given in the below image DMA is preempted whenever Systick Interrupt Occurs.
Note : Even we tried to set the priority of the DMA to be high but the scheduling is getting delayed because of it.
1D Transfer Configuration
dma_transfer_data_t dma_transfer_data;
UI_8 DMA_Cfg_Init_Buff[1] = {0};
uint8_t Trigger_Recd=0;
const cy_stc_pdma_chnl_config_t chnl7Config = {
/* CURR_PTR */ .PDMA_Descriptor = &stcDescr,
/* CH_CTL PREEMPTABLE */ .preemptable = 0u,
/* CH_CTL PRIO */ .priority = 0u,
/* CH_CTL ENABLED */ .enable = 1u, /* enabled after initialization */
};
static cy_stc_pdma_descr_config_t stcDw1DescrConfig = {
/* DESCR_CTL WAIT_FOR_DEACT */ .deact = 0u,
/* DESCR_CTL INTR_TYPE */ .intrType = CY_PDMA_INTR_1ELEMENT_CMPLT,
/* DESCR_CTL TR_OUT_TYPE */ .trigoutType = CY_PDMA_TRIGOUT_1ELEMENT_CMPLT,
/* DESCR_CTL CH_DISABLE */ .chStateAtCmplt = CY_PDMA_CH_ENABLED,
/* DESCR_CTL TR_IN_TYPE */ .triginType = CY_PDMA_TRIGIN_DESCR,
/* DESCR_CTL DATA_SIZE */ .dataSize = CY_PDMA_BYTE,
/* DESCR_CTL SRC_TRANSFER_SIZE */ .srcTxfrSize = 0u,
/* DESCR_CTL DST_TRANSFER_SIZE */ .destTxfrSize = 1u,
/* DESCR_CTL DESCR_TYPE */ .descrType = CY_PDMA_1D_TRANSFER,
/* DESCR_SRC */ .srcAddr = &DMA_Cfg_Init_Buff[0],
/* DESCR_DST */ .destAddr = (uint32_t *)&CY_SPI_SCB_TYPE->unTX_FIFO_WR.u32Register,
/* DESCR_X_CTL SRC_X_INCR */ .srcXincr = 1u,
/* DESCR_X_CTL DST_X_INCR */ .destXincr = 0u,
/* DESCR_X_CTL X_COUNT */ .xCount = HW_FIFO_SIZE,
/* DESCR_Y_CTL SRC_Y_INCR */ .srcYincr = 0u,
/* DESCR_Y_CTL DST_Y_INCR */ .destYincr = 0u,
/* DESCR_Y_CTL Y_COUNT */ .yCount = 0u,
/* DESCR_NEXT_PTR */ .descrNext = 0u
};
Thanks,
Pradeep
HI
We have buy cypress miniprog4 to flash the PD controller (CYPD6127-48LQXIT).
We are able to turn on the target power by using the cypress programmer tool.
We have connect the device with the SWD interface and when we try to connect with the programmer we are facing below error:
Info : [CyBridge] Connected - MiniProg4 CMSIS-DAP BULK-1623198900212400
Info : Selected Device: MP4 BULK-1623198900212400
Info : Open On-Chip Debugger 0.10.0+dev-1.0.0.226 (2018-11-09-17:51)
Info : Licensed under GNU GPL v2
Info : For bug reports, read
Info : http://openocd.org/doc/doxygen/bugs.html
Info : /home/vvdn/Downloads/Cypress_programmer/CyProgrammer_2.0.0.355
Info : ./openocd
Info : /home/vvdn/Downloads/Cypress_programmer/CyProgrammer_2.0.0.355/BT
Info : 1623198900212400
Info : 3:7
Info : swd
Info : adapter speed: 1500 kHz
Info : cyp_detect_target.cfg
Warn : Transport "swd" was already selected
Info : cyp_get_mpn
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: JTAG Supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 0 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : VTarget = 3.294 V
Info : clock speed 1500 kHz
Error: DAP 'test.cpu' initialization failed (check connection, power, etc.)
Please check and help to resolve this as we are not able to connect with the programmer.
Show LessFX3FirmwareSourceUserGuide.pdf
Win10 platform: this compilation source code has a recommended chain is there a version request
smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/%E8%B6%85%E9%AB%98%E9%80%9FUSB%E5%A4%96%E8%AE%BE/FX3-source-%E7%BC%96%E8%AF%91/td-p/724424
Show LessHello
When designing the state machine in GPIF designer I can not access to the thread number as shown in the attachment,
How I can solve this issue?
Thanks.
Show LessHello everyone ,
I want to use the IRPS5401 PMIC into one of my project to get multiple output rails of different voltages . The input power supply available for IRPS5401 PMIC is only 5V , but according to its data sheet the V supply pin needs 6V- 14V for , is there any way I could give it only 5V and run the IC efficiently or what if I put it NC ?
Hoping to get some real quick responses.
Show LessHello everyone!
I am trying to use Example bgt60tr13c with Matlab 2017b. I have some problem when use demo:
>> MatlabWrapperExample
Incompatible MEX-file 'D:\Infineon\radar_sdk\libs\win32_x64\DeviceControlM.mexw64': Loading MEX file built by R2021b is not supported for this release.
Error in RadarDevice.get_version_full (line 187)
[ec, version] = DeviceControlM('get_version_full');
Error in MatlabWrapperExample (line 39)
disp(['Radar SDK Version: ' RadarDevice.get_version_full()]);
And when I try to build DeviceControlM.c:
>> mex -v CC=g++ -O -DSNPRINTF=snprintf -I'D:\Infineon\radar_sdk\sdk\c\' DeviceControlM.c
Error using mex
D:\Infineon\radar_sdk\sdk\matlab\RadarSDKMEXWrapper\DeviceControlM.c:56:46: fatal error: ../ContextWrapper/MWrapHelpers.h: No such file or directory
compilation terminated.
Could someone please help me resolve this error?
Show Lessin TC38x,Can the local memory unit(LMU) and thre Distributed LMU (DLMU) as a whole LMU to be used in OVC function SAL-TC387QP-160F300S AD
Show Less