??? 04/19/10 20:00 Read: times |
#175133 - Hobbyist asking for professionals to solve noise problems |
hello All
I am happy to see a forum on 8052 where decent people share knowledge with all i am basically a hobbyist my primary job is VLSI physical design, but I have a strong interest towards Electronic gadgets, here i am discussing one circuit drawn by me and need your comments on where the circuit is lagging or what can be the problems as i have already done the proto typing the circuit is functional but still not guaranteed to face every worst condition From last few days i have been struggling with various noise problems and some how now feels to get a second opinion from you all intelligent people so as to learn from your views/experiences. Brief about the machine The machine is an exposure controller block which takes few parameters from user viz. time of exposure and voltage to provide after the above parameters are added the machine operates and provide a fix energy to connected load (inductive) The whole schematic consist of three sheets I’ll discuss each in brief Sheet 1 Consist of basic microcontroller circuit I have used a 4X4 keypad on P1.the connector is 12 inch long ribbon wire cable few i/p o/p connections on P0,LCD on P2 P3 for interrupt and I2c My problems : 1. I faced false triggering actions on i/ps so I put a 0.1uF cap from each pin to gnd is it correct way of doing things my keypad is scanned after every 5mS through Timer 1 2. please observe the o/p for SSR as this is positive logic(which I learnt is not good with 89s52, reset problem ) so I intend to change this but I also have a problem around this I have seen in very noisy environment like welding sets and others motors switching my control for pin P0_3 is lost I need to have the controller pin AND’ed with a user i/p switch see pinP0_4 the ideal case should be the micon setting the pulse width but sometimes the micon just forgot to switch off the signal the software implementation is like this ...insert code here volatile signed short count =0 ; //value range 0-700 void timer1_ISR (void) interrupt 3 using 3 { TL1 = 0xff ; TH1 = 0xb7 ; count--; if(count <= 0) TR1 = 0; } Main{ Some code if(preState != state) // entry condition TR0 = 0;// disable keypad IE = 0x88;// enable only timer1 interrupt TH1 = 0xb7 ; //load values for 20 mS count TL1 = 0xff ; count = timer_LUT[switch][timePos-1]; //load how many 20 mS cycles gotoxy(4,1); while(INPUT); // wait for key press lcdScreen(5); // display screen OUTPUT = 1; //activate ssr TR1 = 1; // run timer while((TR1) && (!INPUT));// either tr1 expires or user release key OUTPUT = 0; // SSR off lcdScreen(6);// display screen done TR0 = 1; //enable keypad IE= 0x83;// enable keypad interrupt } ...insert code here Please suggest what could be wrong as the problem is quite repetitive in noisy environment Sheet2 Basically consist of serial to parallel shift registers CD 4094 which I used to make a selection of 1 out of 16 tapings in a transformer the cd4094 drive uln 2803 which further drives relay connected as hierarchical decoders I used relay to switch as I was not very comfortable with using TRIACS any suggestion for improvement are welcome The other stuff is PCF 85 74 just that I needed few more pins as I was out in controller used i2c port expander was an additional i/p after the first proto more or less the logic in this sheet works fine but few doubts Should I connect the micon pin to shift register directly or need to use and r c network to avoid any noise ? in idle case when the registers are done the shifting I write zero’s the i/ps CLK,STROBE and DATA is it OK? Sheet 3 shows the hierarchical decoding for realizing a 16:1 selector switch I used relays but I am open for suggestions So I think quiet a long post with so many expectations please respond when time allows as sincerely wish to know the opinion of professionals and also need the help to develop the solution more Robust ,Any further details needed can be provided. Best regards Manish jain |