|
Post by David Murray on Sept 17, 2006 14:53:26 GMT -5
I thought I was being extreemly clever by hooking up a reset button to my latest IEC hack, and also connecting that reset line to the IEC port. Well, it does work, but seems to have the undesireable effect of causing my DTV not to boot up if my 1581 drive is connected but powered down. I assume any IEC device would cause the same issue, but have only tried it with the 1581. So I have to power the 1581 drive up before turning on the DTV. Now.. I assume that somehow the IEC drive is pulling the reset line low when powered off. How does a real C64 handle this? I am pretty sure a real C64 can run with the drives turned off.
I suppose a solution would be to go to a double-pole reset switch or have two seperate reset switches. But it is hard to find a double-pole switch as small as I'm using and I don't really have room for a larger switch or two switches.
|
|
|
Post by jsaily on Sept 18, 2006 1:14:07 GMT -5
Hmm... there is no IEC reset line in the DTV board, so is the switch only connected to the outside bus? If the reset is not connected to the DTV, how could it influence the booting? I suspect that the ATN line may be the cause. You can find information about the IEC-bus here: jderogee.tripod.com/project1541_downloads/IEC_docs.zip
|
|
|
Post by spiff on Sept 18, 2006 4:37:45 GMT -5
I thought I was being extreemly clever by hooking up a reset button to my latest IEC hack, and also connecting that reset line to the IEC port. Well, it does work, but seems to have the undesireable effect of causing my DTV not to boot up if my 1581 drive is connected but powered down. I assume any IEC device would cause the same issue, but have only tried it with the 1581. So I have to power the 1581 drive up before turning on the DTV. Now.. I assume that somehow the IEC drive is pulling the reset line low when powered off. How does a real C64 handle this? I am pretty sure a real C64 can run with the drives turned off. I suppose a solution would be to go to a double-pole reset switch or have two seperate reset switches. But it is hard to find a double-pole switch as small as I'm using and I don't really have room for a larger switch or two switches. I can confirm that there is no problem starting a real C64 with an IEC device (in my case a 1541) connected but not turned on. I would also agree with you that this is somewhat strange, since the reset-line in the C64 is actually directly connected to the IEC bus (and user port etc.), and hooked directly to the reset-lines of various chips. In the drive, the reset line has a pull-up resistor (1K), and I assume this is what causes the problem: When the drive is not powered this acts as a pull-down and activates the reset of the DTV. So the problem appears to be the input on the DTV ASIC for reset which does not have the same characteristics as the reset-line in the C64. First of all, the C64 components are probably TTL, and secondly there are several ICs being connected to the reset-line (CPU, CIAs, SID etc). This combination must be what causes it to work on the C64 and not on the DTV. One possible solution might be to have a TTL output buffer on the reset-line before it is taken to the IEC bus. Since the IEC-devices normally have an input buffer the reset-line is mostly one-way. Of course some people have modded their IEC devices with reset-buttons that would reset their C64. This would of course not work with an output buffer.
|
|
|
Post by David Murray on Sept 18, 2006 8:08:57 GMT -5
Hmm... there is no IEC reset line in the DTV board, so is the switch only connected to the outside bus? If the reset is not connected to the DTV, how could it influence the booting? Perhaps you misunderstood. The reset button is connected to the reset line on the DTV board AND also connected to the reset line on the IEC bus. THe idea is that I wanted to be able to press the reset button on my DTV box and have it reset the 1581 too. (just like a real C64 does) Spiff: Can you give me an example of a TTL output buffer? I'm not 100% sure what that would be.
|
|
|
Post by spiff on Sept 18, 2006 9:48:46 GMT -5
Spiff: Can you give me an example of a TTL output buffer? I'm not 100% sure what that would be. The buffer used in the 1541 is a 74LS14 schmitt-triggered inverter, but basically any 74-series buffer, inverter or gate could be used. Of course, if you use an inverter or an inverting gate, you need two in order to invert the signal back. By the way, is the reset-line on the DTV ASIC 5V tolerant? It is pulled to 5V in the IEC device.
|
|
|
Post by David Murray on Sept 18, 2006 11:05:33 GMT -5
Umm.. I wired it up with the assumption that reset is pulled low on both devices when the button is pressed. If you are referring to the pull-up resistor in the 1581 (pulling it up to 5V under normal circumstances, when not resetting) then I don't know. I have heard several times that all of the lines on the DTV are 5V tolerant. I would assume that includes the reset. And i've had it running for 24 hours or more and it hasn't burned it up yet. So I guess it is safe.
Unfortunatly, you are talking a little above my head. I know what an inverter does. I've used those in a few logic circuits on my original C64. But I guess what I'm not comprehending is how you would connect it up and exactly what function it would be doing for the reset line.
|
|
|
Post by tlr on Sept 18, 2006 12:45:18 GMT -5
By the way, is the reset-line on the DTV ASIC 5V tolerant? It is pulled to 5V in the IEC device. Yes, it is listed as 5V tolerant in DTVprogramming.pdf. Maybe the problem is that the 3v3 pull-up of the dtv pulls the reset-line to low for a LS-schmidt trigger?
|
|
|
Post by spiff on Sept 18, 2006 12:46:40 GMT -5
Unfortunatly, you are talking a little above my head. I know what an inverter does. I've used those in a few logic circuits on my original C64. But I guess what I'm not comprehending is how you would connect it up and exactly what function it would be doing for the reset line. OK. Let me try to be more specific. If you use the inverter specified above, the IC contains 6 of these. If we use the two first, you should connect the reset line in the DTV (and the reset button) to the input of the first inverter. The input is pin 1. Then the output (pin 2) goes to the input of the second inverter (pin 3), and the output from here goes to the IEC reset line. Of course you need supply voltage (+5V) on pin 14 and ground on pin 7. This way, as long as the reset button is not pressed, the DTV reset line will be high (due to the weak pull-up in the ASIC). When you press the reset button, it will ground the reset line, and will also make the input of the inverter low. After inverting twice, the output too will be low, thus pulling the IEC reset line low. As mentioned the drawback of this suggestion is that it will not allow ANY device on the IEC bus to pull low the reset. The buffer effectively makes the reset signal one-way (i.e. only from the DTV reset button to the IEC devices). Hope that helps.
|
|
|
Post by spiff on Sept 18, 2006 12:56:01 GMT -5
By the way, is the reset-line on the DTV ASIC 5V tolerant? It is pulled to 5V in the IEC device. Yes, it is listed as 5V tolerant in DTVprogramming.pdf. Maybe the problem is that the 3v3 pull-up of the dtv pulls the reset-line to low for a LS-schmidt trigger? Hmm. Of course that problem could arise with my suggested circuit, but should be easily fixable by a second pull-up to 5V (since the reset input is 5V tolerant). But according to the original post, the problem only exists in the case when the DTV is powered on, but an IEC device is connected that does not have power. Looking at the schematics for the 1541, the reset line has a small pull-up (1K) which would hold the line high when the 1541 is powered (and nothing else is pulling the reset low). However, when the 1541 has no power, there will be about 0V on the VCC rail internally in the drive, and with the very small pull-up, this will work as a pull-down and pull low the reset line. The difference between the C64 and DTV seems to be that the C64 loaded the reset-line with several TTL loads, so presumably a considerable amount of current needed to be pulled on the reset-line before the device would reset. On the DTV there is only one load, and most likely with some CMOS input that requires very little effort to drive low.
|
|
|
Post by tlr on Sept 18, 2006 13:11:32 GMT -5
But according to the original post, the problem only exists in the case when the DTV is powered on, but an IEC device is connected that does not have power. Looking at the schematics for the 1541, the reset line has a small pull-up (1K) which would hold the line high when the 1541 is powered (and nothing else is pulling the reset low). However, when the 1541 has no power, there will be about 0V on the VCC rail internally in the drive, and with the very small pull-up, this will work as a pull-down and pull low the reset line. Ah, I didn't read the problem description fully. You are absolutely right! But if the VCC rail in the 1541 pulls the reset-line down through 1k, why does it work on the c64? I'm pretty sure the pull-up isn't much harder than that inside the c64.
|
|
|
Post by spiff on Sept 18, 2006 13:59:17 GMT -5
But if the VCC rail in the 1541 pulls the reset-line down through 1k, why does it work on the c64? I'm pretty sure the pull-up isn't much harder than that inside the c64. I have just looked at four different c64 schematics. There seems to be differences, even in the reset circuitry, between the different models. In some models, the reset-line on the IEC-bus is not directly connected to the internal reset line, but rather through some debouncing and buffering. The interesting thing to note in this case is that the reset coming from the IEC connector is actually called EXTRST and is buffered in a way that means that the line acts as INPUT to the c64 only. In other words this design seems to make it clear that you are not supposed to reset the IEC devices from the C64 (or DTV) reset button. The other thing I noticed is that in all of the designs there is a 1K pull-up on the internal reset-line in the c64 (I had not noticed the pull-up before). It seems this is sufficient to avoid the c64 resetting when the IEC device is turned off. But when compared to the DTV, which most likely has internal pull-ups in the ASIC in the range of 100k-1M, it makes a lot of sense that the IEC device can pull low the DTV reset, but not the c64 reset. In any case, perhaps the conclusion is that it is not a good idea to try to reset the IEC-device from the DTV
|
|
|
Post by MadModder on Sept 18, 2006 14:31:01 GMT -5
Unless you have a DPST-button to reset the two without interference.
|
|
|
Post by spiff on Sept 18, 2006 14:36:08 GMT -5
Unless you have a DPST-button to reset the two without interference. That would work. But so should some of the other solutions. Yet, it would not behave as the IEC reset line in the c64, because for some c64 designs this is input only. What I really don't get is that it seems to be input only on the 1541. Perhaps some other IEC devices are different.
|
|
|
Post by tlr on Sept 18, 2006 15:08:04 GMT -5
Unless you have a DPST-button to reset the two without interference. That would work. But so should some of the other solutions. Yet, it would not behave as the IEC reset line in the c64, because for some c64 designs this is input only. What I really don't get is that it seems to be input only on the 1541. Perhaps some other IEC devices are different. How about a single schottky diode? The DTV is CMOS, so it will be sufficient to pull the reset input of the drive below the threshold. Probably even a normal 1N4148 would work.
|
|