How to check SDRAM module - Page 1
Forum section: electronics / beginners

author: Jane
author_rank: Frequent Contributor
timestamp: December 04, 2015, 08:49:23 pm
content: We repair linux embeded devices. The device consists CPU, flash chip and SDRAM modules plus some more parts.The CPU works with 64 bit data bus. SDRAM is composed of 4 module of 16 bits each. (4x16=64bit bus)It happens sometimes that CPU stops with an error that shows a problem with a communication between CPU and SDRAM.(It stops almost immediately after turning ON as if the CPU tested if there was a proper configuration of SDRAM.)Is there any way how to check if an error is in CPU or in any SDRAM module or in any other parts e.g. in PCB itself?Thank you

author: Rasz
author_rank: Super Contributor
timestamp: December 04, 2015, 09:17:55 pm
content: Quote from: Jane on December 04, 2015, 08:49:23 pmfirmware, not cpuIm guessing you dont have access to firmware sourcecodeyou can try jtag and uploading your own ram test procedurebut also being in service business I advise you to just swap ram when you encounter ram problems, faster than testing

author: Cliff Matthews
author_rank: Unknown
timestamp: December 04, 2015, 09:56:15 pm
content: Not to doubt things here, but a ton of equipment uses commodity RAM (perhaps with parity or ECC). Is there any chance the modules are 32-bit (in 2 banks of 32)? There's more logic in this arraignment (speed, repair, upgrades, troubleshooting, etc..). On generic PC's, I use memtest86 from Falcon4 utilities on bootable USB prepared by Yumi (from Pendrivelinux.com).

author: Jane
author_rank: Frequent Contributor
timestamp: December 05, 2015, 06:52:20 am
content: @Rasz: problem is that JTAG is disabled but I can update some registers of CPU via I2C bus. Would it be possible to make a use of that I2C possibility?@Cliff Matthews:QuoteWhat is commodity RAM?There are 4 modules of SDRAM, together 256 MByte RAM.QuoteIt would be a good idea butit is MIPS CPU.How must be the BIOS written to allow booting a system from USB?Thank you for your replies

author: RoadRunner
author_rank: Frequent Contributor
timestamp: December 05, 2015, 07:09:46 am
content: i have just build one linux board my self , with BGA DDR3 RAM, i had a lots of issue initially with RAM because of resistors between DRAM and processor,http://www.circuitvalley.com/2015/11/homemade-arm-board-linux-reflow-bga-first-boot.htmli tested the ram with , memtester , it test many in ways . you can specify the amount of ram you want to test.http://pyropus.ca/software/memtester/just download the source cross compile this on host , with configure utility , very easily.Quote from: Jane on December 05, 2015, 06:52:20 ammemtester do same on non x86 arch

author: Cliff Matthews
author_rank: Unknown
timestamp: December 05, 2015, 12:09:43 pm
content: Commodity, I think Websters 3rd def. is fair: "a mass-produced unspecialized product <commodity chemicals> <commodity memory chips>". I was thinking if this was popular RAM, it could be moved to another standard platform for test. Maybe there are some numbers from the modules, or chips on them and module pinouts, to spur-on some ideas?

author: Shock
author_rank: Super Contributor
timestamp: December 05, 2015, 02:32:41 pm
content: Quote from: Jane on December 04, 2015, 08:49:23 pmSend it to an linux embedded device repairer, they will know what to do.

author: Jane
author_rank: Frequent Contributor
timestamp: December 05, 2015, 03:43:47 pm
content: @Gaurav: I checked your embeded Linux project. Congratulation.You say, you had a lots of issue initially with RAM because of resistors between DRAM and processor. How did you solve those problems?

author: Shock
author_rank: Super Contributor
timestamp: December 05, 2015, 05:37:12 pm
content: Jane does this happen to be a mobile phone or a tablet? Because sometimes it's easier to just state the circumstances of the problem include a photo and then ask for things you're unsure about.

