Searching \ for '[PIC:]desperate looking for 16F819 bootloader' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devices.htm?key=16F
Search entire site for: 'desperate looking for 16F819 bootloader'.

Exact match. Not showing close matches.
PICList Thread
'[PIC:]desperate looking for 16F819 bootloader'
2004\06\08@155035 by Tato

flavicon
face
I'm deaperate looking for a bootloader for 16F819.

I almost get it working modifying the Shane's Bootloader
but the problem is the 16F819 need to write 4 words at
a time.

Is there any bootloader available?

Octavio Nogueira
Tato Equipamentos Eletrônicos Ltda
(11) 5506-5335
======================================================
spam_OUTnogueiraTakeThisOuTspamtato.ind.br                  ICQ# 222558485
BASIC Step - O microcontrolador mais fácil do mercado
BASCOM - O mais poderoso compilador BASIC para ATMEL
http://www.tato.ind.br
ProPic tools - low cost PIC programmer and emulator
http://www.propic2.com             ======================================================
--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email .....listservKILLspamspam@spam@mitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@160559 by Wouter van Ooijen

face picon face
> I'm deaperate looking for a bootloader for 16F819.
>
> I almost get it working modifying the Shane's Bootloader
> but the problem is the 16F819 need to write 4 words at
> a time.

I have made one for a customer, but it uses a very peculiar protocol,
because it is meant for a string of 10's of chips, with 74HC04's as line
drivers, using a pulse width encoding so timing is not critical (uses
internal oscillator). And it is (of course) written in Jal, and it takes
1k code. If you are interested I could ask my client - he is often very
generous in contributing to the open source idea.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email listservspamKILLspammitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@172504 by Martin Klingensmith

face
flavicon
face
A bootloader is used to self-program chips?
If this is the case, if you have to use a programmer such as the wisp628
to program the bootloader, what is the point of a bootloader?

Wouter van Ooijen wrote:
{Quote hidden}

--
--
Martin Klingensmith
http://infoarchive.net/
http://nnytech.net/

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email EraseMElistservspam_OUTspamTakeThisOuTmitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@173421 by Wouter van Ooijen

face picon face
> A bootloader is used to self-program chips?
> If this is the case, if you have to use a programmer such as
> the wisp628
> to program the bootloader, what is the point of a bootloader?

The intended application is temperature control in greenhouses, with
roughly one controller per square meter. A small greenhouse could be 30
x 30 meter, so 1000 PICs. The system is under development, lots of
experiments and hence code changes. Do you volunteer to do the software
updates? And my customer has ao. a test greenhouse set up in spain, but
he lives in the Netherlands.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email listservspamspam_OUTmitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@175119 by Martin Klingensmith

face
flavicon
face
If you pay me good enough I'll do it :)
Do they all communicate data via your pulse protocol?

Wouter van Ooijen wrote:
{Quote hidden}

--
--
Martin Klingensmith
http://infoarchive.net/
http://nnytech.net/

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email KILLspamlistservKILLspamspammitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@182503 by Brent Brown

picon face
On 8 Jun 2004 at 17:25, Martin Klingensmith wrote:

> A bootloader is used to self-program chips?
> If this is the case, if you have to use a programmer such as the
> wisp628 to program the bootloader, what is the point of a bootloader?

Because once you've done that you no longer need the programmer. The
customer for example can update the firmware in the product using a serial
cable and a PC program.

--
Brent Brown, Electronic Design Solutions
16 English Street, Hamilton, New Zealand
Ph/fax: +64 7 849 0069
Mobile/txt: 025 334 069
eMail:  RemoveMEbrent.brownTakeThisOuTspamclear.net.nz

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email spamBeGonelistservspamBeGonespammitvma.mit.edu with SET PICList DIGEST in the body

2004\06\08@230948 by Byron A Jeff

face picon face
On Tue, Jun 08, 2004 at 05:25:12PM -0400, Martin Klingensmith wrote:
> A bootloader is used to self-program chips?

That's right.

> If this is the case, if you have to use a programmer such as the wisp628
> to program the bootloader, what is the point of a bootloader?

