Psoc1 uart rx interrupt

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
KeTa_1875721
Level 2
Level 2
5 replies posted First reply posted First question asked
I am using an CY8C21534-24PVXI part using a UART block version 5.3 Have it set up to use both tx and rx interrupts, modified boot.tpl accordingly. Am NOT using the command buffer feature, have my own fifos. The transmitter works fine, but I can never get an Rx interrupt. Have no idea why this is, compiles fine, schematic editor looks fine just like the other examples. Scoped it and data is getting to the pin so this is not the issue. So..what's missing here, does this actually work? thanks ken
0 Likes
1 Solution
SampathS_11
Moderator
Moderator
Moderator
250 sign-ins 250 solutions authored 5 questions asked

Hello @KeTa_1875721 ,

Kindly open UART_1INT.asm file under "lib" "source" tree. Kindly note that Tx and Rx Interrupt service routines are already implemented in this file.

Kindly remove lines 27,28 in Disp_Prot.c. The ISRs are already implemented, and the ISR itself will be made to call the functions referred to in the pragma declaration.

#pragma interrupt_handler COM_Rx_ISR
#pragma interrupt_handler COM_Tx_ISR

Uncomment (; is comment marker in assembly language) lines 106-108 and replace the function call with COM_Tx_ISR. The lines should now look like

PRESERVE_CPU_CONTEXT
lcall _COM_Tx_ISR
RESTORE_CPU_CONTEXT

Uncomment lines 169-172 and replace the function call with COM_Rx_ISR. The lines shouls now look like 

PRESERVE_CPU_CONTEXT
lcall _COM_Rx_ISR
RESTORE_CPU_CONTEXT

Furthermore, a review of AN90833 - PSoC® 1 Interrupts will be helpful.

Best regards,

Sampath Selvaraj

View solution in original post

0 Likes
3 Replies
Ekta_N
Moderator
Moderator
Moderator
750 replies posted First like given 250 solutions authored

Hello @KeTa_1875721 

Could you please attach you project as this will help us to get a better understanding of the issue?

Thanks and Regards

Ekta

0 Likes
lock attach
Attachments are accessible only for community members.

Thank Ekta for your time in advance for trying to get to a solution!

Attached is the project, pretty basic remote display. Most all functions tested and working.

Only problem here is COM_Rx_ISR() never fires. Data is getting to the pin ok.

My only assumption is that the schematic editor did not connect the pin right or something is blocking the rx interrupt. Transmitter interrupt works fine, no issues

Thanks

Ken

 

0 Likes
SampathS_11
Moderator
Moderator
Moderator
250 sign-ins 250 solutions authored 5 questions asked

Hello @KeTa_1875721 ,

Kindly open UART_1INT.asm file under "lib" "source" tree. Kindly note that Tx and Rx Interrupt service routines are already implemented in this file.

Kindly remove lines 27,28 in Disp_Prot.c. The ISRs are already implemented, and the ISR itself will be made to call the functions referred to in the pragma declaration.

#pragma interrupt_handler COM_Rx_ISR
#pragma interrupt_handler COM_Tx_ISR

Uncomment (; is comment marker in assembly language) lines 106-108 and replace the function call with COM_Tx_ISR. The lines should now look like

PRESERVE_CPU_CONTEXT
lcall _COM_Tx_ISR
RESTORE_CPU_CONTEXT

Uncomment lines 169-172 and replace the function call with COM_Rx_ISR. The lines shouls now look like 

PRESERVE_CPU_CONTEXT
lcall _COM_Rx_ISR
RESTORE_CPU_CONTEXT

Furthermore, a review of AN90833 - PSoC® 1 Interrupts will be helpful.

Best regards,

Sampath Selvaraj

0 Likes