I have changed the Prop pin to memory card mapping starting at pin 8 of the propeller. But that didn't change anything. The SD test example works in LMM model, the hello world example does not work in any
XMM mode. I have tested it without sd card inserted into the sd card holder but my test also fails.
To test if I will get error messages from the propeller loader when loading the hello world example to the propeller in xmm-split mode, I disconnected the 4 data wires one at a time.
If I disconnect data 0 or data 1, the loader can't load the program to flash memory and brings up an error message. If I disconnect data 3 and/or data 4, no error message comes up.
The loader tells me that everything worked well.
So there could be an issue with the data 3 and data 4 pins of the memory card which I can't test because the loader "ignores" errors even if these are disconnected so I can't verify that
data communication on all 4 ports is working.
I want to say a big thanks to both of you for being patient and helping me out!!!
I think I will get in contact with parallax asking if they are willing to give me a replacement.
Do you know a contact person at parallax who is responsible for replacing products?
Cheers,
Christian
I have a cache test program you could try running. It bypasses the cache logic and just tries to read/write blocks of flash and/or SRAM. This should verify that all of the data lines are working. Otherwise, you're right. There is no error checking in the driver so having data 2 or 3 disconnected won't be noticed except that the data read/written will be wrong. You can't disconnect data 0 or data 1 because they are used by the SPI protocol. If you'd like to try the cache test program let me know and I'll post it along with instructions on how to use it.
Yes, please could you post it with some how to notes? I would really like to find out what is causing the problems because I want to use the card in my pinball project
I want to say a big thanks to both of you for being patient and helping me out!!!
I think I will get in contact with parallax asking if they are willing to give me a replacement.
Don't call for a replacement.
I do not believe this is hardware problem.
Once David has a driver that initializes the SDIO mode, we can verify.
If it turns out to be a hardware problem, I'm sure Parallax will replace it.
Yes, it is not working even with no sd card inserted.
But I'll first try the test program from David before I'm going to contact Parallax.
This isn't a very through test program but it should verify the basic functioning of the PMC. Here is the output that should be generated. This assumes the PMC is connected to P0-P7.
Rewire your connections to match the demo. Wiring errors or possibly bad wires is always a possibility.
Also, use shorter red/black power and ground wires if possible.
That was one of my first thoughts. I changed the cables several times and carefully checked the pin to memory card mappings.
Always get the same results: Not working (except SD access).
@David:
I executed the test program you attached to your post. I get the following output:
C:\Users\Christian\Documents\SimpleIDE\MemoryCardTest>"C:\Program Files (x86)\Si
mpleIDE\propeller-gcc\bin\propeller-load.exe" cachetest.elf -r -t
Propeller Version 1 on COM3
Loading cachetest.elf to hub memory
11984 bytes sent
Verifying RAM ... OK
[ Entering terminal mode. Type ESC or Control-C to exit. ]
mbox 00002ed0
cache 00002edc
buf 000050dc
Flash test
Starting with 000043be
buf[0] = 000043be
buf[1] = 000043bf
buf[2] = 000043c0
buf[3] = 000043c1
buf[4] = 000043c2
buf[5] = 000043c3
buf[6] = 000043c4
buf[7] = 000043c5
buf[8] = 000043c6
buf[9] = 000043c7
buf[10] = 000043c8
buf[11] = 000043c9
buf[12] = 000043ca
buf[13] = 000043cb
buf[14] = 000043cc
buf[15] = 000043cd
buf[16] = 00000000
buf[17] = 00000000
buf[18] = 00000000
buf[19] = 00000000
buf[20] = 00000000
buf[21] = 00000000
buf[22] = 00000000
buf[23] = 00000000
buf[24] = 00000000
buf[25] = 00000000
buf[26] = 00000000
buf[27] = 00000000
buf[28] = 00000000
buf[29] = 00000000
buf[30] = 00000000
buf[31] = 00000000
done
Big RAM test
Filling RAM
Writing 20000000
Writing 20000080
Writing 20000100
Writing 20000180
Writing 20000200
Writing 20000280
Writing 20000300
Writing 20000380
Checking RAM
Reading 20000000
Reading 20000080
200000e0: expected 200000e0, found 9f733932
200000e4: expected 200000e4, found bf477cfb
200000e8: expected 200000e8, found 628a97fb
200000ec: expected 200000ec, found 97c23efe
200000f0: expected 200000f0, found f8b82b18
200000f4: expected 200000f4, found 0bdff44f
200000f8: expected 200000f8, found f9724c4e
200000fc: expected 200000fc, found 6f8db157
Reading 20000100
Reading 20000180
200001e0: expected 200001e0, found 7baaa5a4
200001e4: expected 200001e4, found 9deb1689
200001e8: expected 200001e8, found 65d8fe7b
200001ec: expected 200001ec, found ead7a0fe
200001f0: expected 200001f0, found 4afe96fd
200001f4: expected 200001f4, found 5bebb3a5
200001f8: expected 200001f8, found f69f663c
200001fc: expected 200001fc, found ddbfc8d3
Reading 20000200
Reading 20000280
200002e0: expected 200002e0, found 46bf39b6
200002e4: expected 200002e4, found 379d83fd
200002e8: expected 200002e8, found e289839d
200002ec: expected 200002ec, found bad73463
200002f0: expected 200002f0, found 3c2ec50b
200002f4: expected 200002f4, found c9ecd975
200002f8: expected 200002f8, found 1595ae7f
200002fc: expected 200002fc, found ffd9eaf7
Reading 20000300
Reading 20000380
200003e0: expected 200003e0, found 796df5b5
200003e4: expected 200003e4, found d154fcbe
200003e8: expected 200003e8, found 1d6dd9f7
200003ec: expected 200003ec, found f18add6a
200003f0: expected 200003f0, found 37bf3872
200003f4: expected 200003f4, found fb3ef9da
200003f8: expected 200003f8, found 142f4c3d
200003fc: expected 200003fc, found beaa9cff
done
I don't know if flash ram gets verified after writing but there are no errors. But when checking RAM there are many errors.
Does that indicate a defect SRAM module or something in that direction?
Oh, ok I'll also use the Parallax spin test and post the output in a few minutes.
Writing Hello World! to Flash seems to be working. But writing to RAM not. After writing Hello World! to SRAM the first 64 bytes are still empty?
Looks like writing to SRAM does not work?
I don't know if flash ram gets verified after writing but there are no errors. But when checking RAM there are many errors.
Does that indicate a defect SRAM module or something in that direction?
The flash doesn't get verified. It's just that I write sequential numbers starting at the one on the "Starting with" line. It looks like your data is correct. I never had too much trouble with flash so I just wrote a simple test. I can expand the test program if you think that's necessary. However, flash seems to be working on your board which suggests to me that xmmc mode ought to work. Have you tried it?
Oh, ok I'll also use the Parallax spin test and post the output in a few minutes.
Yes, it will be interesting to see the results of running that test.
Writing Hello World! to Flash seems to be working. But writing to RAM not. After writing Hello World! to SRAM the first 64 bytes are still empty?
Looks like writing to SRAM does not work?
Looks like that to me too. That's odd because I imagine Parallax runs this test before shipping the boards. I guess it's pointless to ask if you're sure that the SRAM CS line is connected properly. You've checked those connections a zillion times already, right?
Just checked the connections but SRAM CS is definitely connected to Pin 6 on the Propeller. The other wires are also correct (Writing to Flash works according to the spin test).
I tried to run the hello world c example in XMMC mode but that's not working. I do not get any output in the terminal window.
It's really strange.
The spin test also outputs that I have 0 Flash blocks. Does that mean anything weird or is that ok and the chip just doesn't send the correct block count?
There is a bug in the Spin example that causes it to list the number of blocks as '0'. It doesn't display the number of blocks until at has successfully communicated with the flash memory, so that '0' does mean that it works.
There is a bug in the Spin example that causes it to list the number of blocks as '0'. It doesn't display the number of blocks until at has successfully communicated with the flash memory, so that '0' does mean that it works.
— David Carrier
Parallax Inc.
Thanks David but what about his SRAM results. Do they indicate a problem with the board?
@David Carrier: Do you have any ideas what I else could do or test to find out if the board has an issue or not? Currently it looks like I can't use it because the results indicate a problem.
This isn't a very through test program but it should verify the basic functioning of the PMC. Here is the output that should be generated. This assumes the PMC is connected to P0-P7.
Darn! I just realized that this test isn't working correctly on my board either. If you look at the code it fills 32 longs with incrementing values, writes them to the first block of flash, then reads them back. However, only the first 16 are correct. I'm going to have to track down this problem. Please don't ask Parallax for a replacement board until I figure out what is going wrong with my test program. However, as I said earlier, this driver does seem to work with the hello example you were trying in the first place so it seems like this may actually be a test program bug rather than a cache driver bug. Give me a bit of time to figure this out. Sorry!!!
No worries!! I will do the test again if you have found the issue. But I also had a problem with the spin test and SRAM while your test on your side worked with SRAM.
No worries!! I will do the test again if you have found the issue. But I also had a problem with the spin test and SRAM while your test on your side worked with SRAM.
Regards,
Christian
Yes, I know about the problem you had with the Spin test. I'm hoping David Carrier will comment on that one.
Okay, I found the bug. It was actually in the cache driver but I don't think it would have caused a problem with using it for running C code. It only caused a problem for the test program. In any case, here is a new copy of cachetest with a better flash test as well as a less verbose SRAM test. You should expect the following output:
$ propeller-load cachetest.elf -r -t
Propeller Version 1 on /dev/cu.usbserial-A601FCST
Loading cachetest.elf to hub memory
13016 bytes sent
Verifying RAM ... OK
[ Entering terminal mode. Type ESC or Control-C to exit. ]
mbox 00003588
cache 00003594
buf 00005794
Big flash test
Start value 30000a48
Filling flash
Checking flash
Filling flash inverted
Checking flash inverted
done
Big RAM test
Filling RAM
Start value 20004981
Checking RAM
Filling RAM inverted
Checking RAM inverted
done
cache test
done
Edit: updated the attachment with a test that provides better coverage.
Edit2: I've run this test successfully on a QuickStart+HIB+PMC as well as a DemoBoard+PMC.
I'm at work currently. I'll execute the test as soon as I'm at home.
No problem. Since you won't be running the test right away, I'll replace the attachment with a slightly newer test that should give better coverage and also enables the cache test itself. The other tests are just for flash and SRAM block I/O.
I executed the cache test. Got lots of errors so I had to shrink the output because the complete output didn't fit into the windows command window buffer.
Here is the result. Looks like Flash and SRAM are failing:
C:\Users\Christian\Documents\SimpleIDE\MemoryCardTest>propeller-load cachetest.e
lf -r -t
Propeller Version 1 on COM3
Loading cachetest.elf to hub memory
13704 bytes sent
Verifying RAM ... OK
[ Entering terminal mode. Type ESC or Control-C to exit. ]
mbox 00003588
cache 00003594
buf 00005794
Big flash test
Start value 300061f3
Filling flash
Checking flash
30000000: expected 300061f3, found 0f031036
30000004: expected 300061f4, found 0f031046
30000008: expected 300061f5, found 0f031056
3000000c: expected 300061f6, found 0f031066
30000010: expected 300061f7, found 0f031076
30000014: expected 300061f8, found 0f031086
30000018: expected 300061f9, found 0f031096
3000001c: expected 300061fa, found 0f0310a6
30000020: expected 300061fb, found 0f0310b6
30000024: expected 300061fc, found 0f0310c6
30000028: expected 300061fd, found 0f0310d6
3000002c: expected 300061fe, found 0f0310e6
30000030: expected 300061ff, found 000310f6
30000034: expected 30006200, found 00032006
30000038: expected 30006201, found 00032016
3000003c: expected 30006202, found 00032026
30000040: expected 30006203, found 00032036
30000044: expected 30006204, found 00032046
30000048: expected 30006205, found 00032056
3000004c: expected 30006206, found 00032066
30000050: expected 30006207, found 00032076
30000054: expected 30006208, found 00032086
30000058: expected 30006209, found 00032096
3000005c: expected 3000620a, found 000320a6
30000060: expected 3000620b, found 000320b6
30000064: expected 3000620c, found 000320c6
30000068: expected 3000620d, found 000320d6
3000006c: expected 3000620e, found 000320e6
30000070: expected 3000620f, found 010320f6
30000074: expected 30006210, found 01032006
30000078: expected 30006211, found 01032016
3000007c: expected 30006212, found 01032026
30000400: expected 300062f3, found 0f032036
30000404: expected 300062f4, found 0f032046
30000408: expected 300062f5, found 0f032056
3000040c: expected 300062f6, found 0f032066
30000410: expected 300062f7, found 0f032076
30000414: expected 300062f8, found 0f032086
30000418: expected 300062f9, found 0f032096
3000041c: expected 300062fa, found 0f0320a6
30000420: expected 300062fb, found 0f0320b6
30000424: expected 300062fc, found 0f0320c6
30000428: expected 300062fd, found 0f0320d6
3000042c: expected 300062fe, found 0f0320e6
30000430: expected 300062ff, found 000320f6
30000434: expected 30006300, found 00033006
30000438: expected 30006301, found 00033016
3000043c: expected 30006302, found 00033026
30000440: expected 30006303, found 00033036
30000444: expected 30006304, found 00033046
30000448: expected 30006305, found 00033056
3000044c: expected 30006306, found 00033066
30000450: expected 30006307, found 00033076
30000454: expected 30006308, found 00033086
30000458: expected 30006309, found 00033096
3000045c: expected 3000630a, found 000330a6
30000460: expected 3000630b, found 000330b6
30000464: expected 3000630c, found 000330c6
30000468: expected 3000630d, found 000330d6
3000046c: expected 3000630e, found 000330e6
30000470: expected 3000630f, found 010330f6
30000474: expected 30006310, found 01033006
30000478: expected 30006311, found 01033016
3000047c: expected 30006312, found 01033026
30000800: expected 300063f3, found 0f033036
30000804: expected 300063f4, found 0f033046
30000808: expected 300063f5, found 0f033056
3000080c: expected 300063f6, found 0f033066
30000810: expected 300063f7, found 0f033076
30000814: expected 300063f8, found 0f033086
30000818: expected 300063f9, found 0f033096
3000081c: expected 300063fa, found 0f0330a6
30000820: expected 300063fb, found 0f0330b6
30000824: expected 300063fc, found 0f0330c6
30000828: expected 300063fd, found 0f0330d6
3000082c: expected 300063fe, found 0f0330e6
30000830: expected 300063ff, found 000330f6
30000834: expected 30006400, found 00034006
30000838: expected 30006401, found 00034016
3000083c: expected 30006402, found 00034026
30000840: expected 30006403, found 00034036
30000844: expected 30006404, found 00034046
30000848: expected 30006405, found 00034056
3000084c: expected 30006406, found 00034066
30000850: expected 30006407, found 00034076
30000854: expected 30006408, found 00034086
30000858: expected 30006409, found 00034096
3000085c: expected 3000640a, found 000340a6
30000860: expected 3000640b, found 000340b6
30000864: expected 3000640c, found 000340c6
30000868: expected 3000640d, found 000340d6
3000086c: expected 3000640e, found 000340e6
30000870: expected 3000640f, found 010340f6
30000874: expected 30006410, found 01034006
30000878: expected 30006411, found 01034016
3000087c: expected 30006412, found 01034026
30000c00: expected 300064f3, found 0f034036
30000c04: expected 300064f4, found 0f034046
30000c08: expected 300064f5, found 0f034056
30000c0c: expected 300064f6, found 0f034066
30000c10: expected 300064f7, found 0f034076
30000c14: expected 300064f8, found 0f034086
30000c18: expected 300064f9, found 0f034096
30000c1c: expected 300064fa, found 0f0340a6
30000c20: expected 300064fb, found 0f0340b6
30000c24: expected 300064fc, found 0f0340c6
30000c28: expected 300064fd, found 0f0340d6
30000c2c: expected 300064fe, found 0f0340e6
30000c30: expected 300064ff, found 000340f6
30000c34: expected 30006500, found 00035006
30000c38: expected 30006501, found 00035016
30000c3c: expected 30006502, found 00035026
30000c40: expected 30006503, found 00035036
30000c44: expected 30006504, found 00035046
30000c48: expected 30006505, found 00035056
30000c4c: expected 30006506, found 00035066
30000c50: expected 30006507, found 00035076
30000c54: expected 30006508, found 00035086
30000c58: expected 30006509, found 00035096
30000c5c: expected 3000650a, found 000350a6
30000c60: expected 3000650b, found 000350b6
30000c64: expected 3000650c, found 000350c6
30000c68: expected 3000650d, found 000350d6
30000c6c: expected 3000650e, found 000350e6
30000c70: expected 3000650f, found 010350f6
30000c74: expected 30006510, found 01035006
30000c78: expected 30006511, found 01035016
30000c7c: expected 30006512, found 01035026
30001000: expected 300065f3, found 0f035036
30001004: expected 300065f4, found 0f035046
30001008: expected 300065f5, found 0f035056
3000100c: expected 300065f6, found 0f035066
30001010: expected 300065f7, found 0f035076
30001014: expected 300065f8, found 0f035086
30001018: expected 300065f9, found 0f035096
3000101c: expected 300065fa, found 0f0350a6
30001020: expected 300065fb, found 0f0350b6
30001024: expected 300065fc, found 0f0350c6
30001028: expected 300065fd, found 0f0350d6
3000102c: expected 300065fe, found 0f0350e6
................................
................................
30007d60: expected 30003e0f, found 0103e0f3
30007d64: expected 30003e10, found 0103e003
30007d68: expected 30003e11, found 0103e013
30007d6c: expected 30003e12, found 0103e023
30007d70: expected 30003e13, found 0103e033
30007d74: expected 30003e14, found 0103e043
30007d78: expected 30003e15, found 0103e053
30007d7c: expected 30003e16, found 0103e063
Filling flash inverted
Checking flash inverted
done
Big RAM test
Filling RAM
Start value 2000673a
Checking RAM
2000000c: expected 2000673d, found 2000203d
20000010: expected 2000673e, found 20002067
20000014: expected 2000673f, found 20002068
20000018: expected 20006740, found 20002069
2000001c: expected 20006741, found 2000206a
20000020: expected 20006742, found 003ee720
20000024: expected 20006743, found 003ee820
20000028: expected 20006744, found 003ee920
2000002c: expected 20006745, found 003eea20
20000030: expected 20006746, found 003eeb20
20000034: expected 20006747, found 003eec20
20000038: expected 20006748, found ed3fed20
2000003c: expected 20006749, found dd8e9f55
20000040: expected 2000674a, found bf7216df
20000044: expected 2000674b, found 663fb2df
20000048: expected 2000674c, found 70b712fd
2000004c: expected 2000674d, found b3fdb9bc
20000050: expected 2000674e, found 6ff6ff8d
20000054: expected 2000674f, found ac5d2ada
20000058: expected 20006750, found adff5bdb
2000005c: expected 20006751, found d7b2d47f
20000060: expected 20006752, found cd62f73e
20000064: expected 20006753, found 3bb81883
20000068: expected 20006754, found bebd6f8f
2000006c: expected 20006755, found f47f0fa9
........................................................
........................................................
20007f7c: expected 00007f7c, found ffffffff
20007f80: expected 00007f80, found ffee0000
20007f84: expected 00007f84, found ffffffff
20007f88: expected 00007f88, found ffffffff
20007f8c: expected 00007f8c, found ffffffff
20007f90: expected 00007f90, found ffffffff
20007f94: expected 00007f94, found ffffffff
20007f98: expected 00007f98, found ffffffff
20007f9c: expected 00007f9c, found ffffffff
20007fa0: expected 00007fa0, found ffffffff
20007fa4: expected 00007fa4, found ffffffff
20007fa8: expected 00007fa8, found ffffffff
20007fac: expected 00007fac, found ffffffff
20007fb0: expected 00007fb0, found ffffffff
20007fb4: expected 00007fb4, found ffffffff
20007fb8: expected 00007fb8, found ffffffff
20007fbc: expected 00007fbc, found ffffffff
20007fc0: expected 00007fc0, found ffee0000
20007fc4: expected 00007fc4, found ffffffff
20007fc8: expected 00007fc8, found ffffffff
20007fcc: expected 00007fcc, found ffffffff
20007fd0: expected 00007fd0, found ffffffff
20007fd4: expected 00007fd4, found ffffffff
20007fd8: expected 00007fd8, found ffffffff
20007fdc: expected 00007fdc, found ffffffff
20007fe0: expected 00007fe0, found ffffffff
20007fe4: expected 00007fe4, found ffffffff
20007fe8: expected 00007fe8, found ffffffff
20007fec: expected 00007fec, found ffffffff
20007ff0: expected 00007ff0, found ffffffff
20007ff4: expected 00007ff4, found ffffffff
20007ff8: expected 00007ff8, found ffffffff
20007ffc: expected 00007ffc, found ffffffff
done
What do you think about that output? Is it possible that a defect card produce such an output?
What do you think about that output? Is it possible that a defect card produce such an output?
It certainly doesn't look good. I suppose it could be some timing problem in my driver that causes problems for some PMC boards but not others. How do you have your board wired up? Maybe I can try to duplicate your exact setup. In other words, what board are you using and how do you have the PMC connected? Wire length, etc?
Regarding the Spin test, it looks like the Flash is working as well as all of the data pins, but there is some sort of SRAM specific issue or chip-select issue. Try swapping out the I/O pins for flash and SRAM CS with a new set of I/O pins, e.g. 8 and 9 instead of 5 and 6. Also there should be internal 100 k ohm pull-up resistors on all of the CS pins. Unplug the card and check it with an ohmmeter to make sure those connections are good.
We test all of the connections before shipping the memory card, and it is simple enough that we have never had one fail in production. (We did simulate failures on prototypes to test the test code.) You should also be able to see any soldering issues. The SRAM is the smaller chip near the bottom edge of the PCB, and the pull-up resistors are in the rightmost resistor network of the two immediately below the microSD card socket.
It certainly doesn't look good. I suppose it could be some timing problem in my driver that causes problems for some PMC boards but not others. How do you have your board wired up? Maybe I can try to duplicate your exact setup. In other words, what board are you using and how do you have the PMC connected? Wire length, etc?
David, trancefreak,
I'm getting basically the same result as trancefreak on my QS + HIB + PMC... I've attached an image that shows the PMC's chips for identification purposes.
propeller-load -p /dev/cu.usbserial-A1013PDN cachetest.elf -r -t -S
Propeller Version 1 on /dev/cu.usbserial-A1013PDN
Loading cachetest.elf to hub memory
13704 bytes sent
Verifying RAM ... OK
[ Entering terminal mode. Type ESC or Control-C to exit. ]
mbox 00003588
cache 00003594
buf 00005794
Big flash test
Start value 30002223
Filling flash
Checking flash
Filling flash inverted
Checking flash inverted
done
Big RAM test
Filling RAM
Start value 20000c4c
Checking RAM
2000000c: expected 20000c4f, found 96000c4f
20000010: expected 20000c50, found e79fb7ef
20000014: expected 20000c51, found dfbeded7
20000018: expected 20000c52, found 7ff95aed
2000001c: expected 20000c53, found defd1bf7
20000020: expected 20000c54, found 9d612298
20000024: expected 20000c55, found e0631dea
20000028: expected 20000c56, found 11494048
2000002c: expected 20000c57, found 37598dea
20000030: expected 20000c58, found 6c9c2951
20000034: expected 20000c59, found 906f3994
...
EDIT: Note: I get the same result whether the SD card is not inserted, inserted to the PMC, inserted to the HIB.
I'm getting basically the same result as trancefreak on my QS + HIB + PMC... I've attached an image that shows the PMC's chips for identification purposes.
propeller-load -p /dev/cu.usbserial-A1013PDN cachetest.elf -r -t -S
Propeller Version 1 on /dev/cu.usbserial-A1013PDN
Loading cachetest.elf to hub memory
13704 bytes sent
Verifying RAM ... OK
[ Entering terminal mode. Type ESC or Control-C to exit. ]
mbox 00003588
cache 00003594
buf 00005794
Big flash test
Start value 30002223
Filling flash
Checking flash
Filling flash inverted
Checking flash inverted
done
Big RAM test
Filling RAM
Start value 20000c4c
Checking RAM
2000000c: expected 20000c4f, found 96000c4f
20000010: expected 20000c50, found e79fb7ef
20000014: expected 20000c51, found dfbeded7
20000018: expected 20000c52, found 7ff95aed
2000001c: expected 20000c53, found defd1bf7
20000020: expected 20000c54, found 9d612298
20000024: expected 20000c55, found e0631dea
20000028: expected 20000c56, found 11494048
2000002c: expected 20000c57, found 37598dea
20000030: expected 20000c58, found 6c9c2951
20000034: expected 20000c59, found 906f3994
...
EDIT: Note: I get the same result whether the SD card is not inserted, inserted to the PMC, inserted to the HIB.
dgately
Is your SD card inserted all the way? That will certainly cause problems since the SD card comes up in SD bus mode not SPI mode. Try removing the SD card and running the test again.
Comments
Yes, please could you post it with some how to notes? I would really like to find out what is causing the problems because I want to use the card in my pinball project
Thanks,
Christian
Don't call for a replacement.
I do not believe this is hardware problem.
Once David has a driver that initializes the SDIO mode, we can verify.
If it turns out to be a hardware problem, I'm sure Parallax will replace it.
Thanks,
--Steve
But I'll first try the test program from David before I'm going to contact Parallax.
cachetest.zip
Maybe try the Parallax test without the SD Card.
The Parallax Flash/SRAM SPIN test program is here:
http://www.parallax.com/downloads/propeller-memory-card-demo-code
Rewire your connections to match the demo. Wiring errors or possibly bad wires is always a possibility.
Also, use shorter red/black power and ground wires if possible.
That was one of my first thoughts. I changed the cables several times and carefully checked the pin to memory card mappings.
Always get the same results: Not working (except SD access).
@David:
I executed the test program you attached to your post. I get the following output:
I don't know if flash ram gets verified after writing but there are no errors. But when checking RAM there are many errors.
Does that indicate a defect SRAM module or something in that direction?
Oh, ok I'll also use the Parallax spin test and post the output in a few minutes.
Writing Hello World! to Flash seems to be working. But writing to RAM not. After writing Hello World! to SRAM the first 64 bytes are still empty?
Looks like writing to SRAM does not work?
I tried to run the hello world c example in XMMC mode but that's not working. I do not get any output in the terminal window.
It's really strange.
The spin test also outputs that I have 0 Flash blocks. Does that mean anything weird or is that ok and the chip just doesn't send the correct block count?
— David Carrier
Parallax Inc.
Any help would be really appreciated.
Thanks,
Christian
Darn! I just realized that this test isn't working correctly on my board either. If you look at the code it fills 32 longs with incrementing values, writes them to the first block of flash, then reads them back. However, only the first 16 are correct. I'm going to have to track down this problem. Please don't ask Parallax for a replacement board until I figure out what is going wrong with my test program. However, as I said earlier, this driver does seem to work with the hello example you were trying in the first place so it seems like this may actually be a test program bug rather than a cache driver bug. Give me a bit of time to figure this out. Sorry!!!
No worries!! I will do the test again if you have found the issue. But I also had a problem with the spin test and SRAM while your test on your side worked with SRAM.
Regards,
Christian
cachetest.zip
Edit: updated the attachment with a test that provides better coverage.
Edit2: I've run this test successfully on a QuickStart+HIB+PMC as well as a DemoBoard+PMC.
Here is the result. Looks like Flash and SRAM are failing:
What do you think about that output? Is it possible that a defect card produce such an output?
Can you take a picture of the front-side of the board that clearly shows the chip numbers and post it here?
Thanks.
We test all of the connections before shipping the memory card, and it is simple enough that we have never had one fail in production. (We did simulate failures on prototypes to test the test code.) You should also be able to see any soldering issues. The SRAM is the smaller chip near the bottom edge of the PCB, and the pull-up resistors are in the rightmost resistor network of the two immediately below the microSD card socket.
I have to watch my little daughter. She is a bit sick the last days. When she is in bed I'll provide you the asked information
Thx,
Christian
David, trancefreak,
I'm getting basically the same result as trancefreak on my QS + HIB + PMC... I've attached an image that shows the PMC's chips for identification purposes.
EDIT: Note: I get the same result whether the SD card is not inserted, inserted to the PMC, inserted to the HIB.
dgately