Transparancy. Wouter explains it best in his documentation for the ZPL
bootloader on the http://www.voti.nl/dwarf page.

A programmer is intrusive. A programmer has a fixed interface that you must
follow. A programmer interferes with the normal operation of the chip.

A bootloader gives the designer the freedom to choose the interface and the
level of invisibility of that interface. And all it costs is a bit of code
space.

Three quick examples:

The traditional serial bootloader uses the onboard USART to program the part.
Now programming requires little more than a serial port.

Wouter's Wloader bootloader (which to the OP I would suggest modifying) uses
only a single pin of the developers choice as the interface. So instead of
being stuck manipulating MCLR, CLK, DATA, and possibly LVP and Vdd in a full
programmer interface, there's only one I/O pin to be concerned with. and you
get the choose the pin that least impacts your design.

And the Ultimate, the aforementioned ZPL: Zero Pin Loader, which I guess for
nanowatt parts such as the 16F819 should technically be the Half Pin loader.
The interface doesn't take an I/O at all. Programming is done by wiggling
the MCLR pin to precisely reset the part in an interval pattern that represents
one and zero bits.

And you can easily dream up other interfaces like programming parts via IR
that the traditional programmer route simply doesn't present as an option.

Bootloaders free you from the programming cycle and its constraints. The cost
is negotiable though each will take up some programming memory. I almost wish
that Microchip could arrange for 512 words of program bootloader memory space
that gets invoked by a wiggle pattern of MCLR for bootloaders.

As to the last point, my Trivial programmer project is specifcally designed
as a throwaway programmer for bootloader loading. And unlike the WISP628
which requires either another programmer or a preprogrammed chip from Wouter
to build, the TLVP only requires a PC to do its job.

But bootloaders have considerable advantages. I defend the concept vigorously
because my successful projects are bootloader developed.

I've stalled on writing a ZPL for the 16F family. I do believe that I told
Wouter to hold off on it several months ago and it looks like I won't get to
it before August unfortunately.

BAJ (http://www.finitesite.com/d3jsys)
{Quote hidden}

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email listservEraseMEspam.....mitvma.mit.edu with SET PICList DIGEST in the body

2004\06\09@023835 by Wouter van Ooijen

face picon face
> Do they all communicate data via your pulse protocol?

Yes, both bootloader and application. And the units are identified by
their order, so no dip switches to set.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com hint: To leave the PICList
EraseMEpiclist-unsubscribe-requestspammitvma.mit.edu

2004\06\09@085331 by Byron A Jeff

face picon face
On Tue, Jun 08, 2004 at 04:48:57PM -0300, Tato wrote:
> I'm deaperate looking for a bootloader for 16F819.
>
> I almost get it working modifying the Shane's Bootloader
> but the problem is the 16F819 need to write 4 words at
> a time.

So let's work on this problem since you're so close. The 4 word at a time
rule only has two real implications over the 1 word at a time rule:

1) Files must start on a 4-word boundary and...
2) They must end on a 4-word boundary.

In poking around for Shane's bootloader (BTW where is it?) I came across a
page that points out these exact facts:

http://www.microchipc.com/PIC16bootload/readme.txt

The basic idea is to pad the beginning and end of the file such that points
1 and 2 above are met.

>
> Is there any bootloader available?

Actually there is: The Tiny PIC bootloader:

http://www.ac.ugal.ro/staff/ckiku/software/picbootloader.htm

It should meet all of your requirements because it works with other
multi-block programmed PICs (16F87XA for example). The one requirement of
mine that it doesn't meet is that it uses the USART, which in my estimation
is a much too valuable resource to give up to a bootloader. But at 100 bytes
and with source, I don't think you'll be complaining.

The other thing about Tiny is that the author has pointers to other PIC
bootloaders too. So it's PIC bootloader central IMHO.

There you go, two solutions that should get you running in short order.

BAJ
{Quote hidden}

--
http://www.piclist.com hint: To leave the PICList
RemoveMEpiclist-unsubscribe-requestTakeThisOuTspamspammitvma.mit.edu

2004\06\10@075946 by Antonio Sergio Sena

