Hi, Glad you got it to work. I had suggested the pull up resistor because I know some PICs have some open-drain pins. If you have any more issues add pull ups to sdi/sdo/clk pins as well.
I just looked through the 18f4455 manual. It doesn't look like pin_a5 has an open drain. Does anyone know why this worked for him? Matt. On Monday, March 13, 2023 at 5:26:50 PM UTC-4 [email protected] wrote: > Hi Matt and Rob > > > > It works! > > > > Inverting the serial port gave rubbish and 1 stopbit I use standard. > > But Matt wrote a mail: ‘I asked Rob …..’ and then a short second mail: try > a pull-up resistor of 1K on CS and that was the solution for me. > > > > And not so funny: sometimes I got about ten of ‘AAAAA’ and then rubbish. > > I thought the ‘A’ is of earlier attemps and I even formatted the SD card! > > In the capture of Rob I saw the whole Marilyn and it started with ‘AAAA’. > > I thougt the writing did not succeed but now I know the reading crashed. > > > > Rob: in the original code the writing and reading per byte of Marilyn was > succesfull. > > So there could not be a hardware problem. > > > > I already changed the writing in writing the hex-code. > > > > Thank you both for your help. > > > > Regards, > > Peter > > > > *Van: *[email protected] > *Verzonden: *zaterdag 11 maart 2023 15:36 > *Aan: *jallib > *Onderwerp: *Re: [jallib] Re: problem with filling a sector buffer > > > > Hi Peter, Matt, > > > > I had a PIC 18F4550 which is from the same family as the 18F4455 and ran > the program. I only had to change the serial port to invert the output and > use 1 stopbit instead of 2 but that cannot be the issue. I did not make any > other changes. > > > > It seems to work OK so there must be something wrong with either the PIC, > the hardware or the SD card. I ran the PIC at 5 Volt using a level shifter > to connect to the SD car which was at 3.3 Volt. > > > > I used the Marilyn data that was given in this post. Attached the program > and the terminal output. > > > > Kind regards, > > > Rob > > > > > > > > Op maandag 27 februari 2023 om 23:16:48 UTC+1 schreef [email protected]: > > Hi Matthew > > > > I sent you the code of the 18F4455 so you could bettter see what is goning > wrong. > > In the meantime I rewrote the code for the 16F18877. Also here byte for > byte was working but the sample with a sector buffer refused to do what it > had to do. > > > > Regards, > > Peter > > > > *Van: *Matthew Schinkel > *Verzonden: *woensdag 22 februari 2023 03:14 > *Aan: *jallib > *Onderwerp: *Re: [jallib] Re: problem with filling a sector buffer > > > > Hi, this works from example 3, assuming the array is a constant (you > didn't show the array in your example). > > > > const byte MARILYN[504] = > {0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > > 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, > 0x42,0x42,0x42,0x42} > > -- fill the sector buffer with data > for 504 using step1 loop > sd_sector_buffer[step1] = MARILYN[step1] > end loop > -- write the sector buffer to sector 20 > sd_write_sector_address(20) > > -- read back the same sectors > -- read sector 20 into the sector buffer > sd_read_sector_address(20) > -- now send it to the serial port > for 504 using step1 loop -- loop till the end of > the sector buffer > serial_write (sd_sector_buffer[step1]) -- send each byte via serial > port > end loop > > On Monday, February 20, 2023 at 11:05:35 PM UTC-5 Matthew Schinkel wrote: > > Hi, ok so the original sample is working? I'll try what you have but one > thing I see is that your loop is 512 but marilyn is only 504. The loop > should only be the size of the array. > > > > for *504* using teller loop > > > sd_sector_buffer[teller] = marilyn[teller] > end loop > > Matt. > > On Monday, February 20, 2023 at 6:37:02 PM UTC-5 [email protected] wrote: > > Hi Matt > > I know that and I tried it before I wanted to write an array to the SD > card. > > It works perfect. > > The problem is how to write an array to the SD card. > > > > Regards, > > Peter > > > > Op 21 feb. 2023 om 00:21 heeft Matthew Schinkel <[email protected]> > het volgende geschreven: > > Hi, have you tried another sd card? What PIC are you using? > > > > Please try example 3 in the sample > > > > ; > -------------------------------------------------------------------------------- > ; -- EXAMPLE #3 write to 2 sectors using a sector buffer at a address > ; -- user friendly and fastest. > ; > -------------------------------------------------------------------------------- > ; -- fill the sector buffer with data > ; for 512 using step1 loop -- loop till the end of > the sector buffer > ; sd_sector_buffer[step1] = "B" -- set each byte of data > ; end loop > ; -- write the sector buffer to sector 20 > ; sd_write_sector_address(20) > ; for 512 using step1 loop -- loop till the end of > the sector buffer > ; sd_sector_buffer[step1] = "C" -- set each byte of data > ; end loop > ; -- write the sector buffer to sector 21 > ; sd_write_sector_address(21) > ; -- > ; -- read back the same sectors > ; -- read sector 20 into the sector buffer > ; sd_read_sector_address(20) > ; -- now send it to the serial port > ; for 512 using step1 loop -- loop till the end of > the sector buffer > ; serial_write (sd_sector_buffer[step1]) -- send each byte via serial > port > ; end loop > ; -- read sector 21 into the sector buffer > ; sd_read_sector_address(21) > ; -- now send it to the serial port > ; for 512 using step1 loop -- loop till the end of > the sector buffer > ; serial_write (sd_sector_buffer[step1]) -- send each byte via serial > port > ; end loop > > > > Matt. > > On Monday, February 20, 2023 at 12:12:04 PM UTC-5 [email protected] wrote: > > Hi Matt > I think this is a question for you. You made a beautiful sample for > writing to a sd card. > Every start of the program I use the part of your lib to control the > connection to the sd card. > I can write and read the sd card byte for byte. I use a bitmap image of > Marilyn Monroe of 504 bytes. > > The half of the next program works perfect: > var byte gegeven > var byte data > var word step1 > var word teller > > sd_start_write(50) > for count(marilyn) using teller loop > sd_data_byte = marilyn[teller] > end loop > sd_stop_write > This works perfect. > > > I also tried to write to the sd card with a 'sector buffer' because most > arrays are larger. > But first the array of Marilyn. It can be written in one sector. > Attempt 1: > print_string(serial_data, "Writing to sector 100") > print_crlf(serial_data) > > sd_start_write(100) > --fill the sector buffer > for 512 using teller loop > sd_sector_buffer[teller] = marilyn[teller] > end loop > -- write the sector buffer to sector 100 > sd_write_sector_address(100) > sd_stop _write > > I also tried: > Attempt 2: > > sd_start_write(150) > for 512 using step1 loop > gegeven = marilyn[step1] > sd_sector_buffer[step1] = gegeven > end loop > -- write the sector buffer to the sd card > sd_write_sector() > sd_stop _write > > Both attempts does not work. > I get rubbish when I read the sectors. > Can you tell me how I get it working. > > Regards, > Peter > > -- > You received this message because you are subscribed to a topic in the > Google Groups "jallib" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jallib/I1L0r6P-2xQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jallib/8415623e-2bbb-424c-9498-cd9b3c3b651cn%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/8415623e-2bbb-424c-9498-cd9b3c3b651cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > -- > You received this message because you are subscribed to a topic in the > Google Groups "jallib" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jallib/I1L0r6P-2xQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/jallib/dd7f03a9-9d77-42ea-8a9c-f08821a1fd3en%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/dd7f03a9-9d77-42ea-8a9c-f08821a1fd3en%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > > -- > You received this message because you are subscribed to a topic in the > Google Groups "jallib" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/jallib/I1L0r6P-2xQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/jallib/c8dca661-3ab0-4ee2-ba10-eff9b9860e58n%40googlegroups.com > > <https://groups.google.com/d/msgid/jallib/c8dca661-3ab0-4ee2-ba10-eff9b9860e58n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/fbde66cd-f544-4460-ab3d-280556b45638n%40googlegroups.com.