author: helius
author_rank: Super Contributor
timestamp: December 05, 2015, 05:48:40 pm
content: If you are trying to eliminate a fault in the CPU or memory controller then a software tester is of limited use.They have limited use anyway, because unless they are specially designed to use locked cache blocks for code, they can't see all of the memory.The answer is hardware testers.http://www.memorytesters.com/default.htmprovides one

author: Jane
author_rank: Frequent Contributor
timestamp: December 05, 2015, 06:38:35 pm
content: @Shock: It is a satellite receiver with BCM7405 CPU . That CPU is made by Broadcom@helius: hardware tester could be a solution but I am not sure if that in the link would be helpful. There are 4 SDRAM chip (FBGA design) soldered on the mainboard

author: RoadRunner
author_rank: Frequent Contributor
timestamp: December 05, 2015, 06:38:48 pm
content: Quote from: Shock on December 05, 2015, 05:37:12 pmi am no expert here but i will explain what i actually did let start from few basic hardware issues. it is more related to making your own board rather than repairing one.getting , PMU to work properly was little tricky , due to all solder stencil job , there was few short here and there , i check with mulitimeter before powering but still few point were left, because of them,1.2V CPU got damaged even though almost all PMU has over current protection. and no CPU power was there at all. so CPU didn't do anything at all.i think out that when you use solder paste for manual use , always clean the board for any excess solder balls left , they will create issue. it happen to me.i replaced PMU with new one ,CPU started . i verified by connecting the board directly to PC via microUSB cable , it detected as some bootloader device. some custom allwinner thing . i didn't care much about it because now i know at least the CPU is running .then i cross compiled u-boot bootloader ,custom linux kernel and created a custom root file system. it was not a problem at all.i put sdcard into the thing and it showed boot uboot build version . first it just said SDRAM 0 MB and goes off , i know it was RAM issue so i checked the RAM contention, find out some soldering issue with tiny 0402 resistor network , now U-boot can detect 512MB RAM ( i have already made few changes in u-boot source about the RAM configuration , like banks , bus width , speed , and timing )as i was using PMU , now u-boot code will set CPU core voltage into PMU over I2C bus. it sets the CPU frequency to near 1GHz and core voltage to 1.4V.every thing was fine till then , but now random issue started happening, real problem started . some time it just try to boot and after few seconds of boot process kernel crash with "can not handle null pointer" , some time it will boot up to root file system mounting. it was absolutely random.but now i focused on why it is not detecting my sd card as rootfs when it can boot from it.found out the linux sees card detect pin to be low when card is present and high when card is not there , for my connector it was invert. as it was 3.4 kernel without device tree , there was no way to just pass some parameter and change polarity of SD card detect pin so , i modified SDIO driver a little and inverted polarity right were they read Card detect pin and it worked fairly well. with wait root kernel option set , to ask kernel to wait for root.now i have a usable system but very unstable due to that random crash issue.i focused on power and checked if nay power rail is making any funny business and check all decoupling caps. but every thing was fine.i made PCB with oshpark , without any special specification , no impedance control or anything , standard layer stack . so i thought it may be a RAM issue , in PCB design i only tried follow very basic DDR rules , like matched length , differential signal goes together , clock is lengthiest trace something like that.then i tested the RAM with memtester and found out that , my RAM always fails , sequential test and few other tests also , but not at fixed address or not any specific test at all, it was also random as the crash. i used 22ohm resistor between CPU and RAM , i looked all schematic they all were using same . but as my PCB parameter was different so i decided to try with different values . and after first try , 33ohm resistor works absolutely fine.tested whole ram once again , every test always goes happy after that.that is all .LCD , LED back lit driver was the most notorious part, it took my whole day to get it correct .i hope it helps. i have already published 3 part detailed description ,i will publish further about the board in next parts of series , you can check my little website atwww.circuitvalley.com.

author: Rasz
author_rank: Super Contributor
timestamp: December 06, 2015, 10:21:11 am
content: Quote from: Jane on December 05, 2015, 06:52:20 amQuote from: Jane on December 05, 2015, 06:38:35 pmo you dont have broadcom blessing, meaning no dev tools no bsp nothingcheck power rails, then just swap ram for known good