PSoC™ 5, 3 & 1 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi people,
Cypress(PSoC 3/5) is Planning to start a Component Design Contest.
The purpose of this Design Contest is to make the Community users get more acquainted with designing components in PSoC 3/5. Once we start designing components, we will be able to understand the architecture of the PSoC UDBs better and realise how flexible PSoC 3/5 really are!!!
Contest Rules : A Complete specification for the component will be given every friday.
You get 1 week to design it, your deadline for submission will be the next friday. Timeline of submission plays a major role in deciding who the winner is !. The quality of the design matters ofcourse.
The winner will be decided by a bunch of engineers at cypress and he shall be awarded with 200CDC points.
Every Individual on planet Earth shall participate.
The First specification will be posted this friday (7th of december). We will initially start with simple designs and move complex over the weeks.
Get ready for a healthy challenge. Though there is only one winner, every one gets benefited by the learnings from it.
On the course of the design, you shall post all queries and it shall all be clarified.
Regards,
Ramnath R K
Show Lesshi...
today i tried to read a 12 byte data with an UART component of Psoc3, for this i kept the settings of UART in RX mode as
9600 Bits per second (kept with reference to my RFID reader, which is the source for 12 byte data).
Data bits:8,
Parity type:None,
Stop bits:1
Flow control: None,
Clock Selection :Internal clock,
RX Address configuration:
Adress mode: None,
Advanced features:
Break signal bits: None,
Enable 2 out of 3 voting per bit, and disabled CRC outputs.
RX Buffer sizes:12 bytes,
Oversampling rate: 8X
and i have chosen an isr_1 component...
The basic problem what i am facing is, i have written an ISR in such a way that whenever my RFID reader (whose TX-OUT pin connected as RX pin of UART) detects the data, the control will transfer to ISR from main program and remains in ISR till it completes the reading of 12 bytes of data......
when it completes the reading of 12 bytes of data..the control is expected to return to main program..........till now everything is fine.....
but, when the control comes back to main program, it is expected to remain in the main program till the next interrupt occurs..... but, eventhough the control is properly coming back to main program, it is immediatly swithing over to ISR and remains there....
if i disable the ISR interupt, when my ISR routine is executing....after completion of ISR execution control coming back to main program and remains there...but it is not accepting the further interrupts...(as I disabled it).
If i re-enable the interrupt in my main program, the control is not remaining in main program, it is moving to ISR and stuck at one point as commented in the below code......
--------------------/* This is the part of main program which i am having problem*/--------------------------------------
for(;;)
{
// isr_1_Enable();
if(univ==1)
{
univ=0;
/* I WOULD LIKE TO DO MY TASK HERE */
}
}
-----------------------/* This is my ISR */-----------------------------------------------------------------------------------------------
CY_ISR(isr_1_Interrupt)
{
/* Place your Interrupt code here. */
/* `#START isr_1_Interrupt` */
/* Check the UART status */
/* Check the UART status */
univ=1;
isr_1_Disable();
/*---- This is where my control stuck when i uncomment // isr_1_Enable(); in main program. ----*/
for(i=0;i<12;)
{
ch = UART_1_GetChar();
// /* If byte received */
if(ch > 0)
{
text=ch;
i++;
}
}
/* Finally 'text' contains my received data, so that i can use it for further analysis */
/* `#END` */
/* PSoC3 ES1, ES2 RTC ISR PATCH */
#if(CYDEV_CHIP_FAMILY_USED == CYDEV_CHIP_FAMILY_PSOC3)
#if((CYDEV_CHIP_REVISION_USED <= CYDEV_CHIP_REVISION_3A_ES2) && (isr_1__ES2_PATCH ))
isr_1_ISR_PATCH();
#endif
#endif
}
Here i am beleiving that, once my RFID reader receives the 12 byte data, interrupt become enabled and the control moves in to ISR...whenever, it completes the execution of ISR it moves back to main program....but still the interrupt (which became active due to previous read of RFID data) is in active state, therefore it is immediately moving to ISR without staing in the main program....because of not having 12 byte data second time it goes....it remains stucked at that poit....
now, can any one help me how to make my code, to remain the control in the main program itself (when it comes back from ISR) untill the next interrupt comes..
NOTE: Here iam attaching a ZIP file...you can go through it.
Show LessHi,
i would like to flash an CY8CTMA300 device using another µC by HSSP but i do not find the needed programming vectors to perform the flash. Is there a document available containing these vectors?
Show LessMore than an ADC, delta sigma modulator shall very effectively be used as a filter, when the sampling rate is appropriately choosen.
When we have an extremely low sampling rate, as low as about 2000SPS, the Sync 4 filter inside the delta sigma adc will strip down the frequency components above 1000 Hz, infact, the sync4 filter has good response to frequencies below 200Hz..
So, if you send a stream of pulses to the ADC, we would get the average value of it.
Caution : Choose the range of the ADC Cleverly, as that might result in a poor resolution(here, average value), if not properly choosen.
Regards,
Rahul ram
Show LessHi to all....
iam beginner to Psoc3...recently i tried to interface JHD12864E graphical LCD to psoc3...here, iam mentioning the steps that i did to interface it....
1) I have taken 8 GPIOS of psoc3 (PORT6 of first touch starter kit) for connecting to DB0 to DB7 of JHD12864E.
2) and i have taken 6 another GPIOS to various control pins of JHD12864E...
RS--->P4[6], RW--->P4[4], ENABLE---->P12[3],
CS1----> P4[5], CS2----->P4[7], RESET---->P2[7],
and named each pin as shown above....
and i connected the power pins of JHD12864E as follows....
pin 1----> GND, Pin2---->+5V, Pin3---> the varying end of 10K variable resistor,
Pin 18---> connected to one end of 10K variable resistor, and other end of variable resistor connected to ground. Pin 19---->+5V, and Pin20------> GND
3) here iam mentioning the source code which i have written..............
#include <device.h>
void main()
{
/* Place your initialization/startup code here (e.g. MyInst_Start()) */
/* CyGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
//RESET of GLCD//
RESET_Write(0);
CS1_Write(0);
CS2_Write(0);
RESET_Write(1);
CS1_Write(1);
CS2_Write(1);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//First half DISPLAY ON// //to turn ON the first half of this LCD the data through the pins should be like this//
CS1_Write(1); // CS1=1, CS2=0, RS=0(for instruction), RW=0 (to write),//
//and DB0=7,DB6=0,DB5=1,DB4=1,DB3=1,DB2=1,DB1=1,DB0=1//
CS2_Write(0); //ENABLE Should be falling edge//
RS_Write(0);
RW_Write(0);
PRT0DB_Write(0x3F);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//Second half DISPLAY ON// //to turn ON the first half of this LCD the data through the pins should be like this//
CS1_Write(0); // CS1=0, CS2=1, RS=0(for instruction), RW=0 (to write),//
CS2_Write(1); //and DB0=7,DB6=0,DB5=1,DB4=1,DB3=1,DB2=1,DB1=1,DB0=1//
RS_Write(0); //ENABLE Should be falling edge//
RW_Write(0);
PRT0DB_Write(0x3F);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//first half Y Adress // DB7=0,DB6=1, DB5 TO DB0 is to give the Y address
CS1_Write(1);
CS2_Write(0);
RS_Write(0);
RW_Write(0);
PRT0DB_Write(0x60);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//second half Y Adress //
CS1_Write(0);
CS2_Write(1);
RS_Write(0);
RW_Write(0);
PRT0DB_Write(0x60);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//first half X page select// DB7=1,DB6=0,DB5=1,DB4=1,DB3=1, DB2 TO DB0 is to give x address//
CS1_Write(1);
CS2_Write(0);
RS_Write(0);
RW_Write(0);
PRT0DB_Write(0xBB);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//second half X page select//
CS1_Write(0);
CS2_Write(1);
RS_Write(0);
RW_Write(0);
PRT0DB_Write(0xBB);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//first half Start line
//CS1_Write(1);
//CS2_Write(0);
//RS_Write(0);
//RW_Write(0);
//PRT0DB_Write(0xD0);
//ENABLE_Write(1);
//ENABLE_Write(0);
//second half start line
//CS1_Write(0);
//CS2_Write(1);
//RS_Write(0);
//RW_Write(0);
//PRT0DB_Write(0xD0);
//ENABLE_Write(1);
//ENABLE_Write(0);
//first half write data// TO WRITE DATA RS=1, RW=0
CS1_Write(1);
CS2_Write(0);
RS_Write(1);
RW_Write(0);
PRT0DB_Write(0xAA);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
//second half write data//
CS1_Write(0);
CS2_Write(1);
RS_Write(1);
RW_Write(0);
PRT0DB_Write(0xAA);
ENABLE_Write(1);
CyDelay(1);
ENABLE_Write(0);
}
/* [] END OF FILE */
and I kept all the pins driving mode as STRONG...
after doing this, my GLCD backlight is turning ON......but it is not displaying any data.......
so, can any one help me how to interface it correctly to Psoc3, so that i can send various data to display in the intended position of GLCD......here iam attaching the "topdesign" page of my workspace
Show LessHello Friends,
I got an assignmemnt to implement linear slider and capsense buttons just with the help of datasheet and not looking into example project. But the problem is, I already know how to get these things working.
I am posting this problem in both PSoC 3 and 5 forum so that forum members who have not used the capsense CSd component atleast once or have forgotten how to get them working can try this out and note down all the problems faced and suggestions so that we can help our customers .
Please donot mention to look into example project.
Show LessI begin to desperate, hopefully you can help 🙂
1. Changed Pind to "Pull down" and "Change from read"
2. added "ljmp _foo" to PSoCGPIOINT.asm
3. added
#pragma interrupt_handler foo
int counting=0;
void foo(void)
{
counting++;
return;
}
to main.c.
The pin is working but the value is now increased when the is a edge.
I also attached the whole project.
Thanks for support
Show Less