flavicon
face
> Actually there is: The Tiny PIC bootloader:
>
> http://www.ac.ugal.ro/staff/ckiku/software/picbootloader.htm
>
> It should meet all of your requirements because it works with other
> multi-block programmed PICs (16F87XA for example). The one requirement of
> mine that it doesn't meet is that it uses the USART, which in my
estimation
> is a much too valuable resource to give up to a bootloader. But at 100
bytes
> and with source, I don't think you'll be complaining.


Mind that at the end of Bootloading, the User program is in full control of
the PIC again.

Im using the Tiny Bootloader for a long time, in applications where i need
the USART to talk with other external devices.
At Reset is waits for the Bootloader, if not or if it ended, the USART is
fully configurable to my needs.


Regards
Antonio Sergio Sena


---------------------------------------
Antonio Sergio Sena

Primetec - Engenharia de Sistemas, Lda.
e-mail: asena -at- primetec.pt
WEB: http://www.primetec.pt
---------------------------------------







.

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2004\06\10@101201 by Carl_Schell

flavicon
face
I am new to your forum, but thought I would throw in my 2-cents.  I have
encountered similar problems with the bootloader for the 16F877A.  They
call it a "Quad Allignment" issue.  Look at Shane Tolmie's website
http://www.microchipc.com, you find the following info: reguarding a work-around
for this problem for the 16F877A.:

non-working example:
:040000008A01252824
:080008008A110A1242284A285D
:1000100056289828DF280B29142927293A2942290C
:10002000532964297529962999299C29A429AC2941
:10003000BD29C52983120313A20000308A00253090
:10004000220703188A0A2208820704308316031342
:1000503086008030870083129F010630D3

working example:
:040000008A01252824
:080008008A110A1242284A285D
:1000100056289828DF280B29142927293A2942290C
:10002000532964297529962999299C29A429AC2941
:10003000BD29C52983120313A20000308A00253090
:10004000220703188A0A2208820704308316031342
:100050008500F03086008030870083129F010630D3


The datasheet specs that:
1) you MUST write the FLASH in groups of 4 words.
2) When not writing 4 WORDS you MUST READ the non-written words so
you don't overwrite them
I assume that the bootloader sins against one of these rules,
hopefully the authors have an idea were it can be.

Workaround: very simple, make sure you always have a multiple of 4
opcodes in the hex file and it works! Simply add some nops somewhere
to fill it up. With an editor you can easily see how many opcodes you
have to add to have a nice alignment in the hex file at the end.

You might try this on your chip and see if it works for you.  Best of
luck.

Carl Schell
http://www.schellelectronics.com
Novi, Michigan  USA

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2004\06\10@102824 by Byron A Jeff

face picon face
On Thu, Jun 10, 2004 at 11:48:17AM +0100, Antonio Sergio Sena wrote:
{Quote hidden}

But the question is how do you wire it so that you can bootload and use it in
the application? For example if your PIC is interacting with an external modem
then the UART needs to be connected to the modem and to the PC for bootloading.
Do you use a switch?

Bootloaders that use unused resources for the loading port facilitates
development because both the loader and the UART can be connected at the same
time without interference. That's why I favor Wouter's loaders which picks
out of the way spots for the loader port. Even better, the loader port
(at least for Wloader) can double as a serial debug port independant of the
application.

That being said, I think I'll finally give Tiny a spin with a 16F88 for the
next couple of small projects I want to get done. Instead of a MAX232 I plan
to build a ultra cheap serial interface using a 74HCT14 hex inverter and a
resistor zener to limit voltage/current.

BAJ

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2004\06\11@051145 by Antonio Sergio Sena

flavicon
face
> > Im using the Tiny Bootloader for a long time, in applications where i
need
> > the USART to talk with other external devices.
> > At Reset is waits for the Bootloader, if not or if it ended, the USART
is
> > fully configurable to my needs.

> But the question is how do you wire it so that you can bootload and use it
in
> the application? For example if your PIC is interacting with an external
modem
> then the UART needs to be connected to the modem and to the PC for
bootloading.
> Do you use a switch?


No, in most cases i just switch plugs. It may be time consuming, but so far
hadnt have any problems.
Confess that i never had 1000 PICs to update at the same time, like Wouter
has to do.

