Hello Sir,
During one of display product we are using MSP430FR2433IRGE MCU for operating 4 digit display.
First kindly find datasheet, schematic, and program code of MSP which we are using for display operation.
Issue description :
We are using 7 GPIO's for 7 Segments, 1 GPIO for colon and 4 GPIO's for Digit control pin to display the current time in POD.
We tested a 7 segment display with an MSP controller. In that we are facing some problems (i.e) while 4 digit control GPIO pins are directly connected from MSP to 7-seg display it is working fine without any overlapping . if 4 digit control GPIO pins are connected from MSP to 7-seg display through LED brightness circuit, some overlapping is happening.
sequence we are following to display the time in 7-seg display:
Case 1: (without switching delay -> while connecting directly it is working, Not working through while connecting through LED brightness circuit)
Set corresponding values in 7-seg GPIO's
Digit 1 ON
delay->3 milli second to hold the value in a digit for some time
Digit 1 OFF
similarly for...
digit 2
digit 3
digit 4
Case 2: (with from 1sec to 50 milli sec switching delay not overlapping while connecting through LED brightness circuit)
Set corresponding values in 7-seg GPIO's
Digit 1 ON
delay->3 milli second to hold the value in a digit for some time
Digit 1 OFF
delay - eg : 1 second switching delay
digit 2
delay - eg : 1 second switching delay
digit 3
delay - eg : 1 second switching delay
digit 4
delay - eg : 1 second switching delay
case 3: (If we are reduced that switching delay to less than 50 milli seconds overlapping happening when connected through LED brightness circuit)
500 milli sec switching delay - No overlapping
250 milli sec switching delay - No overlapping
100 milli sec switching delay - No overlapping
50 milli sec switching delay - No overlapping (In video resolution we may found overlap but it is not visible)
40 milli sec switching delay - overlapping happens
without switching delay directly connected - overlapping happens
without switching delay_connected_through LED brightness circuit - overlapping happens
#define SWITCH_DELAY 800000 // 50 msec #define SEG_HLD_TIME 50000 // 3 ms void tlqi_POD_7SEG_Display_time(unsigned char in_ucHourDig1, unsigned char in_ucHourDig2, unsigned char in_ucMinDig1, unsigned char in_ucMinDig2) { /------------------------Set Hour Digit------------------------/ tlqi_POD_display_Digit_Val(in_ucHourDig1); GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN7); //digit 1 __delay_cycles(SEG_HLD_TIME); GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN7); //digit 1 __delay_cycles(SWITCH_DELAY); tlqi_POD_display_Digit_Val(in_ucHourDig2); GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN0); //digit 2 __delay_cycles(SEG_HLD_TIME); GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN0); //digit 2 __delay_cycles(SWITCH_DELAY); /------------------------Set Minutes Digit------------------------/ tlqi_POD_display_Digit_Val(in_ucMinDig1); GPIO_setOutputHighOnPin(GPIO_PORT_P3, GPIO_PIN1); //digit 3 __delay_cycles(SEG_HLD_TIME); GPIO_setOutputLowOnPin(GPIO_PORT_P3, GPIO_PIN1); //digit 3 __delay_cycles(SWITCH_DELAY); tlqi_POD_display_Digit_Val(in_ucMinDig2); GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN0); //digit 4 __delay_cycles(SEG_HLD_TIME); GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0); //digit 4 __delay_cycles(SWITCH_DELAY);