![]() |
![]() |
![]() |
![]() |
#101 | |||
Octode
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,196
|
![]()
Well that could mean it is sensing a pin is not connected properly, so could be getting upset if pin 20 is being disconnected and not have a 'dummy-load' resistor in its place.
- I presume if it knows a device is 'missing' then it must be doing current measurement checks on all the pins (and not just the supply), although it would be helpful if it had mentioned which pin(s) it thought there was a problem with (like the Dataman / Elnec programmers do) Unless it is trying to read an ID-code, but again most programmers would normally tell you the mis-matched codes / give you option to ignore / not do the check. So I would think it should be possible to read these with it, to get a standard binary / Intel Hex etc. file. - Would probably need to write some (maybe python etc) code to reformat the ASCII-Hex text file with <CR> / <LF> etc, cut from the Arduino output, into something more-standard as would probably struggle to find any hex-editors that would be able to import this directly. Quote:
|
|||
![]() |
![]() |
![]() |
#102 | |
Octode
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,196
|
![]() Quote:
- Before the faulty 2114's were replaced (But maybe if RAM was Intermittent, then maybe parts of it that needed to be working for it to do the checksumming / H/W-checks OK). However, with good 2114's fitted, does it now not give any error-flashes / a completely-different code? |
|
![]() |
![]() |
![]() |
#103 | |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]() Quote:
It was then possible to load the matching .bin files for these ROMs from online sources into a hex editor and observe that the .bin files had the same checksums as the ROM readouts produced by the Arduino. The same Arduino sketch can also, alternatively, output the code as Intel Hex code which can be cut from the Arduino serial monitor, pasted into a plain text editor and saved as a file which can then be loaded by the majority of EPROM programmers. I agree it is odd that the simple trick of pulling the active-high CS pin high with a resistor did not allow the STAG programmer to read out the ROMs, but maybe it is so clever that it first deactivates the CS signal to the device in the socket and checks to make sure that its outputs are tristate under those conditions. |
|
![]() |
![]() |
![]() |
#104 | ||
Octode
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,196
|
![]() Quote:
If Colin has the Arduino Mega version, then Chris has provided a 2114-Tester variant for that http://theoddys.com/acorn/developmen...14_tester.html And so can make one of these shields on a bit of prototyping-board at very-little cost - mainly the ZIP socket, but many cheap copies of original ones now obtainable. Having a more-modern dedicated tester like this, does mean you don't need to rely on having a working vintage computer to open-up (Or lift the bonnet of with a PET), that might get damaged if using its IC sockets too much (especially with previously soldered pins). It may also allow more-extensive checks / reporting of errors, and with the right software should also be able to test a variety of Digital Memory / Logic IC's with it, as well as read contents of - especially with a large-enough socket - as a more universal IC Tester (Which I believe people have been working on as an open-source low-cost alternative to proprietary systems that may no longer be available / supported) |
||
![]() |
![]() |
![]() |
#105 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,067
|
![]()
I am confused as to where we are now :
Is the digital PCB working correctly with no flash codes? Which drive doesn't spin. When you unsoldered that diode on the analogue board, which drive runs continuously? The one that seems to work or the one that wouldn't spin before? |
![]() |
![]() |
![]() |
#106 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]()
As I understand it, with CR26 disconnected the motor of the drive which works spins, so I have asked Colin now to try doing the same thing with CR22, the equivalent diode in the motor control output circuit of the 'other' drive.
|
![]() |
![]() |
![]() |
#107 |
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
Apologies - a summary is required.
1. I have replaced most of the white sockets 2. I have checked the contets of the two ROM chips and they are OK 3. I have tested the 6502s and 6522 OK 4. After removing, testing and replacing two of the 2114s, the unit no longer flashes any error codes and the left hand of the two drives (Drive 1) works correctly 5. The right hand disk drive (Drive 0) does not spin up when a disk is inserted nor do any PET commands work correctly for that drive 6. The right hand drive has the analog PCB attached to it 7. The right hand drive is marked as Drive 0 on the front of the case 8. Both floppy disk motos spin correctly when 9v is applied directly to the motors I think that's it - there is some confusion here over which is Drive 0 and which is Drive 1 - it appears that Commodore in their wisdom have put them the 'wrong' way round ie Drive 1 on the left, Drive 0 on the right. This is also true of the 4040 disk drive unit I have. So connector P5 connects to Drive 1 on the left which works, connector P8 connects to Drive 0 on the irght which does not. Hope this helps. Colin. |
![]() |
![]() |
![]() |
#108 | |||
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
Not that I'm going to do this, but in theory would this be useable with an IC test clip so chips didn't need to be de-soldered?
Colin. Quote:
|
|||
![]() |
![]() |
![]() |
#109 | |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]()
OK, thanks for the summary. Can you reinstate CR26 and lift one end of CR22 to see if that makes drive 0's motor run continually?
Quote:
There is another method, which is to insert a tester into the socket where the CPU would normally live and use its capabilities to emulate the signals of the CPU to send out test signals to various parts of the system under test. While it can be done and there have been expensive commercially made testers for just this sort of purpose, some of which Owen has discussed in some detail in the past, making one (or programming an Arduino Mega to be one) is not trivial. Last edited by SiriusHardware; 29th Aug 2023 at 11:16 am. |
|
![]() |
![]() |
![]() |
#110 | ||
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
This device has been giving different flashes at different times, but you;re right now; having replaced 2 of the 2114s, there's no flashes and therefore the digital PCB thinks all is good.
See post 107 for a summary re the right hand drive (Drive 0) not working however. Colin. Quote:
|
||
![]() |
![]() |
![]() |
#111 |
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
I more often than not do what I'm told, but this time I'm interested in how you know to pull CR26 or CR22 and what effect that should have? Perhaps this may dive too deep into electronics for me, but I'd like to understand how you know to work on those specific diodes?
Colin. |
![]() |
![]() |
![]() |
#112 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]()
In normal circumstances the signal which comes from the preceding logic (U11 pins 8 and 6 respectively) tells the motor control circuit to be 'on' or 'off'.
When the controlling logic wants the motor to be 'off' it outputs a logic 0 'pulldown' via CR26 / (CR22) which turns off Q1 (Q2) and turns off the motor. When the controlling logic wants the motor to be 'on' it outputs a logic '1', allowing the base of Q1 (Q2) to rise to a level which turns the transistor on, thereby turning on the motor. By disconnecting the diode we separate the digital part of the circuit from the analogue 'output' part, this allows the motor output stage to turn on regardless of the logic state coming out of U11. If, with the diode removed, the motor does turn on and run at the right speed, the 'analogue' part of the motor control circuit is working and the problem lies with the signals coming through the digital control circuit. If, on the other hand, the motor does not run with the diode removed, then there is a problem with the 'analogue' part of the motor control circuit. |
![]() |
![]() |
![]() |
#113 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,067
|
![]()
OK, I will try to explain why I picked that diode as a first check. I'll relate my explanation to the non-working drive control circuit which is the lower half of page 13 in the PDF.
The drive motor connnects between pins 1 and 4 of P8. The component that controls the motor is the power darlington transistor Q2. You can think of this as being ust an npn transistor with a high current gain. Now as usual, if Q2 has no current flowing into the base, there is no current flowing in the collector. So no motor current, the motor does not run. If there is base current, then current can flow through the collector-emitter crcuit. Using conventional current (flowing +ve to -ve), the current comes from the 12V power supply via L6 (which is simply to filter noise and can be ignored for the moment),through the motor, then though the collector-emitter circuit of Q2, trhough R69 (1 ohm, it has a much lower resistance than R67 + R68, so carries almost all the current) and back to the power supply on the ground rail. So the next thing to consider is where Q2 gets its base current from. What can pass a current from a point at a positive voltage to the base. The answer is R65 from the output of the op-amp U17. This op-amp compares the voltages at its 2 inputs. Pin2 ('-ve' or invertining input) is the voltage across C30. The tachogenerator in the motor produce an AC voltage, the faster the motor turns, the higher the voltage. This is rectified by CR24 and smoothed by C30. The faster the motor turns, the higher the voltage on pin 2 of the op-amp Pin 3 ('+ve' or non-inverting input) of the op-amp comes from the sliding contact ('wiper') of R61. Now CR25 is a so-called zener diode. It has the property that when it is connected up with R59 across the power supply, the voltage across it will be constant. So the voltage across R61 is also constant. And thus the voltage on pin 3 of the op-amp can be set to a particular voltage by adusting R61 and it will remain at that value. So this is the motor speed control circuit. When the motor is going too slowly the op-amp provides a current to Q2's base via R65, the motor speeds up, When the motor is going too fast, there is less current into Q2, so it slows down. Now consider the other components on Q2's base. We can ignore R66 in this explanation. Firstly, Q4, another transistor. If current flows into its base then it will 'steal' the base current from Q2, and run it to earth. Thus slowing/stopping the motor. Its base current is produced by the voltage drop across R69 effectively. R69, as I said earlier, carries the motor current from the emitter of Q2 back to the power supply. If the motor is drawing too much current, then Q4 will act to reduce Q2's base current and thus Q2 will reduce the motor current. Now finally we get to CR22. It connects to the output of the OR gate U11c (pin 8 of that chip). If U11c's output is low, a logical 0, then the current that would have flowed into Q2's base will instead flow via CR22 into the OR gate output. Q2 gets no current, the motor can't run. If U11c's output is high, a logical 1, then CR22 is reverse biased and can carry no current. The current therefore flows into Q2's base, the motor runs and the speed is controlled as above. U11c is an OR gate. It's output is a 1 (motor runs) if either or both of the inputs are 1. Pin 10 comes from the inverter U10e (pin 10) which inverts the motor-on signal from the digital board. P7 pin 3 (I think, the printing isn't clear).So the digital board makes that pin low, the motor runs. The circuitry connected to pin 9 of U11 is essentially a timer triggered by the disk insert swtch which causes the motor to run when you put a disk in to help centralised it on the spindle. So that's why removing CR22 is useful. It separates the motor speed control circuit from the digital stuff that is suppose to stop the motor. By seeing if the motor runs without it we can see which part of the circuit to look at next As to how I homed in on one diode on one of the boards, the simple answer is, I'm afraid, that I've been doing this sort of thing for over 40 years. It did not take me long to work out which page of the circuit was the motor controller. Then I spotted how it worked. Then I thought a good idea was to split it in half, to test the speed control circuit and the digital bit separately. So remove the diode that links them. |
![]() |
![]() |
![]() |
#114 | ||
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
With CR26 and CR22 lifted, both drives run continuously.
With just CR22 lifted, the non-working right-hand drive (Drive 0) runs continuously. Colin. Quote:
|
||
![]() |
![]() |
![]() |
#115 |
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
I'll read through posts 112 and 113 thanks.
fyi, and this may mean nothing, one of the chips has previously been removed/socketed - U7. Colin. |
![]() |
![]() |
![]() |
#116 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]()
You can reinstate CR26 to restore normal operation of the working drive.
I'll step back for now and let Tony walk you through the process of finding out what's going on with the logic side of things. |
![]() |
![]() |
![]() |
#117 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,067
|
![]()
Right. So the fault is in the digital circuitry which suprises me.
I assume you don't have a logic probe. In which case use a DC voltmeter to measure the voltages on pins 10 and 11 of U10 (74LS14) and pins 8,9,10 of U11(74LS32) both with the thing 'idle' and when excuting a command from the PET that should access that drive. |
![]() |
![]() |
![]() |
#118 |
Dekatron
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,102
|
![]()
Back just briefly: Tony, Colin does have a dual-input DSO which he knows his way around.
|
![]() |
![]() |
![]() |
#119 | |
Octode
Join Date: May 2012
Location: Perth, Scotland
Posts: 1,616
|
![]()
Using my meter, I get:
Idle U10/10 - 0.19V U10/11 - 4.9V U11/8 - 0.4V U11/9 - 0.15V U11/10 - 0.19V 'Finding it hard to get 'active' readings as it fails fast. Would my scope be of more use? Colin. Quote:
|
|
![]() |
![]() |
![]() |
#120 |
Dekatron
Join Date: Jun 2015
Location: Biggin Hill, London, UK.
Posts: 5,067
|
![]()
Those look fine for the 'idle' readings.
You can try using the 'scope. What should happen is as follows : The digital PCB will make U10/11 go low (to less than 0.8V). U10/10 should then go high (above 2.4V). U11/10 will do the same as they are connected. U11/8 should also go high. I am not sure if you can trigger the 'scope on those but you can try. |
![]() |
![]() |