Thank you very much for registration of firmware PIC10F series.
Assign a device number of 10 numbered PIC10F it is very good idea.
I am grateful to the great work.
There is a thing I would like to inquire.
Is shown in the attached file, but I am considering a bootloader that can be used as PICKIT.
It is the specifications that energizing the PIC by using only the power of the serial port.
In this circuit, the device check is to operate without problems, writing will stop in the middle because of the short supply of power, it will fail when writing.
I think between the CLOSE, this problem will be solved when a high level at all times the RTS and DTR lines from the OPEN COM port.
(1)During the CLOSE, the Option to (High) ON always DTR and RTS and from COM OPEN.
(2)When not using the DTR reset, changes to specifications that (High) ON constantly and DTR and RTS. (TERATERM has become the specification (2).)
Could you please examine the specifications of any of the above.
It's a good idea!
Can you try the attached file and tell me if everything works as expected (new options are in the "debug" tab)? Could you try if powered only with DTR it's enough?
But, in your schematic I don't think that it's needful to connect DTR to DSR, and RTS to CTS. And may be, you can change your 5V6 zener for a 5V1?
Current consumption is large 74HC00, it did not work well.
@ Test was used for the circuit shown in Test_circuit.BMP.
@ Bootloader: tinybld10F322_8MHz_int_9600_rx_03_tx_02.HEX(100words)
@ Use DTR and RTS.(setting.jpg)
@ Test program: test program.asm
Content of the test.
Check device in written only bootloader. --> OK
Writing in the state written only bootloader. --> OK?
Test of writing content. --> OK (Test results.jpg)
Device check in the state that wrote the program. --> NG
Extra code (0x018A) is inserted to the address of 0x019C why.
Rewriting to 0x3FFF 4 bytes [0x019C, 0x019F] of using the PICKIT2,
It will be able to check device and rewrite programs.
On any code rewritten, or have you hit something ?
Is it a problem of turn-on timing ?
Thanks for your very detailled bug report. It's a pleasure to work with you!
1) Since the last version (0.6.3) I haven't modified the source code of the "B" family. So this version should works as the previous one.
2) Did you try to program with an external power supply? Have you the same result?
3) The 4 bytes [0x019C, 0x019F] need to be there. It's the goto to your application's firmware when exiting from the bootloader... But they could be false!?!
4) did you try to launch your application when you had erased the 4 bytes [0x019C, 0x019F]? I think it shouldn't work because it's not called by the bootloader anymore.
5) it seems that the first goto in the 4 first words don't go to the firmware. So I've modified this part in the new software attached to this post:
6) If you want to try to power the PIC with DTR only, I suppose you should divide the 1k resistor (the one connected to DTR) by 2 (put something like 470ohms) because the zener can only regulate to:
Imax = (Vrs232 - 5.6)/(Rdtr+100)
for example if your Vrs232 = 12V, with your Rdtr = 1k, Imax = 5.8mA
whereas when RTS and DTR are utilised:
Imax = (Vrs232 - 5.6)/(Rdtr//Rrts+100)
then Imax = 10.6mA
I was changed to 470 ohm resistance value.(Bootloader3.BMP)
I investigated the timing of the signal,
It was found that the timing of the signal generation
is different in the case of writing programs and only bootloader.
only bootloader -> image 30,31,32
writing programs -> image 40,41,42
writing programs + My Form1.cs -> image 50,51,52
Device check (after writing programs) can now be even change the source of V6.3.1,
but now I can not write programs this time. (log.txt)
I made some tests on my side with an old PIC16F874 (which is very power consuming).
I saw that my RS232 can't provide a lots of power (may be 6mA max).
I've tried your schematic but reading from PIC was only 0x00 (I think it's because my PC isn't compatible with 0V on RX pin, it must be negative to get a logical '1').
tinybld198 has supported RTS and DTR. (Image1.jpg)
It operated properly also,
written in normal place to use the (132 words /32 words version) old firmware and (470 ohm) circuit
in front of me, writing in tinybld198, was a re-write.(Image2.jpg)
I attach firmware and log files, the test program.
Edition of 100 words was working in a stable compared to the previous edition.
Destabilizing factor that remains is that it is operating in the state of the analog port, but this is also ICSP. (May need to be specified in the source file?)
I also think better of only 100 words is good to prevent ambiguity.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Dan,
It's OK, I'll put only the 100 words version of your firmware in the next release of TinyBootloader+.
Don't worry, I'll add in the ".asm" file some informations about RX (that can only be RA3) and TX (that can only be RA0, RA1 or RA2).
Best regards,
Edorul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear Edorul.
Thank you very much for registration of firmware PIC10F series.
Assign a device number of 10 numbered PIC10F it is very good idea.
I am grateful to the great work.
There is a thing I would like to inquire.
Is shown in the attached file, but I am considering a bootloader that can be used as PICKIT.
It is the specifications that energizing the PIC by using only the power of the serial port.
In this circuit, the device check is to operate without problems, writing will stop in the middle because of the short supply of power, it will fail when writing.
I think between the CLOSE, this problem will be solved when a high level at all times the RTS and DTR lines from the OPEN COM port.
(1)During the CLOSE, the Option to (High) ON always DTR and RTS and from COM OPEN.
(2)When not using the DTR reset, changes to specifications that (High) ON constantly and DTR and RTS. (TERATERM has become the specification (2).)
Could you please examine the specifications of any of the above.
I'm sorry to say selfish.
Last edit: Dan 2013-04-24
Hello Dan,
It's a good idea!
Can you try the attached file and tell me if everything works as expected (new options are in the "debug" tab)? Could you try if powered only with DTR it's enough?
But, in your schematic I don't think that it's needful to connect DTR to DSR, and RTS to CTS. And may be, you can change your 5V6 zener for a 5V1?
Best regards,
Edorul
Last edit: edorul 2013-04-25
Dear Edorul.
Thank you very much support. I appreciate.
I have tried programs offer.
Current consumption is large 74HC00, it did not work well.
@ Test was used for the circuit shown in Test_circuit.BMP.
@ Bootloader: tinybld10F322_8MHz_int_9600_rx_03_tx_02.HEX(100words)
@ Use DTR and RTS.(setting.jpg)
@ Test program: test program.asm
Content of the test.
Check device in written only bootloader. --> OK
Writing in the state written only bootloader. --> OK?
Test of writing content. --> OK (Test results.jpg)
Device check in the state that wrote the program. --> NG
Extra code (0x018A) is inserted to the address of 0x019C why.
Rewriting to 0x3FFF 4 bytes [0x019C, 0x019F] of using the PICKIT2,
It will be able to check device and rewrite programs.
On any code rewritten, or have you hit something ?
Is it a problem of turn-on timing ?
Last edit: Dan 2013-04-26
Hello Dan,
Thanks for your very detailled bug report. It's a pleasure to work with you!
1) Since the last version (0.6.3) I haven't modified the source code of the "B" family. So this version should works as the previous one.
2) Did you try to program with an external power supply? Have you the same result?
3) The 4 bytes [0x019C, 0x019F] need to be there. It's the goto to your application's firmware when exiting from the bootloader... But they could be false!?!
4) did you try to launch your application when you had erased the 4 bytes [0x019C, 0x019F]? I think it shouldn't work because it's not called by the bootloader anymore.
5) it seems that the first goto in the 4 first words don't go to the firmware. So I've modified this part in the new software attached to this post:
6) If you want to try to power the PIC with DTR only, I suppose you should divide the 1k resistor (the one connected to DTR) by 2 (put something like 470ohms) because the zener can only regulate to:
whereas when RTS and DTR are utilised:
Best regards,
Edorul
Last edit: edorul 2013-04-26
Dear Edorul.
Thank you very much for advice.
I was changed to 470 ohm resistance value.(Bootloader3.BMP)
I investigated the timing of the signal,
It was found that the timing of the signal generation
is different in the case of writing programs and only bootloader.
only bootloader -> image 30,31,32
writing programs -> image 40,41,42
writing programs + My Form1.cs -> image 50,51,52
Device check (after writing programs) can now be even change the source of V6.3.1,
but now I can not write programs this time. (log.txt)
My Changes in Form1.cs
//aaaaaaaaaaaaaaaaaaaaa
//aaaaaaaaaaaaaaaaaaaaa
I try to challenge a little more.
Reports When Reports When I went well.
Hello Dan,
I made some tests on my side with an old PIC16F874 (which is very power consuming).
I saw that my RS232 can't provide a lots of power (may be 6mA max).
I've tried your schematic but reading from PIC was only 0x00 (I think it's because my PC isn't compatible with 0V on RX pin, it must be negative to get a logical '1').
I achieved to make it work with this schematic:

