Hi Joep, Matt, I tried several other block number, no success... About SD_DELAY_AFTER_WRITE = true, I'm already using it (and tried false), and I understand it's used on sd_write_stop(), that is, before the problem occurs.
Thanks, Seb 2011/11/6 mattschinkel <[email protected]> > Try changing the value of > const bit SD_DELAY_AFTER_WRITE > > Is there a write lock switch on the side of your card? Most likely not > since your using micro sd. > > My MSD still needs work, but I'm getting closer. still not working so > well at the moment. I thought I was getting somewhere, but there have > been setbacks. If you do get SD card working, I'll give you my latest > MSD code. It doesn't support writes yet anyways. > > Matt. > > On Nov 6, 4:31 am, Sebastien Lelong <[email protected]> > wrote: > > Hi Matt, guys, > > > > I'm having a really weird problem with SD-card on my jaluino bee board.It > > used to work but not anymore, though same hardware and same software > > (backup HEX file that was working). > > > > Here's the story... > > > > I built a new Bee board, using 18f25K22 instead of 18F27J53. When I tried > > to test sd card it didn't work. Note I programmed 25K22 using pickit2, > with > > SD-card plugged, while Vpp = 11/12V (IIRC). 27J53 uses 3V3 as Vpp, no > harm > > to the card can be done... My try didn't work, can't write/read to > Sd-Card. > > > > I tried back on the Bee board, on which I knew it was working. Now it > > didn't work at all. I thought I damaged the card with bad voltage, but > > Windows is happy use it, format it, read and write to it. So I'm not sure > > it's actually damaged. > > > > Still, using the exact same hardware (I rechecked connection just in > case: > > OK), the exact same software (HEX I preciously saved), no luck anymore... > > > > I tried to track down where it fails. It seems it can't terminate/close a > > SD sector. The calling code is the following: > > > > sd_start_write(20) -- get sd card ready for write at sector 20 > > for 512 + 256 loop -- loop 1 sector + 1 half sector (512 + 256 > > bytes) > > > > print_string(serial_hw_data,writing) > > print_byte_dec(serial_hw_data,counter) > > > > sd_data_byte = counter -- write 1 bytes of data > > > > print_string(serial_hw_data,written) > > print_crlf(serial_hw_data) > > > > counter = counter + 1 > > end loop > > > > It actually says it's writing, until the 512th byte, that is, end of SD > > card sector. On the last failing call, sd_data_byte'put gets stuck in the > > following while loop: > > > > procedure sd_data_byte'put(byte in data_byte) is > > > > [...] > > > > if sd_byte_count == SD_BYTE_PER_SECTOR then -- end of sector write > > serial_hw_data = "s" > > sd_byte_count = 0 > > sd_sector_count = sd_sector_count + 1 -- increment sector count > > > > spi_master = 0xFF -- send junk crc, crc is disabled > > spi_master = 0xFF -- send junk crc, crc is disabled > > > > x = spi_master -- wait for a response > > > > while x == 0 loop > > serial_hw_data = "." > > x = spi_master > > end loop > > > > It just prints "." indefinitely... > > > > Do you guys have any idea of the current problem ? Could the card be > > damaged and still Windows being to use it ? > > I'm afraid I don't have another card to test... > > > > TIA > > Cheers, > > Seb > > -- > 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. > > -- Sébastien Lelong -- 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.
