• Overclocking Lab
  • My Arduino-based RAM SPD reader/writer (free and open source) (p.12)
2021/12/03 00:04:13
Atter1884
Hi!
 
The tool gets better and better! Keep up the good work!
 
I ordered some parts to create a PCB for DDR3 and DDR4 memory modules and i found something:
DDR3-SODIMM doesn't have SA2 pin on the connector side. Is it required for something or the tool will work without it?
 
Thanks!
2021/12/03 00:16:02
a213m
Don't worry about SA2, since its configuration isn't required for any operations. SODIMM modules already have SA2 pin wired to ground on the PCB since they are meant to be used in systems where no more than 4 modules may be present.
 
 
2021/12/03 01:37:37
Atter1884
Great, thanks for the info!
2021/12/04 15:02:15
rekeyed
Hi a213m, amazing project, thank you!
 
While waiting DDR4 SO-DIMM adapter, I tried reading/writing DDR3 modules.
But in event log I found error:
COM10: DDR3-SDRAM RSWP disabledl; SA1 control unavaliable

When I connected to device with terminal and tried to change SA1 manually, SA1 works well. It is serial data dump (hex bytes):
21 73 01 70 01 01 01 73 04 70 01 00 01 73 01
Red bytes received from device, green - written to device. Voltage on SA1 pin changes accordingly.
What could be the problem?
 
2021/12/04 15:40:01
a213m
The data dump suggest everything is assembled properly.
 
Enter 'f' (0x66) and show me the response
then enter 'e' (0x65) and show me the response
 
What Arduino board are you using?
2021/12/04 15:55:39
rekeyed
21 66 10 65 10
Arduino Nano (Mega328p)
 
2021/12/04 16:14:32
a213m
Ok, I see. It fails to perform SA1 test in rswpSupportTest() function.
 
First, enter this command in terminal:
 
70 01 00 73 70 01 01 73 70 01 00 73 70 01 01 73 70 01 00 73

 
if the output only contains 0x01's, then try adding line "delay(10)" after digitalWrite(pin, state); on line 988.
 
https://github.com/1a2m3/SPD-Reader-Writer/blob/54f283f487492ce1e26f7d2405f8b7004ce95654/firmware/SpdReaderWriter.ino#L988
 
The whole function should look like this:
 

bool setConfigPin(uint8_t pin, bool state) {
  digitalWrite(pin, state);
  delay(10);
  return digitalRead(pin) == state;
}

 
Then try again and report the result.
2021/12/04 16:42:01
rekeyed
21 70 01 00 73 70 01 01 73 70 01 00 73 70 01 01 73 70 01 00 73 01 01 01 04 01 04 01 04 01 04
then again 73 01
seems to be, falling SA1 is too slow. so I added 10K resistor from SA1 to GND, now device works well.
 
tested adding delay to setConfigPin function, also works without additional resistor.
2021/12/04 17:40:38
a213m
Thanks for feedback, I'll include a fix in the next release.
2021/12/06 22:53:48
a213m
New version: 20211206

GUI

  • Check RSWP and Set RSWP windows properly centered for all supported RAM types
  • Check RSWP and Set RSWP windows standardized for all supported RAM types
  • Improved automatic EEPROM SPD size detection
  • Added dialog box result after PSWP operation
  • Removed redundant "Set RAM type" option

Firmware

  • Enforced hardware support
  • Improved RSWP support
  • Improved PSWP support
  • Improved pin controls
 

Use My Existing Forum Account

Use My Social Media Account