| Electronics > Repair |
| Quick Repair: Standford Research PS350 5KV 5mA(Fixed but working on calibration) |
| << < (10/11) > >> |
| smgvbest:
--- Quote ---Other thing I noticed. Sandra (and the schematic) has U507 Q4 as NC, but this code (that appears to shutdown the supply in case of I_FAULT, PRI_FAULT or V_FAULT), sets it: --- Code: ---Code: ROM:0D42 shutdown: ; CODE XREF: sub_D94+15p ROM:0D42 ; sub_D94+57p ... ROM:0D42 ld hl, port_78h_value ROM:0D45 set 4, (hl) ; spare??? ROM:0D47 res 0, (hl) ; set -shutdown low ROM:0D49 ld a, (port_78h_value) ROM:0D4C out (78h), a ; set misc switches (u507) --- End code --- Old code? different model? Error in schematic? --- End quote --- Going to research this one and see if anything is going on Q4. Will update. Looked on the scope and Q4 goes Low when the HV switch is flipped to on. it goes high when the HV switch is off. I set the VLIM to 100V and tried going past it. got the ERR on the display but no activity on Q4 Some tracing done. Q4 goes over to U613D which is a MPQ2222 on Pin 13 which is the Base thru a 10K resistor. schematic shows the emitter and base tied together however they are not, Pin 12 is tied to gnd. Pin 14 I need to trace now Going to double check this as pin 14 appears to go to U404 Pin 8 which is +15v yep. it goes to U404->8 but also thru D103 then I so far am loosing it under N601 (resistor network) Added work in progress schematic below. |
| alm:
So clearly the schematic is wrong. I am not sure if this is anything important, it just struck me as odd that the firmware was toggling outputs that were supposedly NC. The diode looks like an OR construction to me, e.g. pulling base current away from somewhere in case of a fault. A shutdown signal of sorts. That would also explain why I saw the line being turned on in relation to fault signals together with /shutdown. Do you have any idea what the point of U407A (controlled from U411 Q0) is? It looks like to me like it would short the inputs of U405 through R414. I guess the dot that connects U407A.2 to U402B.7 and R414 should not be there? |
| alm:
Updated table based on Dexter2's table: --- Code: ---WORD? # VALUE ROMHEX 0 2476 AC09 ; +pol vset offset 1 21988 E455 ; +pol vset exponent/multiplier/non-linear parameter if vset < word0 2 21003 0B52 ; +pol vset exponent/multiplier/non-linear parameter if vset >= word0 3 2500 C409 ; +pol vlim offset 4 21076 5452 ; +pol vlim exponent/multiplier/non-linear parameter if vlim < word3 5 21076 5452 ; +pol vlim exponent/multiplier/non-linear parameter if vlim >= word3 6 2492 BC09 ; +pol ilim offset 7 21017 1952 ; +pol ilim exponent/multiplier/non-linear parameter if ilim < word6 8 20051 534E ; +pol ilim exponent/multiplier/non-linear parameter if ilim >= word6 9 2491 BB09 ; +pol itrp offset 10 21032 2852 ; +pol itrp exponent/multiplier/non-linear parameter if itrp < word9 11 20053 554E ; +pol itrp exponent/multiplier/non-linear parameter if itrp >= word9 12 2476 AC09 ; +pol voltage readback display offset0 13 49126 E6BF ; +pol voltage readback display scale if VOUT < Word12 14 49634 E2C1 ; +pol voltage readback display scale if VOUT >= Word12 15 2493 BD09 ; +pol current readback display offset 16 49632 E0C1 ; +pol current readback display scale if IOUT < Word15 17 50148 E4C3 ; +pol current readback display scale if IOUT >= Word15 18 0 0000 ; +pol external analog_voltage_in display offset 19 17299 9343 ; +pol external_analog_voltage_in scale (possibly never used) 20 17299 9343 ; +pol external_analog_voltage_in scale 21 2470 A609 ; -pol vset offset 22 21910 9655 ; -pol vset exponent/multiplier/non-linear parameter if vset < word21 23 20982 F651 ; -pol vset exponent/multiplier/non-linear parameter if vset >= word21 24 2500 C409 ; -pol vlim offset 25 21076 5452 ; -pol vlim exponent/multiplier/non-linear parameter if vlim < word24 26 21076 5452 ; -pol vlim exponent/multiplier/non-linear parameter if vlim >= word24 27 2513 D109 ; -pol ilim offset 28 20785 3151 ; -pol ilim exponent/multiplier/non-linear parameter if ilim < word27 29 19760 304D ; -pol ilim exponent/multiplier/non-linear parameter if ilim >= word27 30 2512 D009 ; -pol itrp offset 31 20818 5251 ; -pol itrp exponent/multiplier/non-linear parameter if itrp < word30 32 19746 224D ; -pol itrp exponent/multiplier/non-linear parameter if itrp >= word30 33 2470 A609 ; -pol voltage readback display offset 34 49170 12C0 ; -pol voltage readback display scale if |VOUT| < Word33 35 49634 E2C1 ; -pol voltage readback display scale if |VOUT| >= Word33 36 2514 D209 ; -pol current readback display offset 37 49784 78C2 ; -pol current readback display scale if |IOUT| < Word36 38 50308 84C4 ; -pol current readback display scale if |IOUT| >= Word36 39 0 0000 ; -pol external analog_voltage_in offset 40 17299 9343 ; -pol external_analog_voltage_in scale (possibly never used) 41 17299 9343 ; -pol external_analog_voltage_in scale 42 0 0000 ; related to var_strange_scaled 43 51830 76CA ; related to var_strange_scaled 44 0 0000 ; related to var_strange_scaled 45 51830 76CA ; related to var_strange_scaled --- End code --- I am fairly sure the unassigned three words for readout are about scaling the external analog input voltage on J401 to the true set voltage (i.e. 10 V = 2.5 kV). Not sure about the exact math. Since the offset is 0, I imagine the second word (if Vin < 0) is never used, but I could be wrong. I would like confirmation that changing W18/19/20 and W39/40/41 affects the analog remote voltage programming (possibly not all are effective across the entire range). Now the last four words that are still unassigned. I have found the code that references them. In the function that I call do readouts at 0x9a3 (does the successive approximation and applies calibration factors to the results) there are two blocks like this: --- Code: ---ROM:09D0 call read_adcs ; in: hl = output word ROM:09D0 ; out: (hl) = adc result ROM:09D3 ld a, 1 ROM:09D5 call convert_readouts ; a = { 0: vmon, 1: imon, 2: analog v_in } ROM:09D5 ; ROM:09D8 ld c, 2 ROM:09DA call convert_readouts_strange ; c = { 0, 2 } --- End code --- Analog switches were set in an earlier subroutine (to allow for settling time). read_adcs does the successive approximation through the DAC and returns the result. convert_readouts using the display calibration factors identified by Dexter2 and stores them in memory where the display routines can find them (around 0x40df). Now for the aptly named (by me :P) convert_readouts_strange (0xb43-0xbab). It takes It does something fairly similar to convert_readouts, but it uses the last four calibration words (I have not looked into the exact math) and does further math with the result of convert_readouts (i.e. the value displayed on the display/ sent for GPIB queries). Then it stores the result in the four byte block at 0x409c (var_strange_scaled): --- Code: ---ROM:0B9E pop bc ROM:0B9F ld b, 0 ROM:0BA1 ld de, var_strange_scaled+2 ROM:0BA4 ex de, hl ROM:0BA5 or a ROM:0BA6 sbc hl, bc ; bc = { 0, 2 } ROM:0BA8 ld (hl), e ROM:0BA9 inc hl ROM:0BAA ld (hl), d ROM:0BAB ret --- End code --- Looks like 0x409c is derived from i_monitor and 0x409e from v_monitor. The strange part is that this appears to be the only place that references the value. I did not find use of the neigbouring addresses as intermediate value (e.g. ld hl, 409a) either. I imagine there might be some ldi(r) instruction or other pointer arithmetic that covers it. I appreciate any reference to other code outside 0xb43-0xbab that references it or speculation what the point of this might be. |
| smgvbest:
--- Quote from: alm on August 13, 2017, 11:00:57 am ---So clearly the schematic is wrong. I am not sure if this is anything important, it just struck me as odd that the firmware was toggling outputs that were supposedly NC. The diode looks like an OR construction to me, e.g. pulling base current away from somewhere in case of a fault. A shutdown signal of sorts. That would also explain why I saw the line being turned on in relation to fault signals together with /shutdown. --- End quote --- I would assume the schematic is from and older/newer (though probably older) version than the firmware was written for and so doesn't show this feature. I will continue to try to trace it down. been distracted by needed household duties and basement water. yuk --- Quote from: alm on August 13, 2017, 11:00:57 am ---Do you have any idea what the point of U407A (controlled from U411 Q0) is? It looks like to me like it would short the inputs of U405 through R414. I guess the dot that connects U407A.2 to U402B.7 and R414 should not be there? --- End quote --- Lets see how well I understand op-amps (and i'm no pro) U410 is a unipolar DAC so to get the +/-10.24v rails needed we have R420-R422 set the mid point at U402B so a value of 1000 0000 0000 is Zero Volts which is a current to voltage circuit since the DAC is current output. U407A/B & U405 forming a voltage inverter to get the +/-10.24v rail and a gain of 1 with the 1000 0000 0000 being the mid point for zero Turning on Q0 of U411 connections pin 3 of U405 to virtual gnd of the ADC which should invert the output of U405 for the -10.24v Turning on Q1 of U411 connected pins 3 of U405 to same input as Pin 2 which should make it a voltage follower for the 10.24v? R413-R414 set it up as a 1x gain amp so R414 is needed I believe U402D is acting as a non-inverting buffer with a gain of ~1x which feeds the U408 and following SHA circuits which are refreshed every ~28mS the datasheet for the AD7542 shows a feedback path from the frist opamp to the RFB of U410.16 with a cap between U410.16 and U410.1 as in the schematic. so from that POV the only different in the AD7542 sample and the SRS implementation is a Resistor missing in the feed back loop added AD7542 Datasheet, see pg 5 under BiPolar Operation for the example circuit. it is very simulair that what SRS did though not exact. |
| artelse:
Hi, just repaired my PS350 unit by replacing the completely dead caps C702 and C705 . In photo's and video's here and on YT I see different brand caps used in the low voltage supply. In my unit it they were -unknow to me- Xicon brand caps and replaced these with Rubycons, you might check yours. Then in the high voltage supply, the -5V in different revisions have swapped the D206 10V zener by a 79L05. That might have been done because of problems or perhaps accuracy? Anyhow, my unit works fine now and is completely in spec :) Question: the front bezel came with no screws and seems to be imperial thread. Anyone know what type I should look for? Thanks, also to Sandra for the help! |
| Navigation |
| Message Index |
| Next page |
| Previous page |