chrono10 Posted July 28, 2004 Report Share Posted July 28, 2004 I'm trying to decode serial data using a 74F673A 16-bit serial-in/parallel out IC. I use two 7490 decade counters along with a AND gate to give me a HIGH signal on the 16th count (counter is set to count from 0 to 16). The high signal should activate the 74F673A to parallel load the storage register from the shift register and should also activate the incoming serial data to retransmit. After having these many ICs connected to the power supply, i think the 7805 overheats because the clock signal becomes [very] unstable which is terrible for the serial transmission. Does anyone have any tips for me to get this circuit to run better. Thanks! Quote Link to comment Share on other sites More sharing options...
russlk Posted July 31, 2004 Report Share Posted July 31, 2004 You think it is overheating? Put your finger on it. If you get burned it is too hot, if not, that is not your problem. Quote Link to comment Share on other sites More sharing options...
harsh Posted July 31, 2004 Report Share Posted July 31, 2004 why do u have that transistor connected to the clock..what is its purpose..? Quote Link to comment Share on other sites More sharing options...
audioguru Posted July 31, 2004 Report Share Posted July 31, 2004 Harsh,The transistor provides the clock signal at the mains frequency.Chrono,The transistor will work a lot better if you add a 4.7K resistor from its collector to +5V. What does the clock signal connect to, that is off the page?If you filter the AC from the power transformer, feed it to a Schmitt-trigger and use that as a source of the clock signal, then the clock signal will be much more stable.The zener diode acts like an ordinary diode, since the base-emitter junction of the transistor limits the positive voltage to about 0.7V. Quote Link to comment Share on other sites More sharing options...
harsh Posted July 31, 2004 Report Share Posted July 31, 2004 i have a tip ...remove the npn transistor the 1 k resistor and the zenir diode. and generate a normal clock signal..or better yet take the clock from the circuit that is generating the serial data ... Quote Link to comment Share on other sites More sharing options...
harsh Posted July 31, 2004 Report Share Posted July 31, 2004 ps.. EDIT::how do i post a circuit on this message board Quote Link to comment Share on other sites More sharing options...
audioguru Posted July 31, 2004 Report Share Posted July 31, 2004 Click the "Attach" button during your reply, and select the circuit from your hard drive. Only certain extensions are allowed (jpg, gif etc., it shows what) and the size limit is 3M. If it says,"That name is already used", then re-name your file and attach it again. ;D Quote Link to comment Share on other sites More sharing options...
harsh Posted July 31, 2004 Report Share Posted July 31, 2004 Thanks 8) Quote Link to comment Share on other sites More sharing options...
chrono10 Posted August 1, 2004 Author Report Share Posted August 1, 2004 I'm positive the 7805 overheats because it heats the whole breadboard up, and with less ICs (just the counters) the clock signal is perfectly stable (otherwise it's stable for a few seconds, then goes bezerk). The transformer I'm using is 13.5 volts, and the 7805 shoudl handle up to 20 volts, so it's probably a Amperage problem, and I'm not quite sure how to handle that (maybe a resistor before the rectifier).Audioguru thanks for the tip with the clock signal. The truth is, I really don't know any other way to set up a clock signal then with the way I use (I'm don't have a degree and I'm just a beginner). I'll look up the Schmitt-Trigger you talked about.The whole setup is to decode the serial output from a SNES controller, and represent it parallel-ly using the 74F673A IC. I use info from http://www.gamesx.com/controldata/snesdat.htm and http://www.gamesx.com/controldata/nessnes.htm. And it's been reliable because i've checked the incoming serial data with an LED manually and it works as it should. Thanks for the tips! Quote Link to comment Share on other sites More sharing options...
audioguru Posted August 2, 2004 Report Share Posted August 2, 2004 Chrono,If your transformer is 13.5VAC, then the rectified and filtered voltage at the input of the 7805 is about 17.5V. That's nearly 3 times higher than is necessary, and since power (heating) equals Voltage times Current, then the amount of heating is also nearly 3 times more than is necessary. Use a 6 to 7VAC transformer or put a heatsink on the 7805. Isn't your 7805 in a TO-220 metal-tab case with a hole for a bolt? You could also use a center-tapped 12.6VAC transformer with only 2 rectifier diodes.What does the clock signal do when it goes "bezerk"?Instead of adding a Schmitt-trigger, why not try simply adding the collector resistor to the transistor, that I recommended?If the SNES controller generates its own clock that is not syncronized with the mains frequency, then your decoder's clock must come from the controller, not from the mains. Quote Link to comment Share on other sites More sharing options...
harsh Posted August 2, 2004 Report Share Posted August 2, 2004 i got this info on the site u just listed...i did not include the timing diagrams stated at the bottom of the last paragraph because well they werent really timing diagrams.Every 16.67ms (or about 60Hz), the SNES CPU sends out a 12us wide, positive going data latch pulse on pin 3. This instructs the ICs in the controller to latch the state of all buttons internally. Six microsenconds after the fall of the data latch pulse, the CPU sends out 16 data clock pulses on pin 2. These are 50% duty cycle with 12us per full cycle. The controllers serially shift the latched button states out pin 4 on every rising edge of the clock, and the CPU samples the data on every falling edge. Each button on the controller is assigned a specific ID which corresponds to the clock cycle during which that button's state will be reported. The table in section 4.0 lists the ids for all buttons. Note that multiple buttons may be depressed at any given moment. Also note that a logic "high" on the serial data line means the button is NOT depressed. At the end of the 16 cycle sequence, the serial data line is driven low until the next data latch pulse. The only slight deviation from this protocol is apparent in the first clock cycle. Because the clock is normally high, the first transition it makes after latch signal is a high-to-low transition. Since data for the first button (B in this case) will be latched on this transition, it's data must actually be driven earlier. The SNES controllers drive data for the first button at the falling edge of latch. Data for all other buttons is driven at the rising edge of clock. Hopefully the following timing diagram will serve to illustrate this. Only 4 of the 16 clock cycles are shown for brevity. SNES Controller Button-to-Clock Pulse Assignment Clock Cycle Button Reported 1 B 2 Y 3 Select 4 Start 5 Up on joypad 6 Down on joypad 7 Left on joypad 8 Right on joypad 9 A 10 X 11 L 12 R 13-16 none (always high) Quote Link to comment Share on other sites More sharing options...
audioguru Posted August 2, 2004 Report Share Posted August 2, 2004 Hi Chrono,As the article says, the controller is clocking out its data "at about 60Hz", which might be the same (they don't say) as your mains clock. If the clocks aren't exactly the same (frequency and phase), then your decoder will be intermittent.So what's wrong with your 7805 heater and bezerk clock? Quote Link to comment Share on other sites More sharing options...
chrono10 Posted August 2, 2004 Author Report Share Posted August 2, 2004 Hi Chrono,As the article says, the controller is clocking out its data "at about 60Hz", which might be the same (they don't say) as your mains clock. If the clocks aren't exactly the same (frequency and phase), then your decoder will be intermittent.So what's wrong with your 7805 heater and bezerk clock?Oh, no, no, it says "the CPU sends out 16 data clock pulses on pin 2". The controller doesnt' generate it's own clock, the SNES CPU (or my setup) generates the clock. So it doesn't have to be a 60Hz clock. At first I thought the controller generated it's own clock too, but i tested it and it doesn't.Audioguru, i suspected that the rectified voltage would be that high, so probably that is causing the heat. I was thinking of purchasing a new AC transformer, I just wasn't sure if i had to yet, i will look into it now.Berzerk means that the clock is no longer steady. It will be high low high low low low high low low high. That only happens when the 7805 gets too hot, and i have to cool it down before it's steady again. Any theories as to why?I'm going to try out a new setup with the 4.7K resistor you suggested and a lower tranformer. I'll post how it turns out. THANKS!! Quote Link to comment Share on other sites More sharing options...
audioguru Posted August 3, 2004 Report Share Posted August 3, 2004 Hi Chrono,Sorry that I confused CPU with controller. The transistor will work much better with a collector resistor.The 7805 shuts-down when its internal temperature reaches 125 degrees C, to protect itself. So it will cycle on, off, on, off, etc. Your whole circuit will go beserk! I can't say how quickly (depends on how much heating it develops, which determines how quickly that it heats up). With less transformer voltage, it will be much cooler.Without a heatsink, a 7805 in a TO-220 case will shut-down at about 1.5 Watts of power dissipation. Calculate or measure its load current and multiply that with the voltage across it, to see if it will need a heatsink. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.