When using the USART for external equipment, for most of the tests i just
use a terminal software to input data and get feedback.




> Bootloaders that use unused resources for the loading port facilitates
> development because both the loader and the UART can be connected at the
same
> time without interference. That's why I favor Wouter's loaders which picks
> out of the way spots for the loader port. Even better, the loader port
> (at least for Wloader) can double as a serial debug port independant of
the
> application.

True! very true!  I may give it a try one i finish what im doing now.

I particularly like the Debugging feature of it, its quite helpful. Specialy
to avoid the ICE.



Antonio Sergio Sena

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics

2004\06\11@100257 by Byron A Jeff

face picon face
On Fri, Jun 11, 2004 at 10:10:15AM +0100, Antonio Sergio Sena wrote:
> > > Im using the Tiny Bootloader for a long time, in applications where i
> need
> > > the USART to talk with other external devices.
> > > At Reset is waits for the Bootloader, if not or if it ended, the USART
> is
> > > fully configurable to my needs.
>
> > But the question is how do you wire it so that you can bootload and use it
> in
> > the application? For example if your PIC is interacting with an external
> modem
> > then the UART needs to be connected to the modem and to the PC for
> bootloading.
> > Do you use a switch?
>
>
> No, in most cases i just switch plugs. It may be time consuming, but so far
> hadnt have any problems.

I find that when I'm developing, the less hardware manipulations I have to do,
the more progress I make on the software side. So I work to get the hardware
configured, then I want to leave it alone while pulling the software together.

Just a personal preference I guess. Too many years programming desktop and
server hardware.

> Confess that i never had 1000 PICs to update at the same time, like Wouter
> has to do.

Then you'd be looking at something different of course.

>
> When using the USART for external equipment, for most of the tests i just
> use a terminal software to input data and get feedback.

But that requires bit banging a port right? So you actually do a double
cable switch then where for programming you plug the PIC USART into the PC
to run the bootloader, then to run the application you plug the USART into
the external equipment, and the PC serial port into a bit banged port on the
PIC? Just wondering.


{Quote hidden}

Well ICE definitely has its advantages. There's no other way to interact with
a debugging system running at full speed.

Be aware that your application has to implement the bit banged debugging port
via the Wloader interface pin. I simply set up timer2 with the bit rate
I'm interested in since it can be configured to raise a flag on a particular
count. You can see my dgbout routine near the bottom of my sunrise/sunset
outside light controller code here:

http://www.finitesite.com/d3jsys/clock.asm

It's barely 20 lines of code for the application. I never bothered to build
an input routine, though it wouldn't be too hard to do.

But in the scenario where you're cable switching above, in my setup the USART
is permanently connected to the application, and the Wloader port is
permanently connected to the PC serial port (during the development cycle of
course. Once the project is finished, the PC is completely disconnected.)

And it gets even better. Woj Zabolotny, who coded up an excellent Linux wloader
WISP protocol clone called linwload, actually coded up a mini terminal emulator
into the loader. So it's possible to load a new hex file via the bootloader,
fire up the new application, and then go into debugging mode in a single
command: linwload PROG newfile.hex GO TERM

As you can see this makes for an extremely efficient setup with no cable
switching and no applications switching either, with application debugging
available.

And that's why I'm so enamored with bootloaders.

Writing this discussion I realize that even when I do get around to
implementing ZPL for the 16F series that I'll still want to implement a
single pin bit banged serial debugging interface that shares the PC serial
port with the ZPL interface for the reasons outlined above.

An aborted thought: I really wish that Microchip would implement what someone
else pointed out a couple of days ago: since the MCLR function can be
turned off in nanowatt parts, why not add an NFET pulldown making MCLR an
open drain output. It shouldn't be too hard to do, right? Then while ZPL would
turn into three/quarterPL ;-) You can get the debugging interface only using
the RA5/MCLR pin. But it's wrong thinking because you can't have both the I/O
function and the MCLR function at the same time. So forget it.

Back to the point, I'll probably wire RA0 as a bit banged one pin serial
interface back the PC for the ZPL16F. Then you can get the same benefits as
outlined with linwload above.

