Datron 4000: read cal-RAM and replace it with a FRAM  - Page 1
Forum section: electronics / general

author: meandeev
author_rank: Regular Contributor
timestamp: March 05, 2021, 09:20:28 pm
content: I don´t like battery buffered RAM´s: first, there is always a little risk to destroy the data, if one have to replace the battery - and that have to be done regulary (I know we are talking about 5-15 years, but…)Second, I saw several destroyed PCB´s because of leaky batteries. So I decided to replace the cal-RAM´s in my Datron 4000 with a FRAM.In the Datron 4000 exist two battery buffered 5101 SRAM´s, each for 4 bit of data (the 5101 is a 256×4 bit SRAM). So we can replace both with a single FM16W08.Because of the risk of erasing the data I wanted to read the data in a passive way. Connecting the SRAM´s directly, generating the right reading sequences and so on seemed to risky to me. Luckily the startup sequence of the 4000 reads the whole data of the SRAM´s (I believe for comparing a checksum), so we can use a logic analyzer for this task.To get the data out of the SRAM I used a Logic-Analyzer with 17 channels: 8 address-channels, 8 bit of data and one “latch” (data active/valid) channel. This was an ideal task for my updated Zeroplus 16032 (updated to an 322000 earlier last year).There is a spare EPROM-Socket (M23) at the “Digital PCB Assy”, were one can find the data and address bus. We need only A0-A7 and D0-D7.I made an adapter of an empty IC-socket and connected it to the analyzer. The latch is connected to pin 3 of M3, which drives the /CE-pin of both SRAM´s (this has some little disadvantages, that I will explain later)So I started the analyzer and switched the Datron on. I use sigrok, because I don´t like the original program from Zeroplus. But sigrok has limited trigger capabilities, so there was some try and error for finding the right parameters. I started with 10MHz and trigger to /CE, falling edge. But several reads gave different outputs. So I increased to 25MHz. Better, but sometimes also different reads. So the problem is the trigger on /CE, as I mentioned earlier. The stable data one can get after several 100µs later. In the picture one can see the problem (A0-A7 = data, B0=/CE, C0-C7=address):At the falling edge of /CE the data isn´t stable/ok and at the other edge the address has changed.I decided, that I have enough information. I took a silent evening without wife and kids to read the data manually, that are valid in the middle of /CE. We are talking about of only 256 different readings, so it was ok. In the meantime until now I learned something about sigrok and would now put a “pins = self.wait({'skip': 15}) ” to the protocol decoder to get the right data …So I got the data of both SRAM´s - that was the first part.The second one is creating the right FRAM-adapter. Because I´m always struggling with pcb-design tools I used the adapter fromhttp://ahdesign.us/blog/motorola-mcm5101-fram-adapter/. I dont wanted to use 2 of this adapters, so I soldered 4 additional wires and pins to the adapter for the second IC (databus D4 to D7).Writing the data to the FRAM FM16W08 is the next one. I don´t own a eprom-burner for this, so I build one from an Arduino Mega and a prototype pcb.But you cannot just write the data to the FRAM, bcause address and data-bus are mixed in a crude way at the 5101´s:addressbus to the 5101:address-line at spare socket addres-line at 5101A0 A7 (PIN 7)A1 A6 (PIN 6)A2 A5 (PIN 5)A3 A0 (PIN 4)A4 A1 (PIN 3)A5 A4 (PIN 21)A6 A2 (PIN 2)A7 A3 (PIN 1)databus to the 5101:data-line at spare socket data-line 5101 M26 data-line 5101 M27D0 D7 (DIO4, Pin 15+16)D1 D5 (DIO2, Pin 11+12)D2 D2 (DIO3, Pin 13+14)D3 D1 (DIO2, Pin 11+12)D4 D4 (DIO1, Pin 9+10)D5 D0 (DIO1, Pin 9+10)D6 D6 (DIO3, Pin 13+14)D7 D3 (DIO4, Pin 15+16)The prommer-program is aware of this mixing, so you can put the data in as you read it earlier. I used a simple fixed array in the sourcecode for the caldata - so no fancy input possibility or something like that :-)You can find the program in the attachment of this post.So the last thing to do: replace the SRAM´s with the FRAM. Hold your breath and be brave and remove the SRAM´s and the battery (or like me, not so brave, have an additional functional digital pcb with dead battery for test).Switching the Datron on, you should NOT see “Fail 6” - otherwise you destroyed your cal-data.In the next photo you can see my FRAM in the digital pcb - ugly, but works. If somebody will create a new adapter board, that fits in both sockets - I´m interested in getting one (or the gerbers).PS: How I can create such clickable images, that will grow inline when you click at it (and stored as an attachment)?

author: Jay_Diddy_B
author_rank: Super Contributor
timestamp: August 04, 2025, 05:38:00 pm
content: Hi group,I am working on a dedicated PCB for this modification.I have sent the files out today. I will let you know how it works out.Regards,Jay_Diddy_B

author: Jay_Diddy_B
author_rank: Super Contributor
timestamp: August 12, 2025, 02:58:16 pm
content: Hi group,I can report that the FRAM adapter PCB works in my Datron 4000A.Here are some photographs:Blank PCBsConnector preparationSome of the pins have to be shortened.Connectors InstalledFRAM InstalledDatron Board preparationThe original RAMs, IC Socket and battery were removed.FRAM Adapter Installed.CalibrationI did not attempt to store the calibration data that was contained in the SRAMs, as described by meandeev above, my unit had a dead battery and there was no valid calibration data.I followed the pre-calibration and calibration procedures described in the manual.Regards,Jay_Diddy_B

author: Jay_Diddy_B
author_rank: Super Contributor
timestamp: August 12, 2025, 03:11:27 pm
content: Hi group,Here is the schematic:I have attached a pdf version of the schematic and a zipfile containing the Gerber files I used to get the PCB made.I would like to thank meandeev, who showed that this modification was possible.I have seen the damage that a leaking battery can do, I don't want to do that ever again.Regards,Jay_Diddy_BDatron_4000A_FRAM.zip(44.02 kB - downloaded 7 times.)schematic.PNG(48.19 kB. 1430x543 - viewed 9 times.)