PSoC™ 5, 3 & 1 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi,
I'm trying to create a PSoC 58LP888 project with a parallel asynchronous input.
The host will signal on CS* and transfer 9 data bits on the rising edge of WE*.
I need to transfer these 9 data bits to memory using a DMA.
It seems to be pretty easy if you only want to use 8 bits. Just configure component cy_pins_v2_20 as an 8 bit wide input pin called "Parallel_Input". Under mapping, ensure "Contiguous" is selected and use the following in the DMA config:
CyDmaTdSetAddress(dmaTD[0], LO16((uint32)&Parallel_Input_PS), ...
Parallel_input_PS is defined in Generated_Source/PSoC5/Parallel_Input/Parallel_input.c
However, you can't use this technique with anything greater than a 9 bit input port. As soon as you go greater than 8 bits, the contiguous box must be unchecked and the .c and .h files disappear fropm the gerenated source.
I can't find any other 16 bit component that I can connect to GPIO pins and use to DMA into memory.
How can I get over this simple hurdle? I know the DMA can handle 16 bit wide transfers, it should be "just" a matter of getting the data from the IO pins into a 16 bit wide *thing* that I can point the DMA at.
Thing is, I'm "just" stumped!
Any ideas please?
Show LessHello, I am using CY8CKIT-059 prototyping kit and I am trying to use sw3 to switch my channel using analog mux. The attachment is my project. The code is working well with sw1 but when I change to sw3, the switch didn't work well as it stuck at chan 0 ( there's chan 0 and chan 1 in the project). Is there any problem with my code?
Show LessI am trying to capture a stream of bits into a buffer using a PSOC5LP board. I would like to capture roughly 40 bytes each burst at 8MHz.
This seems like a great job for a shift register and DMA.
Apparently shift registers output to a FIFO which needs to be triggered by accessing a status register before the output will update properly. Has anyone used a shift register and DMA like this before? How do you access the appropriate registers and is it possible to use a 32-bit wide shift register?
I will upload a sample project tomorrow (I have run out of work day now)
Thanks
Greg
Show LessIs it possible to create HID and CDC (UART) device simultaneously?
Thanks
Hello,
we are currently developing on a PSoC 5LP and while searching for PGA's tolerances we found out that there are 2 different values for what should be the same PGA. This values can be found in:
- Programmable Gain Amplifier (PGA) (infineon.com) on page 13
- PSoC® 5LP: CY8C58LP Family Datasheet Programmable System-on-Chip (PSoC®) (infineon.com) on page 108
We were wondering which value should we use, are they from different PGA? Maybe one of them refers to ADC buffer
Thank you in advance,
David
Show LessHi,
I have:
- CY8CKIT-050 Kit (it is a 5LP)
- MiniProg4
I can program the 5LP with the MiniProg4 in Reset mode only when it is externally-powered.
But it fails if it is only powered by the MiniProg4.
I'm using latest PSoC Programmer with latest firmware for the MIniProg.
- PSoC Programmer v3.29.1
- MiniProg4 fw version: 2.21.1005
Attached is the image of the error and the how I'm configuring the PSoC programmer.
Any idea why it could be failing? Many thanks
Show Less
I have an analog signal that is coming into my PSOC, I want to amplify (like with a PGA) it and output it but only when a digital hardware signal is high.
I thought I might be able to do this with an analog mux that switches between my signal and a constant Vref, but the software complains that the mux is connected to the PGA.
I get an error like "Net_2368 is expected to only one GPIO analog pin but instead if connects to "\PGA:SC\". please fix th econnection.
is there any way for me to control or gate the analog signal using a digital signal?
this would be fairly easy in firmware, but the firmware cannot react fast enough so I need the digital signal to remain a hardware-only signal.
Show LessHi, I am using CY8CKIT-059 prototyping kit and I tried to create a single differential circuit which connect multiple inputs on analog mux to a single op amp. I want to switch the chosen input on the analog mux using sw1 switch. Is this possible and how to do it? the attachment is my project. Thank you
Show LessHello,
I have a project with a SPI Slave and can't seem to transmit more than 4 bytes. The SPI master receives the first 4 bytes correctly but any further bytes are always the same as the first byte transmitted from the slave.
Global interrupts are enabled and Tx/Rx buffer sizes are set to 64 bytes.
Slave code is as below:
//***********************************************
CyGlobalIntEnable;
SPIS_Start();
SPIS_WriteTxData(0x22u);
SPIS_WriteTxData(0x33u);
SPIS_WriteTxData(0x44u);
SPIS_WriteTxData(0x55u);
SPIS_WriteTxData(0x66u);
SPIS_WriteTxData(0x77u);
SPIS_WriteTxData(0x88u);
while(1u)
{
CyDelay(100);
}
//*******************************************
SPI Master receives 0x22, 0x33, 0x44, 0x55, 0x22, 0x22,0x22
No matter what I try I cannot send more than 4 bytes correctly. Tx interrupt seems to be firing ( CY_ISR(SPIS_TX_ISR) )
and software buffer is enabled.
Any help much appreciated
Show LessHi all,
I am using CY8Ckit-059 and I need to log some data in the SD card with real-time reading using the internal PSOC RTC component.
so the data logs will be like
Timestamp: data1: data2: data3............................
For that Purpose, I was trying the RTC example and printing the timestamp on the USB-UART serial monitor.
In the example code I am trying to printing the tmpVar on the serial monitor after evey 5-10 seconds, and it is giving the same value that was assigned initially.
tmpVar = RTC_ReadSecond();
PrintDecNumber(tmpVar);
tmpVar = RTC_ReadMinute();
PrintDecNumber(tmpVar);
tmpVar = RTC_ReadHour();
PrintDecNumber(tmpVar);
tmpVar = RTC_ReadDayOfMonth();
PrintDecNumber(tmpVar);
/* Get and print month */
tmpVar = RTC_ReadMonth();
PrintDecNumber(tmpVar);
/* Get and print year */
tmpVar = (uint8)(RTC_ReadYear() % 100u);
PrintDecNumber(tmpVar);
/* Get and print day of week */
tmpVar = RTC_currentTimeDate.DayOfWeek;
USBUART_PutChar(tmpVar + 0x30u);
can anybody please help regarding this?
If any example is available please share.
Show Less