Featured Discussions
Hi,
I am trying to create new BMHD for new project which the chip is TC389.
I flash the new BMHD0_orin, BMHD0_copy and application code by Memtool and de-attach the miniwiggler, then power off and on the board, I seems like not run. Re-attach the miniwiggler and check the resigter, find that, SCU_STMEM1 equals 0x000045C3, means that Hal-After-Reset REQuest flag raised( right?),and the program counter is set as desired. I am gettting losted why it cannot run now.
Does anyone can help me and let me know what's the most probable reason about this issue? Very appreciate.
Best Regards.
Eric
Show LessI am getting a warning from Tasking compiler as below.
ltc W154: the estimated stack size (0xb878) for ustack_tc0 is larger than the allocated size (0x6400), please increase the stack size in the LSL file
25K is what is available and set in Linker. So maximum is already in use.
When looked into MAP file, I see many function estimated stack size increased significantly even though nothing in changed in caller and Calle functions. Attached is one of the example.
Q1 : Even though its an Estimation, what caused Compiler to consider high estimation ?
Q2 : Is there any changes in Linker / Code which can resolve this warning ? ( I am aware of compiler option impact but we cant change them )
Show Less
This is an example of the DDS sine signal generator running on PSoC4200M CY8CKIT-044 Pioneer Board.
Like the previous example, this project also uses Double-Buffered DMA to update the IDAC8. The data are being calculated in the real time by DDS, and the IDAC is operated in bidirectional mode, which requires setting IDAC's direction (sign) and magnitude.
- 32-bit DDS accumulator provides frequency resolution clk_1/2^32 = 480kHz/2^32=0.0001Hz
- Usable range 0 - 20kHz, with some tweaks up to 100kHz
- The output sine is centered around Vref (here Vdd/2 was used)
- The sine amplitude is controlled by a singe resistor R1, default is +/-1V
- Uses DMA to update the IDAC
The drawback is that now two bytes have to be populated in the temporary buffer array {CTRL, data}, which consumes more processor clocks. This load, however, is quite low, reaching in current example only ~20% of all processor time.
The Double-Buffered DMA uses intermediate RAM Buffer of size 2N=64 bytes made of two equal halves, to store the data coming from the data source. The DMA1 consists of two chained Transfer Descriptors TD0 and TD1, copying 2 bytes from the Buffer to the IDAC on each clock. Once TD0 finishes copying the data from the first half of the Buffer, it chains to the TD1, which copies data from the second half of the Buffer and loops back to TD0.
Once TD0 (or TD1) is completed, an interrupt is fired, signaling that this Buffer half needs replenishment (while the other one is busy). At this point processor need to fill the half-Buffer with generated waveform, and wait for the next data request, while the Buffer content is being continuously played without interruption.
Sine wave is generated in real-time using 32-bit software DDS blocks, which return 8-bit sine waveforms based on the lookup table.
The IDAC is used in bipolar mode, both Source and Sink, controlled by the sign of the input data. The IDAC current is converted into voltage using 3.3k resistor and buffered by the Opamp in the transimpedance mode. The Opamp output is centered around the reference voltage (Vdd/2): Vout = 0.5Vdd +/- 1.0V.
By default the project is configured to start playing sine waveform on startup, continuously sweeping the frequency between 1kHz and 2 kHz with period of 20sec.
Project attached contains all necessary files. It was tested using both Creator 4.0 and Creator 4.4.
Figure 1. Project schematic. The sine waveform is generated by DDS_1 on request, and then transferred from the Buffer to the IDAC using DMA. The IDAC output current direction is controlled by the sign of the data. The IDAC operates in transimpedance mode using using 3.3k feedback resistor, producing 0.5Vdd +/- 1.0V signal.
Figure 2. Output waveform. DDS set frequency 1kHz. Yellow - DDS output, centered around Vdd/2. The half-Buffer length to be populated is 64, and DMA sampling clock is 480 kHz, which results in 7.5 kHz DMA TD interrupt rate (period 133 usec). DDS routine calculations to fill the half-buffer takes about 32usec, resulting in a processor load of about 24%.
Figure 3. FFT of the DDS output. Set frequency 1 kHz. The 3-rd harmonic suppression is -45dB.
Figure 4. Example of continuously sweeping the DDS frequency between 1kHz and 2 kHz. Scope display persistency is set to 1 sec.
Figure 5. Project annotation using the PSoC Annotation Library v1.0 and KIT-044. The Red LED pin was used for the performance testing; it raises on ISR routine entry, and lowers on exit. The duty cycle on this pin shows the processor load (~3%). The reference voltage is "stolen" from the hidden Pin_5[0], which is connected to the Vdd/2 onboard source. For sound generation, the output can be directly connected to the headphones with combined impedance of 64oHm (32+32). Capacitors shown are optional and don't affect output significantly.
Show Less
Are you ready to share your story with the world? Look no further than Deslibris & Amazon Kindle Direct Publishing to streamline your eBook publishing journey! With their user-friendly platforms and extensive support, you can easily convert your manuscript into a professionally published eBook available to millions of readers worldwide. Don't let publishing hurdles hold you back—take advantage of Deslibris & Amazon Kindle Direct Publishing's seamless process and make your publishing dreams a reality today!
Show LessHello,
I see the build warning as below in the latest MTB 3.2 version. Is this an issue that can be fixed by Infineon or else it is upto the ARM?
-I../mtb_shared/wifi-host-driver/release-v3.1.0/WiFi_Host_Driver/src/include -I../mtb_shared/wpa3-external-supplicant/release-v1.1.0/include -I../mtb_shared/wpa3-external-supplicant/release-v1.1.0
../mtb_shared/mbedtls/mbedtls-2.25.0/library/ssl_tls.c: In function 'ssl_calc_finished_tls_sha384':
../mtb_shared/mbedtls/mbedtls-2.25.0/library/ssl_tls.c:3267:5: warning: 'mbedtls_sha512_finish_ret' accessing 64 bytes in a region of size 48 [-Wstringop-overflow=]
3267 | finish( &sha512, padbuf );
| ^~~~~~~~~~~~~~~~~~~~~~~~~
Regards,
Karthik
Show LessHello,
We are using 1YN - CYW43439 with CYW4343A2_001.003.016.0031.0000.1YN.hcd firmware. We are experiencing the following error when we connect multiple Android devices.
[DEL] Device 75:52:F2:2E:99:A8 Galaxy M33 5G
[7F-40-50-E7-88-6C]# [ 4455.602130] Bluetooth: hci0: command 0x2006 tx timeout
[ 4457.682230] Bluetooth: hci0: command 0x200a tx timeout
[ 4459.762186] Bluetooth: hci0: command 0x2006 tx timeout
We tried the following but didn't help:
echo 0 > /sys/class/rfkill/rfkill0/state
echo 1 > /sys/class/rfkill/rfkill0/state
The problem is only solved when we reboot the system. Is there any other solution to this timeout problem such as reloading the device firmware? Can we force reload the firmware using `hcitool`?
Thanks for all the help!
Mesih
Show LessHello,
I am using the BLDC shield TLE9879 with Arduino through Arduino IDE, to simply drive a BLDC motor with the HALL mode.
Is it possible to have access to the speed/current measurements from the TLE9879 through arduino?
Should i use Keil through a J-link to modify TLE9879? Or something similar?
We have a custom board in which we are using PMIC consisting of IRPS5401MTRBF chip, to get knowledge about this we have ordered EVAL_PS5401-25A (EVK Board)
We are using PowIRCenter Build Tool for configuring EVK board, we are connecting the EVK board to Host PC with USB005 V1.0. We have followed the instructions from PowIRCenter tool User guide we have device (Rocky Family) and selected target board.
We had configured using EVK board user guide and input voltage for all four switchers (A, B, C, D) and LDO is 5V. In the configuration of PM Bus status, we are seeing some error as shown in image below, we want to know whether we should change anything in configurations to remove those errors.
when we are not able to get excepted output (voltage values) as shown in image below these values are generating only when we are writing into the OTP memory (user section 26 OTP's)
And in the configurations, we have observed that Input voltage is taking as 12V, but in configuration I had given 5Vin.
Could anyone forward a default configuration file where we can see the excepted output, and let me know how to write an
output into the register directly by giving any detailed user guide.
Thanks & Regards
Navin
Show Less