http://tinypicbootload.sourceforge.net/AutoPowered_RS232.jpg
So I don't believe that it is a timing problem but more a power and/or PC software problem.
If I were you I'll suppress your LED (you'll gain some mA) and change 470ohm resistors with 390 (or a little less).
Best regards,
Edorul
Last edit: edorul 2013-04-27
Here are the source codes of "Tiny PIC Bootloader +" v0.6.4
So, you can make some modifications, if you want.
Dear Edorul.
Good News.
I made a significant discovery.
tinybld198 has supported RTS and DTR. (Image1.jpg)
It operated properly also,
written in normal place to use the (132 words /32 words version) old firmware and (470 ohm) circuit
in front of me, writing in tinybld198, was a re-write.(Image2.jpg)
I attach firmware and log files, the test program.
AutoPowered_RS232 is possible.
Last edit: Dan 2013-04-29
Hello Dan,
These are very good news!
So, it seems the problem comes from "Tiny PIC Bootloader +" with PIC10F322, as auto powering works fine with PIC16F874.
I hope I'll receive my PIC10F322 shortly to make some tests.
But, have you tried to program your PIC10F322 with the last "Tiny PIC Bootloader +" and an external power? Does it work fine?
Best regards,
Edorul
Last edit: edorul 2013-04-28
Dear Edorul.
I solved problem.
I will work correctly in TinyPicBootloader +. Exe(6.4) the Auto_powerd.
My SoftSerialRoutine (100words version) does not seem to fit in Auto_powerd.
I'm sorry for the inconvenience.
Thank you very much I have you advice in various ways.
Attach the firmware I have modified.
I made sure that even works Auto_powerd.
Thank you so much again.
Last edit: Dan 2013-05-01
Hello Dan,
Thanks a lot for the feedback! And for the modified firmware!!! I will replace it in the "Tiny PIC Bootloader +" archive file.
If you've got new ideas to improve "Tiny PIC Bootloader +", feel free to ask :-)
Best regards,
Edorul
Hello Dan,
Today, I've tried your 100 words firmware and it works perfectly :-) Thanks !
So, the 132 words firmware isn't useful anymore ?
Best regards,
Edorul
Dear Edorul.
Thank you very much makeup.
Edition of 100 words was working in a stable compared to the previous edition.
Destabilizing factor that remains is that it is operating in the state of the analog port, but this is also ICSP. (May need to be specified in the source file?)
I also think better of only 100 words is good to prevent ambiguity.
Hello Dan,
It's OK, I'll put only the 100 words version of your firmware in the next release of TinyBootloader+.
Don't worry, I'll add in the ".asm" file some informations about RX (that can only be RA3) and TX (that can only be RA0, RA1 or RA2).
Best regards,
Edorul