Farnell A64-5TB PSU - Page 1
Forum section: electronics / repair

author: ESTechnical
author_rank: Contributor
timestamp: November 22, 2021, 11:50:43 am
content: Hi everyone...I am trying to use a Farnell A64-5TB PSU which is currently not responding to any GPIB commands and I wondered if anyone else has one and would be willing to dump the ROM for me, please?It seems to be powering up ok and the resonator for the Z80 is running. Dumping the ROM myself seems to yield corrupt looking data. There are incomplete looking strings like "EXECUT" and "VOLTAG", which may or may not be a bad sign for my ROM. It doesn't even respond to *IDN? command. I imported the ROM dump into ghidra and got a lot of errors from it, so it doesn't look like I got a good read of the ROM, or the ROM is corrupted.I also can't find a manual for this PSU or anything even remotely similar and would love to have a copy if someone has it available.Many thanks,Ed

author: ESTechnical
author_rank: Contributor
timestamp: November 23, 2021, 10:09:28 am
content: I have contacted farnell support and requested the manual - I will share it here if they are able to find anything useful.

author: ESTechnical
author_rank: Contributor
timestamp: December 10, 2021, 08:38:30 am
content: Farnell eventually replied to tell me they (and their manufacturers) have no information about my A64-5TB PSU.I will revert to trying to find a ROM from somewhere to restore this PSU and have some chance of reverse engineering the commands used to control it, and perhaps some kind person will one day find me a manual!

author: Nick Norton
author_rank: Newbie
timestamp: December 29, 2021, 12:59:50 am
content: I am sorry for posing a reply that does not provide a direct answer to your question.I do not have a copy of the ROM for the A64-5TB.I hate it when a forum post. Provides a no answer to an obvious question. Sorry people, sorry....That's why I made my own controller. I don't have the original GPIB card in mine at all.I don't suspect your ROM is corrupt or broken. I read you have dumped the ROM.But what are the chances "EXECUT" and "VOLTAG" would both have the E missing?I think what you have is OK, but maybe we need to fiddle with the GPIB commands a bit.I'm sure I have a schematic for the Controller card if you need it?You might ask what is your controller? Yes, Yes, I'm working on it.You should recognise the chassis as being from the A64-5TBIt's only a hobby project. Been tinkering with it for years.

author: ESTechnical
author_rank: Contributor
timestamp: December 29, 2021, 10:12:18 am
content: I don't know whether I trust my initial assessment that the rom is bad. Maybe someone with more ghidra skills than me can take a look. I don't trust that the rom is good because ghidra won't decompile anything cleanly.When I imported the rom dump into ghidra, many points in the listing show "Error [Bad instruction]" and then refer to an address that is not in the dumped rom in the FFxx range. This seems odd to me, but maybe I haven't understood something about the design/processor/something else.Here's an example of the decompiler output - this sort of mess is pretty typical of the output generated by ghidra throughout.Code:/* WARNING: Control flow encountered bad instruction data *//* WARNING: Globals starting with '_' overlap smaller symbols at the same address */void RST1(byte param_1){byte bVar1;byte in_F;if ((in_F >> 6 & 1) == 0) {return;}bVar1 = in_F & 1;if (bVar1 != 0) {/* WARNING: Bad instruction - Truncating control flow here */halt_baddata();}if (bVar1 != 0) {return;}if (bVar1 == 0) {_DAT_ram_2280 = 8;*(bool *)(ushort)param_1 = bVar1 != 0;/* WARNING: Bad instruction - Truncating control flow here */halt_baddata();}/* WARNING: Bad instruction - Truncating control flow here */halt_baddata();}The processor is Zilog Z84C0006VEC Z80.The ROM dump is attached in case someone cares to take a look.

author: ESTechnical
author_rank: Contributor
timestamp: December 29, 2021, 10:57:08 am
content: QuoteYes, please, that would maybe help! I have no manual, schematics, or anything else related to this PSU... Thanks very much.

author: Andy Watson
author_rank: Super Contributor
timestamp: December 29, 2021, 01:10:25 pm
content: Farnell may not be the OEM - they rebadged much of their product range. Have you tried searching for the same unit under a different brand? (e.g. Advance, Hi-Tek, Wayne Kerr, etc.)The labelling of the panel has a hint of Wayne Kerr about it!I have an AP7030 - I have documented some of my reverse-engineering here:https://www.eevblog.com/forum/repair/ap-series-power-supply-(ap60-50)-(wayne-kerr-farnell-hitek-aps)/msg1733669/#msg1733669A quick scan of your ROM dump suggests that it is written in FORTH. The end of a string in FORTH is often indicated by setting the MSBit of the last character. You need to truncate the bytes to 7-bits if you want to search for strings.Try poking the unit with "ID?" (rather than *IDN?). You should be able to provoke a response - even if it's only an error message.

author: ESTechnical
author_rank: Contributor
timestamp: December 29, 2021, 01:36:59 pm
content: QuoteThat would explain a lot about strings being a character short, eg "EXECUT" and my confusion with decompiling it!Thanks for the info, I'll get the GPIB board out and have a go with some of those commands. Really helpful, cheers!

author: ESTechnical
author_rank: Contributor
timestamp: December 29, 2021, 03:38:58 pm
content: I've just written a script in GNU octave to prod all possible gpib addresses and ask "ID?" and "*IDN?" etc and had no response at all. No address responds to either of the ID commands, and trying the same script with some of the other plausible looking commands also generates no response.From what I can see on my PCB, there's no way to read back the voltage apart from the cached value the processor knows about, no feedback of the current draw either, as data flows only outwards from the digital board to the DACs that control two identical PSU boards, so this board differs a bit from the AP7030 et al. That said, it does have huge similarities with Andy's schematics. Since this is a dual output PSU, I expect that I also need to say commands like "set voltage, channel 1, 5.0V" (pseudo command) rather than "set voltage 5.0V".Poking around the GPIB interface ICs it appears there's life but there's no changes to be seen on bit 8 of the data bus. Seems fishy.I also tried to open the dumped firmware from Andy's thread and see very similar results in Ghidra to what I was seeing with my own rom dump. Definitely a different firmware, but very similar levels of confusion hereI can't seem to find a way to correctly unmangle forth strings. I probably need to ask elsewhere for this! At least now I think I do have a valid ROM still...

author: Nick Norton
author_rank: Newbie
timestamp: December 29, 2021, 11:26:54 pm
content: A well fingered and scribbled upon Issue P1 schematic for the A Series IEEE Interface.Quite where the ROM is hiding, unless it's in the Microprocessor for my schematic?

author: Nick Norton
author_rank: Newbie
timestamp: December 29, 2021, 11:59:22 pm
content: Quote from: ESTechnical on December 29, 2021, 03:38:58 pmYou are correct regarding the lack of feedback.You can tap a current sense off Pin 6 of U1 CA3140.I have modded my PSU's to present that voltage to pin 6 of S3 (The 12 pin connector) for ADC Sampling.This style of PSU was also used in the Farnell LS30-10

author: ESTechnical
author_rank: Contributor
timestamp: December 30, 2021, 10:37:47 am
content: Quote from: Nick Norton on December 29, 2021, 11:26:54 pmThe microprocessor is a weird little 64 pin module with a UV erasable ROM and some io logic, as well as the z80. This looks like it matches my PCB well, thank you for sharing this.When I get time I'll see if I can decipher why the GPIB interface seems so completely dead.