BAJ
>
>
>
> Antonio Sergio Sena
>
> --
> http://www.piclist.com hint: The list server can filter out subtopics
> (like ads or off topics) for you. See http://www.piclist.com/#topics

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics

2004\06\13@142754 by Antonio Sergio Sena

flavicon
face
> > No, in most cases i just switch plugs. It may be time consuming, but so
far
> > hadnt have any problems.
>
> I find that when I'm developing, the less hardware manipulations I have to
do,
> the more progress I make on the software side. So I work to get the
hardware
> configured, then I want to leave it alone while pulling the software
together.
>
> Just a personal preference I guess. Too many years programming desktop and
> server hardware.
>


Imagine when you have several devices, each with a serial cable... And you
swap the wrong one! you have at least 1h to discover why there is no data
arriving to the PC :)

I do understand you very well! thats why im planning to try Wouter's loader
asa i can.





> > When using the USART for external equipment, for most of the tests i
just
> > use a terminal software to input data and get feedback.
>
> But that requires bit banging a port right? So you actually do a double
> cable switch then where for programming you plug the PIC USART into the PC
> to run the bootloader, then to run the application you plug the USART into
> the external equipment, and the PC serial port into a bit banged port on
the
> PIC? Just wondering.


Not really. Until now i havent had such a demanding project that i would
need to debug at the same time im using the external equipment. (just wasted
more time with this thoughtless behaviour)

Ive been out of PIC business for almost 3 years, and already this year i
came back and discovered the new 18F parts :)









>
>
> >
> > > Bootloaders that use unused resources for the loading port facilitates
> > > development because both the loader and the UART can be connected at
the
> > same
> > > time without interference. That's why I favor Wouter's loaders which
picks
> > > out of the way spots for the loader port. Even better, the loader port
> > > (at least for Wloader) can double as a serial debug port independant
of
> > the
> > > application.
> >
> > True! very true!  I may give it a try one i finish what im doing now.
> >
> > I particularly like the Debugging feature of it, its quite helpful.
Specialy
> > to avoid the ICE.
>
> Well ICE definitely has its advantages. There's no other way to interact
with
> a debugging system running at full speed.
>
> Be aware that your application has to implement the bit banged debugging
port
> via the Wloader interface pin. I simply set up timer2 with the bit rate
> I'm interested in since it can be configured to raise a flag on a
particular
> count. You can see my dgbout routine near the bottom of my sunrise/sunset
> outside light controller code here:
>
> http://www.finitesite.com/d3jsys/clock.asm
>
> It's barely 20 lines of code for the application. I never bothered to
build
> an input routine, though it wouldn't be too hard to do.
>
> But in the scenario where you're cable switching above, in my setup the
USART
> is permanently connected to the application, and the Wloader port is
> permanently connected to the PC serial port (during the development cycle
of
> course. Once the project is finished, the PC is completely disconnected.)
>
> And it gets even better. Woj Zabolotny, who coded up an excellent Linux
wloader
> WISP protocol clone called linwload, actually coded up a mini terminal
emulator
> into the loader. So it's possible to load a new hex file via the
bootloader,
{Quote hidden}

someone
> else pointed out a couple of days ago: since the MCLR function can be
> turned off in nanowatt parts, why not add an NFET pulldown making MCLR an
> open drain output. It shouldn't be too hard to do, right? Then while ZPL
would
> turn into three/quarterPL ;-) You can get the debugging interface only
using
> the RA5/MCLR pin. But it's wrong thinking because you can't have both the
I/O
> function and the MCLR function at the same time. So forget it.
>
> Back to the point, I'll probably wire RA0 as a bit banged one pin serial
> interface back the PC for the ZPL16F. Then you can get the same benefits
as
> outlined with linwload above.
>
> BAJ
> >
> >
>

--
http://www.piclist.com#nomail Going offline? Don't AutoReply us!
email EraseMElistservspamspamspamBeGonemitvma.mit.edu with SET PICList DIGEST in the body

More... (looser matching)
- Last day of these posts
- In 2004 , 2005 only
- Today
- New search...