PSoC™ 5, 3 & 1 Forum Discussions
Using a PSoC 5 kit, CY8CKIT-059, the I2C running at 100kHz occasionally locks up at extreme cold ~ -25 to -40.
Are there know issues with the PSoC 5 at low temperatures or should I focus on the CY8CKIT-059 kit as the potential issue?
When the I2C locks up, it reports receiving 0 and won't work properly until power is recycled.
The problems go away when I2C speed is dropped to 50kHz.
Greg
Show Less
dear all,
I am into writing a PSoC 3 based program wherein I have to control the period of a wave form using data obtained from UART. I have created a program where the data is received and it is converted to an integer value. the problem is I'm not able to use this value outside the "if" structure where i'm formatting the command. for example if I have to maintain an analog value in the output of VDAC for certain duration of time that was specified through UART, this delay is not reflected during the execution. only the initial delay is maintained. the change is not made. I'm new to UART interrupt based programming. I have attached a project file here. it might be an old version of creator. please help me.
Show LessHello,
I need to implement USB mass storage device (using MSC class) on PSOC CY8C5267LTI-LP089 chip. For storage I am going to use SPI flash. Thanks to Cypress community there are available drivers for USB and MSC descriptors as well. Unfortunately, this is not enough for me at this moment, because linking storage and file system libraries with the MSC library takes effort and well understanding of the USB driver.
Could you please share me links to available MSC examples on PSOC 5 series or detailed documentation about the USB driver or some other recommendations?
Show LessI had placed all my components in my project based on CY8CKIT-059, including a Capsense linear slider, using five PSoC pins diplexed, resulting in ten sensor elements. It built fine, and the pins section even listed the five additional sensor elements, with no pins assigned. Later, I added a couple of digital outputs (which I've since deleted). After that point, the Linear Slider Widget insists on using ten pins instead of five, seemingly ignoring the diplex option. I've tried a bunch of variations to no avail. There is very little information that I can find on the web on diplexing, and there's not much documentation for it in the Capsense Component Datasheet. Can anyone figure out how to control the outcome such that I'm only using 5 pins? Project uploaded. Thanks.
-Dave
Show LessWe are using the UART with the HW fifo of 4, we find that when disabling interrupts for long time (not for 4 fifo long), we start to loss bytes sometimes (for our opinion the HW fifo not works OK).
Here is our interrupt handler that we used for testing:
CY_ISR(drvUART_A_RxISR)
{
uint8 dataByte, statusByte;
uint16 receivedData;
uAmaxrcv=0;
do{
receivedData = UART_A_GetByte();
dataA[k] = receivedData;
k = (k+1)%BLEN_TEST;
dataByte = (uint8)(receivedData & 0x00FFu);
statusByte = (uint8)((receivedData & 0xFF00u) >> 8u);
if((statusByte & UART_A_RX_STS_FIFO_NOTEMPTY) != 0u){
if((statusByte & (UART_A_RX_STS_BREAK | UART_A_RX_STS_PAR_ERROR |
UART_A_RX_STS_STOP_ERROR | UART_A_RX_STS_OVERRUN)) != 0u){
g_drvUART_driverStatus.uart_rxStatusErr[DRV_UART_MODULE_A]++;
}
else{
drvUART_fifoPushByte(DRV_UART_RX_FIFO_A, dataByte);
uAmaxrcv++;
}
}
}while((statusByte & UART_B_RX_STS_FIFO_NOTEMPTY) != 0u);
if (uAmaxrcv > uAprevmaxrcv){
uAprevmaxrcv=uAmaxrcv;
}
}
What we have seen that when we care disabling the interrupt for short time (not more than 1 byte in 4 bytes HW fifo) we are not loosing bytes, but when we are increasing the time of disale interrupt (global interrupt) we start to loose bytes even when 'uAprevmaxrcv' is 2.
Thanks for any help,
Dudi
Show Less
I am trying to create a master SPI using PSOC 5. For debugging purposes I've set the clock to be 5 Hz (so I can track the sent and received data in real time). The code I am using is below:
int main(void){
CyGlobalIntEnable;
SPIM_1_Start();
LCD_Char_1_Start();
LCD_Char_1_PrintString("Waiting");
uint8_t recieved_byte = 0;
for (;;){if (Starting_Pin_Read() > 0){break;} else {CyDelay(100);}}
LCD_Char_1_ClearDisplay();
LCD_Char_1_PrintString("Starting");
SPIM_1_WriteTxData(0x00); // count is 0
SPIM_1_WriteTxData(0x00); // Status is "Ready"
SPIM_1_WriteTxData(0x0F); // LP is F
SPIM_1_WriteTxData(0x2D); // CRC from F is 2D
LCD_Char_1_PrintInt16(SPIM_1_GetTxBufferSize());
while (SPIM_1_GetTxBufferSize()>0){CyDelay(1000);} // Waiting for all words to be sent
CyDelay(4000);
LCD_Char_1_ClearDisplay();
LCD_Char_1_PrintString("Recieved Data:");
LCD_Char_1_Position(1, 0);
for (int i = 0; i<4; i++){
while (SPIM_1_GetRxBufferSize() < 1) {
CyDelay(1000);
} // Waiting till we get a next word
if (SPIM_1_GetRxBufferSize()>0) {
recieved_byte = SPIM_1_ReadRxData();
LCD_Char_1_PrintHexUint8(recieved_byte); //displaying recieved word
}
}
}
So I would expect the TxBufferSize to not be 0 when I am printing it out, but it is. What am I doing wrong?
My configuration of SPI_Master is
If one needs additional documents to replicate, I will happily send my source code!
Show LessOn a new project, I'm a little worried about the Flash consumption (a previous project was using 94%).
For my reference, what's the smallest possible USB Bootloader on PSoC3? With PK51 and optimization 11, I'm getting 13500 B = 21% of Flash right now.
Show LessSuddenly the CY8C5888FNI-LP214 can't work(can't UART, IO ,MDIO, just have SWD function), even though I tried to power up several times. But I just download the code for MCU, then it get work normally, I didn't change any setting environment. I have least 2 PCS modules having this problem. So I want to know the root cause urgently.
Show LessHello, iv`e just started to work with Psoc 5LP, i want to control a bipolar Stepper motor ( Haydon Kerk http://www.haydonkerkpittman.com/products/linearactuators/canstackstepper/37mm37000 ) and with external driver ( https://learn.adafruit.com/adafruit-tb6612-h-bridge-dc-stepper-motor-driver-breakout/overview ) did someone used those components or something similar ?.. did someone wrote a code or a block diagram in the Psoc Creator that related to this issue ? thank you very much.
Show Less