Hi guys,
Trev, from Jaluino, has made several tests with SD cards, running on Jaluino Bee. He's been able to make 2GB SD Card working, see below. Matt, can you tell us more about this SD_DELAY_AFTER_WRITE constant ? When true, it just waits, when false, it does a lot more than just wait ? Pull-ups configured with this test: /SS and SCK Sample: https://code.google.com/p/jaluino/source/browse/trunk/samples/jaluino_bee_sd_card.jal with modified SD_DELAY_AFTER_WRITE to false (in lib jaluino.jal) Cheers, Seb ---------- Forwarded message ---------- You might recall issues I had with some uSD cards not working with the Bee and your test SD write/read program. Well, having purchased a single 2Gb uSD card off eBay and finding it worked and was branded ADATA I asked the Chinese vendor if I bought more, would they also be ADATA branded. He said yes, so I bought six more. However, when they arrived they were generic, unbranded cards. Three of them worked and three of them didn't work with the Bee. Dang! So tonight while I was re-testing the three non-working cards, I removed a card after the Bee had "written" but after it got stuck and did not do any "reading", and then put it back almost immediately. The Bee then started reading the crad and flashing the LED. Hmmm. So I decided to play around with the code. The first thing I did was add a delay after the stop_write() and before the start_read(). This made no difference. The next thing I did was add a second stop_write() immediately after the first one... this worked! So now I turned my attention to the sd_card.jal file. if SD_DELAY_AFTER_WRITE == TRUE then _usec_delay (50_000) else for 50000 loop sd_chip_select = low -- enable the sd card var byte reply send_command(SD_STOP_**TRANSMISSION,0,reply) -- stop current transmission sd_ready() -- wait till sd card is ready send_command(SD_GO_IDLE_STATE,**0,reply) -- command 0, Resets card to idle state sd_ready() -- wait till sd card is ready sd_chip_select = high -- disable the sd card if !(reply == 0) then exit loop end if end loop end if I first commented out the "if...else" and "end if" and ... it worked! Looking at the code, I'm not sure I understand how simply delaying for 50,000us is supposed to be a delay compared with all those commands in the else clause trapped in a 50,000 loop! But be that as it may, the ultimate fix was to track down the SD_DELAY_AFTER_WRITE constant in the jaluino_bee.jal file and make it FALSE although I still suspect there's something not quite right about that sd_card.jal code which I don't understand because it seems to me that the else clause causes an even bigger delay! Anyway, it now works for all the 2Gb uSD cards that I have (although I can't find the 2Gb Kingston branded one which first caused the problem more than a year ago). Cheers, TREV. -- You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jallib?hl=en.
