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
Op 21 feb. 2023 om 00:21 heeft Matthew Schinkel <mattsc...@hotmail.com> het volgende geschreven:
Hi, have you tried another sd card? What PIC are you using?
--
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 jallib+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/8415623e-2bbb-424c-9498-cd9b3c3b651cn%40googlegroups.com.
Hi Matthew
I tried your suggestion and sample.
I use the same large array of Mailyn with a ‘const byte’.
But it still does not work.
I send in the attachment the code and a capture with RealTerm.
You will see that with reading the sector nothing appears. I think the writing is the problem.
Writing byte for byte is going well and I removed that part code so you only see what is important.
Maybe there is a pragma problem or something else?
Regards,
Peter
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/dd7f03a9-9d77-42ea-8a9c-f08821a1fd3en%40googlegroups.com.
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).
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/dd7f03a9-9d77-42ea-8a9c-f08821a1fd3en%40googlegroups.com.
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
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/c8dca661-3ab0-4ee2-ba10-eff9b9860e58n%40googlegroups.com.
Hi Matt
I waited some time for an answer (just like you).
Today I looked myself again. I removed the resistor and all kept working.
I was not surprised because ‘byte for byte’ had worked.
I used a micro sd card holder and on the website I saw that between 3V3 and GND a 100nF was placed.
When I used my original program of ‘byte for byte’ and ‘sector buffer’ that gave the problem earlier: problem was solved with the 100nF.
I think this is the explanation for the problem instead of the resistor.
Regards,
Peter
Van: Matthew Schinkel
Verzonden: dinsdag 14 maart 2023 22:03
Aan: jallib
Onderwerp: Re: [jallib] Re: problem with filling a sector buffer
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 zet....@gmail.com 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.
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/fbde66cd-f544-4460-ab3d-280556b45638n%40googlegroups.com.
Hi Rob
You’re right.
It’s still working perfect!
Once again: look in the datasheet!
Regards,
Peter
Van: Rob CJ
Verzonden: donderdag 23 maart 2023 20:53
Aan: jal...@googlegroups.com
Onderwerp: Re: [jallib] Re: problem with filling a sector buffer
Hi Peter,
In general it is recommended to put a 100 nF capacitors close to every IC that you use for correct operation.
It might have been the cause of your issue.
Kind regards,
Rob
![]()
To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/GVXP195MB16379C278524071B79D46A69E6879%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM.