MOD 5282 MEMORY/FLASH TEST
MOD 5282 MEMORY/FLASH TEST
I'm wondering if anyone has developed an app to test the SDRAM and Flash on a MOD5282?
I'm asking because I've just had three fairly new MOD5282's returned from the field because they failed to communicate with their host PC. I plugged them into a bench system and sure enough, no comms. Neither IPSetup nor AutoUpdate can see the devices. Even a ping to the devices' static IP address fails. I broke out my Netburner carrier board, and hooked up one of the devices to my development system. I can connect to the debug port using the Mttty.exe program. The message on the debug port indicates that my program is running, but there are no communications through the network port.
I used the Mttty program to download some Netburner precompiled apps (e.g., MOD5282FactoryDemo_App.s19 and tictactoe_App.s19) into Flash. After restart, the program runs on the device as expected. IPSetup and AutoUpdate can now see the device, and it responds to pings. I followed-up by downloading device apps that were developed here. Again after restart, the program runs as expected. IPSetup and AutoUpdate can still see the device, and it still responds to pings. I can even use AutoUpdate to swap between Netburner precompiled apps and in-house developed app. No problems.
Now here is where it get weird. When I download the in-house developed app that is supposed to run in that MOD5282, I loose all communications through the network port. IPSetup and AutoUpdate no longer see the device, and pings to the static IP address fail. The data on the debug port indicates that the app is running as expected.
My only guess at the moment is a problem with either the SDRAM or Flash. For background, this particular app will successfully run on other MOD5282 devices. Developed back in 2011, there are currently twelve MOD5282's in the field running this app with the oldest ones being delivered back in mid-2012.
v/r,
Tpannone
I'm asking because I've just had three fairly new MOD5282's returned from the field because they failed to communicate with their host PC. I plugged them into a bench system and sure enough, no comms. Neither IPSetup nor AutoUpdate can see the devices. Even a ping to the devices' static IP address fails. I broke out my Netburner carrier board, and hooked up one of the devices to my development system. I can connect to the debug port using the Mttty.exe program. The message on the debug port indicates that my program is running, but there are no communications through the network port.
I used the Mttty program to download some Netburner precompiled apps (e.g., MOD5282FactoryDemo_App.s19 and tictactoe_App.s19) into Flash. After restart, the program runs on the device as expected. IPSetup and AutoUpdate can now see the device, and it responds to pings. I followed-up by downloading device apps that were developed here. Again after restart, the program runs as expected. IPSetup and AutoUpdate can still see the device, and it still responds to pings. I can even use AutoUpdate to swap between Netburner precompiled apps and in-house developed app. No problems.
Now here is where it get weird. When I download the in-house developed app that is supposed to run in that MOD5282, I loose all communications through the network port. IPSetup and AutoUpdate no longer see the device, and pings to the static IP address fail. The data on the debug port indicates that the app is running as expected.
My only guess at the moment is a problem with either the SDRAM or Flash. For background, this particular app will successfully run on other MOD5282 devices. Developed back in 2011, there are currently twelve MOD5282's in the field running this app with the oldest ones being delivered back in mid-2012.
v/r,
Tpannone
Re: MOD 5282 MEMORY/FLASH TEST
The monitor in my 5270 has a built in sdram test. So try sending the 'A' to get into the monitor, and at the NB> type "help" to see if there is a sdram test command
Re: MOD 5282 MEMORY/FLASH TEST
Are you storing anything in the flash config or user area? Does the IP address, mask or gateway change when you run your app vs. the factory apps? Configuration data stored in flash memory of a device can often look like a hardware problem because when you put in a new device it has a clean config/user flash parameter area. The other apps you mention would not use the flash config data as your program would.
Re: MOD 5282 MEMORY/FLASH TEST
Yes, all of our in-house developed apps store system configuration data in flash memory. The device's IP address, mask, and gateway do not change during runtime of any of our in-house developed apps compared to the factory apps. From what I can tell based on the app launch message on the debug port, even the problem app has the expected IP address, mask, and gateway as all the other apps. I cannot confirm that using IPSetup though. IPSetup just gives me empty fields and windows.
Re: MOD 5282 MEMORY/FLASH TEST
My 5282 has the RAM test feature also. Unfortunately, it is not mentioned in any of the documentation I have. Is there any explanation of this test on the NB Support site?rnixon wrote:The monitor in my 5270 has a built in sdram test. So try sending the 'A' to get into the monitor, and at the NB> type "help" to see if there is a sdram test command
Re: MOD 5282 MEMORY/FLASH TEST
Probably a factory test thing. Were you unable to get it to work, or have you not tried it yet?
Re: MOD 5282 MEMORY/FLASH TEST
It is asking for a Begin and End value. It throws an error if I leave both values blank. (I was hoping if left blank, it would test the entire block of SDRAM.) I've been reading through manuals and data sheets trying to determine what values to use.rnixon wrote:Probably a factory test thing. Were you unable to get it to work, or have you not tried it yet?
Re: MOD 5282 MEMORY/FLASH TEST
Take a look at the memory map for your board in \nburn\docs\platform, then use the SDRAM values you see there.
Re: MOD 5282 MEMORY/FLASH TEST
After a little trial and error with the RAM memory test (MT) function, the SDRAM passes. Now to focus on the Flash, and see if my problem is in the User Parameter Storage area.rnixon wrote:Take a look at the memory map for your board in \nburn\docs\platform, then use the SDRAM values you see there.
Thanks for the assist.
Re: MOD 5282 MEMORY/FLASH TEST
A few notes on flash memory storage for configuration, calibration, etc. that I use:
A "data valid" keycode that gets checked. If it isn't there or doesn't match, load default values.
Any time the structure or elements of what gets stored changes I increment the keycode. That way if I do a remote firmware update on an older unit it cleans itself up. Avoids bad behavior if the new code is looking for a parameter in the unit's flash that doesn't exist because the older firmware didn't have it.
A command to reset stored parameters to default
You can read, but never write to flash immediately on boot. Avoids corruption should someone flick a power switch on and off.
Sounds like your f/w might be getting stuck right at boot because it isn't handling/error checking a parameter value it read from flash. One thing you could do is write a new small program that just erases the user parameter area, then load your code again and see if it works. Or if you can build your app from source modify it to set the default values on boot.
A "data valid" keycode that gets checked. If it isn't there or doesn't match, load default values.
Any time the structure or elements of what gets stored changes I increment the keycode. That way if I do a remote firmware update on an older unit it cleans itself up. Avoids bad behavior if the new code is looking for a parameter in the unit's flash that doesn't exist because the older firmware didn't have it.
A command to reset stored parameters to default
You can read, but never write to flash immediately on boot. Avoids corruption should someone flick a power switch on and off.
Sounds like your f/w might be getting stuck right at boot because it isn't handling/error checking a parameter value it read from flash. One thing you could do is write a new small program that just erases the user parameter area, then load your code again and see if it works. Or if you can build your app from source modify it to set the default values on boot.