Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Find free programmer for Ds87c550 & Ds89c450

Status
Not open for further replies.

tocal09

Member level 3
Joined
Jan 12, 2005
Messages
59
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
495
ds89c450 programmer

I'm finding a free programmer for Dallas microcontroller Ds87c550 & Ds89c450(schematic-PCB+software) .Can u help me.
 

ds89c450 serial loader

This one covers most of 8051-family including ds87c550, ...
**broken link removed**
 

ds89c450 programmer schematics

For DS89C450, its programmer is compatible with DS89C420, DS89C series programming had been discussed in this Board's section many times, it is best to do a quick search at this section.

As of now, I had just uploaded the PCB layout of programming board, maybe just wait a little and I'll upload the schematic soon.

Just do an observation of the layout and read the thread and you'll get what parts are needed.

Useful links:
 

programmer ds89c450

Hi!

Go to:

**broken link removed**

It has only one slight problem, wich is being written in portuguese only...
But you still can have the schematics of the ICSP and other interface boards.
If you thnink this may interest you, I may help you understand what the "strange" language in the website is saying... :)

Regards,

Helder Silva
 

ds89c450 program

Hi,
I've developped a module with the DS89C450 on USB port. Programming is done @ max speed of 170kb/s via USB with the integrated bootloader.
Here is my website, choose your langage in the left and the project in the left too:
**broken link removed**
I've developped some codes also for In Application Programming. I'll put them soon in the project forum.
 

programmer for ds89c450

monnoliv said:
Hi,
I've developped a module with the DS89C450 on USB port. Programming is done @ max speed of 170kb/s via USB with the integrated bootloader.
Here is my website, choose your langage in the left and the project in the left too:
h**p://www.soudez.be
I've developped some codes also for In Application Programming. I'll put them soon in the project forum.

What is the need to interface it via USB? It already has a bootloader for serial port? :)
 

ds89c450 external baud rate

glenjoy said:
What is the need to interface it via USB? It already has a bootloader for serial port? :)

Maybe for the days when serial port will became legacy or obsolete, call it how you like. But when that time will come I'm expected to see a USB interface for programming.
Until then let's play with USB -> Serial convertor.
Ha, Ha, Ha however you can't program faster than DS89C450 can hold the transmission rate.

Oh almost I forgot, maybe you would like to program more DS89C450 in the same time, all of them hanging on the USB bus.

Just a joke folks !
 

ds89c450 microcontroller isp

silvio said:
glenjoy said:
What is the need to interface it via USB? It already has a bootloader for serial port? :)

Maybe for the days when serial port will became legacy or obsolete, call it how you like. But when that time will come I'm expected to see a USB interface for programming.
Until then let's play with USB -> Serial convertor.
Ha, Ha, Ha however you can't program faster than DS89C450 can hold the transmission rate.

Oh almost I forgot, maybe you would like to program more DS89C450 in the same time, all of them hanging on the USB bus.

Just a joke folks !

Yeah, just can't see the logic behind making a USB interface for a microcontroller which supports programming via Hyperterminal because of tis built-in bootloader.

Has the USB programmer added more capabilities for the DS series? Better yet, he created a USB programmer for the Maxim 8051 with built-in ADC or with the MAXQ series, like to try them on breafboards hehehhe. :)
 

ds89c450 usb

Yeah, just can't see the logic behind making a USB interface for a microcontroller which supports programming via Hyperterminal because of tis built-in bootloader.
1. No need for a switch to enable the bootloader mode.
2. Fast (no every COM PORT can sustain 170kbaud/s)
3. Self-powered.
4. Embedded software upgradable on the fly (patch like).
 

ds89c450 free samples

Dear monnoliv,

I appreciate smart guys like you, but come on man !
Most important, don't get me wrong. I mean no offence !

Do you understand the purpose of that switch ? Hope you're talking about AC125 gates.
If you don't, thought I'm confident you did, let me explain.
It's there to allow using an external flash driven by PSEN since it's an output pin and during programming act as input.
Obvious, you don't want to get in conflict after programming.
Why would use an external flash since the micro provides 64k internal ?
I don't know, but maybe you use an 89C420 or 89C430. Probably the manufacturer thinks, too.

By connecting hardware the ALE toward +5v you've killed the XRAM access.
I know you mentioned that your board will provide only 1kb XRAM.
But would be a serious limitation for peoples eager for much RAM ?


You said
no need for a switch to enable the bootloader !

HA HA HA ! But your outputs DTR# RTS# of U2 and Q2 what are they doing ?
And why wouldn't use directly the ones provided by PC COM serial port ?

2. Fast (no every COM PORT can sustain 170kbaud/s)

I believe you read about people's complains in the forum for maximum baud rate used by serial communication during programming.
Most of them succeeds to program only at lower baud rate, much lower than ones rated in data sheet.
I'm confident you've been awared of the maximum baud rate.
If your reload value using timer 1 is 0xFF then indeed your baud rate is 170K.
But that's only mathematical because in real life in order to mantain a reliable communication channel you must attempt to match the loader baud rate and PC COM port baud rate within 3%.

And what's that speed for programming. We are not at race. Few seconds more or less it doesn't matter at all.
Nevertheless, if your FTDI chip it's like a border, on the left side you'll get the high USB speed, whereas on the right side you get only the microcontroller serial port speed.
Does make sens ?
The FTDI chip was developed only as a request to provide an easy way to drive an external device (which is manufactured with serial port) from a PC which haven't available a serial port.
Not for emphasize the power of your board, being able to sustain 170kbaud for programming.

Can you tell us what's the real serial baud rate for programming ? ("on the right side border of FTDI chip")

3. Self-powered.

Well, that's funny !
The main purpose of ISP it's what the name said. In System Programming.
It's supposed that the microcontroller is already fitted in a board with his own power supply.
And the only thing that you want is to change the flash contents.
After that just gently remove your communication cable and run your program.

Why hanging on USB bus like a leech sucking power when running your program ?
Just for test ? But you can test & upgrade in your board !

4.Embedded software upgradable on the fly (fix like).

Well, do you know what I'm calling really on the fly ?
The IAP features. YES, InApplicationProgramming.
It's a ordinary term in microcontroller area.
And that's really embedded.


I'm not a rude guy but I'm expected another kind of advertising support from smart guy like you.
Or another behavior when you felt hinted by wolfs.
You know what reminds me your 4 sentences ?
Exactly what manufacturers claims their microcontroller is doing.
You can read big advertising all over the places. Once you're IN, well you felt a little bit cheated.
And you haven't been awared on input.
Do you know what was the 89C4XX speed mentioned before first 89C4XX was released ?
If you don't, please allow me : 50Mhz.
Why did they retrain to 33Mhz ? Because the harware didn't helped.
Remember, it's one clock / machine cycle (fetch + execution).
During that 1 clock, every internal action (which takes 12 clocks in genuine 8051 series) is split in small amounts. If something it's not in synch, you're lost.
Nevertheless that not all instruction are executes in one clock cycle.

But since you do your job, that don't count. Just like in a bad movie. You're happy that at least feeds you stomach with some popcorns.

Regards,
silvio
 

c program example for ds89c450

monnoliv said:
Yeah, just can't see the logic behind making a USB interface for a microcontroller which supports programming via Hyperterminal because of tis built-in bootloader.
1. No need for a switch to enable the bootloader mode.
2. Fast (no every COM PORT can sustain 170kbaud/s)
3. Self-powered.
4. Embedded software upgradable on the fly (fix like).

Check the programmer I made, does most of the jobs you've said above with less cost, you know, that is what is design for, to do a well done job, in lesser cost.

Cannot see the logic also why put a self powered micro on my system, does not want to burn my PC's USB because it cannot anymore handle its rated load.

As silvio said, job well done man but on the wrong micro. There is PDIP available for DS89 series, what is the use of using a smaller package, a higher cost and a PCB resized to a PDIP just like a basic stamp.
 

ds89c450 assembler download

Do you understand the purpose of that switch ? Hope you're talking about AC125 gates.
If you don't, thought I'm confident you did, let me explain.
It's there to allow using an external flash driven by PSEN since it's an output pin and during programming act as input.
Obvious, you don't want to get in conflict after programming.
Why would use an external flash since the micro provides 64k internal ?
I don't know, but maybe you use an 89C420 or 89C430. Probably the manufacturer thinks, too.
What are you talking about ??? Did you see the schematics ?

You said
no need for a switch to enable the bootloader !

HA HA HA ! But your outputs DTR# RTS# of U2 and Q2 what are they doing ?
And why wouldn't use directly the ones provided by PC COM serial port ?
Of course I'm talking about physical switches (and with serial port you can have some problem using a laptop).

But that's only mathematical because in real life in order to mantain a reliable communication channel you must attempt to match the loader baud rate and PC COM port baud rate within 3%.
What are you talking about ? I'm using the FT232BM in custom baudrate, I'm not using COM port.

And what's that speed for programming. We are not at race. Few seconds more or less it doesn't matter at all.
Nevertheless, if your FTDI chip it's like a border, on the left side you'll get the high USB speed, whereas on the right side you get only the microcontroller serial port speed.
Does make sens ?
Of course that makes sense. If you don't understand, continue with your 19.2kb.

Can you tell us what's the real serial baud rate for programming ? ("on the right side border of FTDI chip")
You've already made the calculation. As you're not confident with the module, I don't have to give you the custom divisor.

Well, that's funny !
The main purpose of ISP it's what the name said. In System Programming.
It's supposed that the microcontroller is already fitted in a board with his own power supply.
And the only thing that you want is to change the flash contents.
After that just gently remove your communication cable and run your program.

Why hanging on USB bus like a leech sucking power when running your program ?
Just for test ? But you can test & upgrade in your board !
That's not really funny. You're talking about ISP and pluging a cable from the PC. Then from what connector ????
Using USB is fast, easy and does not require any external power supply to reprogram the FLASH.

Well, do you know what I'm calling really on the fly ?
The IAP features. YES, InApplicationProgramming.
It's a ordinary term in microcontroller area.
And that's really embedded.
It's a pity to read such things: Do you know what UPGRADING means ??? (and NOT with a ISP cable for the end user)

You know what reminds me your 4 sentences ?
The truth, that's it. If you're offended...

Do you know what was the 89C4XX speed mentioned before first 89C4XX was released ?
If you don't, please allow me : 50Mhz.
Why did they retrain to 33Mhz ? Because the harware didn't helped.
Remember, it's one clock / machine cycle (fetch + execution).
During that 1 clock, every internal action (which takes 12 clocks in genuine 8051 series) is split in small amounts. If something it's not in synch, you're lost.
Nevertheless that not all instruction are executes in one clock cycle.
And then ? What's the matter with the chip ?

Cannot see the logic also why put a self powered micro on my system, does not want to burn my PC's USB because it cannot anymore handle its rated load.
??? The module can be self powered and/or externally powered.

As silvio said, job well done man but on the wrong micro.
No, the micro is the one I selected among others thanks to the bootloader, IAP, 64KFLASH, 33MHz speed.

There is PDIP available for DS89 series, what is the use of using a smaller package, a higher cost and a PCB resized to a PDIP just like a basic stamp.
Because the module (+cable) is the only hardware you need to do 8051 development. It's easy and fast as I wrote. Buy a PDIP40 DS89C4XX and you've nothing (but the uP) in the same package.

Added after 8 minutes:

By connecting hardware the ALE toward +5v you've killed the XRAM access.
I know you mentioned that your board will provide only 1kb XRAM.
But would be a serious limitation for peoples eager for much RAM ?
It's a choice. If you need XRAM choose another topology.
 

ds89c450 sdcc

What are you talking about ??? Did you see the schematics ?

Sure I did ! I'm not stupid ! But either I had not explained very well or you really didn't saw the genuine programmer schematics proposed by manufacturer in data sheet.
Simply mentioned AC125 gates must leads you to ideea that he is the switch I'm talking about.
If you've seen a dumb (call it cheaper) implementation where those gates were replaced by DIP switches, it's not my fault. But yours because you can't understand the difference.

**broken link removed**

The ROM loader mode is invoked by simultaneously applying a logic 1 to the RST pin, a logic 0 to the EA pin, and driving the PSEN pin to a logic 0 level.
If you look closer at the picture above, you can see that when DTR line of com port goes high (+12v) then gates are enabled and condition for starting bootloader are met.
If power were to cycle while the required input stimuli were present (If those gates are replaced by hardware links through DIP physical switches), the loader would be invoked on power-up.

Concerning your circuit diagram **broken link removed**

RTS# line from FT232BM is in charge with driven PSEN to logic 0 level.
DTR# line goes to logic 0 level and through Q2 transistor the RST pin is driven to logic 1 level.
EA/ pin is forced hardware to logic 1 level.

So what are the difference ? You replaced a AC125 or physical switches with a FT232BM.
What you gain ? A faster communication during upgrade ? You got to be kidding !

When a lot of peoples complains about slower baud rates during programming and even when manufacturer admit that a reliable programming must be done at lower baud rates, you come and say that's fake !

If you don't understand, continue with your 19.2kb.

Who said that I can't program at higher baud rate ?
If you didn't succeed to cross the border of 19.2kb, that's your problem !

As you're not confident with the module, I don't have to give you the custom divisor.

I said like Glenjoy that your work is well done. But I don't see any secret concerning custom divisor.
I'm not going to use your idea, and it's not secret that the maximum baud rate for programming is 170k (not in practice).

So if you're going to tell me you got 115k, that don't warm me up.
If your choise is to fill the FTD232BM TX buffer of 128 bytes very quickly according to the USB Bulk speed transfer as the best choice for data transfer and then waits to empty the TX buffer obvious slower than feeding due the max. 170k for DS89C450, well that's doesn't seems a good solution.
It's exactly the same thing as you drive fast with your Ferary car from your home to the highway and then get into a traffic jam.
It worths running fast until highway ?
BTW do you have a special monitor program in order to see what's scheduling latency in USB bus ?
Otherwise, how can be so sure that DS89C450 is driven with the desired baud rate during programming ?
Or you just start with 170k baud rate sending <CR> character (0Dh) and then retrain down to a baud rate that can be detected by the autobaud routine ?
Have you count how long it takes to program 64k at 19200 ? How about 170k ? (which I have serious doubts has been achieved, nevertheless that don't match 3% mentioned)

Why do you think that with this value you're not being able to use the application provided freeware by manufacturer ?

Just because some laptops has some problems on serial port ?

Come on man !
I understand you want to proove your skills but not with these arguments !
If I'll ever have problems with laptops lacking the serial port then I would buy an ordinary USB -> RS232 convertor found in any PC magazine. Only if I feel the need. The loader program in PC able to comunicate with DS89C450 through USB convertor ? That wouldn't be a problem.

That's not really funny. You're talking about ISP and pluging a cable from the PC. Then from what connector ????
Using USB is fast, easy and does not require any external power supply to reprogram the FLASH

Please allow me to spell what ISP means : In System Programming.
His purpose ? To avoid removing the microcontroller from the board, and programming into a so called parallel programmer and then fitting back into board.
Thus all you want to do is fitting a three wires cable coming from serial port and using the existent power supply from your board.
Why do you need additional one like specific parallel programmer since the microcontroller has already one ?
Just because FT232BM provides PWREN# pin and must be used if it's there ?
The ISP was not created for the microcontroller sitting in a newbie's breadboard without power supply.
If your board was created for such kind of experiments, then it's yout choise !
But don't defeat the ISP purpose !

It's a pity to read such things: Do you know what UPGRADING means ??? (and NOT with a ISP cable for the end user)

I thought you have come with a solution to the indeterminated scratchpad memory(00h - 7Fh) used by the ROM loader,
and you are coming with the idea that I don't know what UPGRADING means ?

A ISP cable for end user ? That's a joke boy ! Four wires from PC COM port to your target board ?
How about ones with JTAG interface ?

No, the micro is the one I selected among others thanks to the bootloader, IAP, 64KFLASH, 33MHz speed.

DS89C450 support IAP for only the upper bank of the on-chip programming memory (32k) since the lower bank (32k) contains system hardware-dependent codes that are crucial to system operation and should not be altered during in-application programming that's not a really IAP, even if you can change individual bytes in the upper block. If you call this UPGRADE, maybe could be because you want to upgrade only small amounts of code and not all 64k program. But I can call it full IAP upgrade.

I didn't felt offended. Not at all. We are here to share information, knowledges.
Nobody hasn't born with these in mind. THESE HAS BEEN UPGRADED ! AND YOU HAVE TO GUESS WHERE THE CABLE IS !
:D

Because the module (+cable) is the only hardware you need to do 8051 development. It's easy and fast as I wrote. Buy a PDIP40 DS89C4XX and you've nothing (but the uP) in the same package.

You've nothing !
I believe that a lot of people using this chip will feel offended !

It's a choice. If you need XRAM choose another topology.

Did you ever tried fitting a fast SRAM with <10ns tACC in order to get advantage of full 64k XRAM and run the DS89C450 in PAGE MODE 1 EXTERNAL TIMING—PAGES 1:0 = 00b and MD2:MD0 = 000?
When the stretch value is cleared to 000b, there is no stretch on external data memory access, and a MOVX instruction is completed in two basic memory cycles
And you give it up because didn't succeed ?
That's a chalenge. Wouldn't want to give it a try ? But released ALE from hardware +5v.
 

89c450 programmer

monnoliv said:
Do you understand the purpose of that switch ? Hope you're talking about AC125 gates.
If you don't, thought I'm confident you did, let me explain.
It's there to allow using an external flash driven by PSEN since it's an output pin and during programming act as input.
Obvious, you don't want to get in conflict after programming.
Why would use an external flash since the micro provides 64k internal ?
I don't know, but maybe you use an 89C420 or 89C430. Probably the manufacturer thinks, too.
What are you talking about ??? Did you see the schematics ?

You said
no need for a switch to enable the bootloader !

HA HA HA ! But your outputs DTR# RTS# of U2 and Q2 what are they doing ?
And why wouldn't use directly the ones provided by PC COM serial port ?
Of course I'm talking about physical switches (and with serial port you can have some problem using a laptop).

But that's only mathematical because in real life in order to mantain a reliable communication channel you must attempt to match the loader baud rate and PC COM port baud rate within 3%.
What are you talking about ? I'm using the FT232BM in custom baudrate, I'm not using COM port.

And what's that speed for programming. We are not at race. Few seconds more or less it doesn't matter at all.
Nevertheless, if your FTDI chip it's like a border, on the left side you'll get the high USB speed, whereas on the right side you get only the microcontroller serial port speed.
Does make sens ?
Of course that makes sense. If you don't understand, continue with your 19.2kb.

Can you tell us what's the real serial baud rate for programming ? ("on the right side border of FTDI chip")
You've already made the calculation. As you're not confident with the module, I don't have to give you the custom divisor.

Well, that's funny !
The main purpose of ISP it's what the name said. In System Programming.
It's supposed that the microcontroller is already fitted in a board with his own power supply.
And the only thing that you want is to change the flash contents.
After that just gently remove your communication cable and run your program.

Why hanging on USB bus like a leech sucking power when running your program ?
Just for test ? But you can test & upgrade in your board !
That's not really funny. You're talking about ISP and pluging a cable from the PC. Then from what connector ????
Using USB is fast, easy and does not require any external power supply to reprogram the FLASH.

Well, do you know what I'm calling really on the fly ?
The IAP features. YES, InApplicationProgramming.
It's a ordinary term in microcontroller area.
And that's really embedded.
It's a pity to read such things: Do you know what UPGRADING means ??? (and NOT with a ISP cable for the end user)

You know what reminds me your 4 sentences ?
The truth, that's it. If you're offended...

Do you know what was the 89C4XX speed mentioned before first 89C4XX was released ?
If you don't, please allow me : 50Mhz.
Why did they retrain to 33Mhz ? Because the harware didn't helped.
Remember, it's one clock / machine cycle (fetch + execution).
During that 1 clock, every internal action (which takes 12 clocks in genuine 8051 series) is split in small amounts. If something it's not in synch, you're lost.
Nevertheless that not all instruction are executes in one clock cycle.
And then ? What's the matter with the chip ?

Cannot see the logic also why put a self powered micro on my system, does not want to burn my PC's USB because it cannot anymore handle its rated load.
??? The module can be self powered and/or externally powered.

As silvio said, job well done man but on the wrong micro.
No, the micro is the one I selected among others thanks to the bootloader, IAP, 64KFLASH, 33MHz speed.

There is PDIP available for DS89 series, what is the use of using a smaller package, a higher cost and a PCB resized to a PDIP just like a basic stamp.
Because the module (+cable) is the only hardware you need to do 8051 development. It's easy and fast as I wrote. Buy a PDIP40 DS89C4XX and you've nothing (but the uP) in the same package.

Added after 8 minutes:

By connecting hardware the ALE toward +5v you've killed the XRAM access.
I know you mentioned that your board will provide only 1kb XRAM.
But would be a serious limitation for peoples eager for much RAM ?
It's a choice. If you need XRAM choose another topology.

May I ask you if what are the great improvements of your design, does your design makes the DS89C420 act like the basic stamp, or you were just challenged by the PSOC Invention board and wanted to create something like it, I appreciate what youve done, better yet, you applied it for a USB pic programmer of all of us here will be happy :) and of course will be so much thankful to you.

As I've said, check my design if you can see any physical switches, and sorry to tell you, it has none, why use a micro in a laptop? do you always carry a micro on a travel to program? Or you just bring a laptop and a simulator? Hey, I do not use laptop to program my micro most of the time because it will just drain my batteries.

No one needs to program a micro that fast, and as I see it, the target users of your design are beginners too. They do not need that speed, and what is the real time increase in speed compared with the actual speed, you know sometimes we create a very good design as we see it, then when others sees it, they will say good and bad comments, good comments are quite useless because you too gives good comments on your design, the important are the bad comments because they are the one's that will improve our next outcome, don't be pissed off, we are criticizing because we want you to improve what you've done or apply to other ery good application, you know, it does not mean that you are a good engineer or scientist means you are also good in conceptualizing things or imagining new good applications.

Because the module (+cable) is the only hardware you need to do 8051 development. It's easy and fast as I wrote. Buy a PDIP40 DS89C4XX and you've nothing (but the uP) in the same package.

Good point but again bad idea, how much is your module and how much is a MAX232, DS89C420, LM7805, Tri-state switch and of course a multipurpose breadboard? You think it is feasible to submit a project containing your board rather a PDIP DS89C420? You know, you did not create any improvement on the functionality of the micro by creating that board. You only create an expensive module that is only good for one micro, beter yet create a board like the basic stamp, youc an help more beginners here and those who want to program in BASIC but of course, do not remove the interrupts.

As I suggest above, better create a USB Programmer for PICs and we can appreciate it more. :) Btw, give us also a freebies FTDI chips and how much is the PCB cost of the board?
 

ds89c450

When a lot of peoples complains about slower baud rates during programming and even when manufacturer admit that a reliable programming must be done at lower baud rates, you come and say that's fake !
I believe what I see, if I tell you that I'm programming @ 85kbaud (minimum, see further) without error, that's true.

Who said that I can't program at higher baud rate ?
If you didn't succeed to cross the border of 19.2kb, that's your problem !
What is the speed you reach without error ? (be honnest, because I saw some posts here that are not famous).

BTW do you have a special monitor program in order to see what's scheduling latency in USB bus ?
Otherwise, how can be so sure that DS89C450 is driven with the desired baud rate during programming ?
With a special tools that's called oscilloscope :wink:

Or you just start with 170k baud rate sending <CR> character (0Dh) and then retrain down to a baud rate that can be detected by the autobaud routine ?
Have you count how long it takes to program 64k at 19200 ? How about 170k ? (which I have serious doubts has been achieved, nevertheless that don't match 3% mentioned)
64 [kbyte] @ 19200 [bauds] means 65536*8 [bits] @ 19200 [bits/s] divided by 8/10 for the encapsulation (start bit and parity) then 34 to program the µP. Are you agree ? For me, it's very long.

Concerning the 170[kbits/s], you're right, I've done some rough tests: I've uploaded a hex file of 17100 [bytes] onto the module in about 2, that means 8550 [bytes/s], then 85.5 [kbits/s] (don't forget encapsulation). But It's not optimised. I've to check to optimise my downloader. To be honnest, I've to put indeed on my website that 170[kbit/s] is a (true) theoretical value.

I understand you want to proove your skills but not with these arguments !
I don't want to proove anything

If I'll ever have problems with laptops lacking the serial port then I would buy an ordinary USB -> RS232 convertor found in any PC magazine. Only if I feel the need. The loader program in PC able to comunicate with DS89C450 through USB convertor ? That wouldn't be a problem.
Don't buy a "ordinary" USB-RS232" converter because some of these are really shit, but buy a good one.

Please allow me to spell what ISP means : In System Programming.
His purpose ? To avoid removing the microcontroller from the board, and programming into a so called parallel programmer and then fitting back into board.
Thus all you want to do is fitting a three wires cable coming from serial port and using the existent power supply from your board.
Why do you need additional one like specific parallel programmer since the microcontroller has already one ?
Just because FT232BM provides PWREN# pin and must be used if it's there ?
The ISP was not created for the microcontroller sitting in a newbie's breadboard without power supply.
If your board was created for such kind of experiments, then it's yout choise !
But don't defeat the ISP purpose !
I know what ISP means, I know that you have to use a SPECIAL ISP CABLE (with some electronics). Not me.

I thought you have come with a solution to the indeterminated scratchpad memory(00h - 7Fh) used by the ROM loader,
and you are coming with the idea that I don't know what UPGRADING means ?

A ISP cable for end user ? That's a joke boy ! Four wires from PC COM port to your target board ?
How about ones with JTAG interface ?
I don't understand, sorry english is not my mother tongue.

DS89C450 support IAP for only the upper bank of the on-chip programming memory (32k) since the lower bank (32k) contains system hardware-dependent codes that are crucial to system operation and should not be altered during in-application programming that's not a really IAP, even if you can change individual bytes in the upper block. If you call this UPGRADE, maybe could be because you want to upgrade only small amounts of code and not all 64k program. But I can call it full IAP upgrade.
I know this, but I'm not using IAP to UPGRADE the embedded software. I use instead the integrated bootloader. Why do you want to rewrite a bootloader ???
I use IAP to have some FLASH memory behaviour like DATA EEPROM memory.

You've nothing !
I believe that a lot of people using this chip will feel offended !
However, it's the truth.

Did you ever tried fitting a fast SRAM with <10ns tACC in order to get advantage of full 64k XRAM and run the DS89C450 in PAGE MODE 1 EXTERNAL TIMING—PAGES 1:0 = 00b and MD2:MD0 = 000?
When the stretch value is cleared to 000b, there is no stretch on external data memory access, and a MOVX instruction is completed in two basic memory cycles
And you give it up because didn't succeed ?
That's a chalenge. Wouldn't want to give it a try ? But released ALE from hardware +5v.
If I wanted to use external SRAM, I'm not sure I'll use the DS89CX processor.
It's not the purpose of this module to use xtra SRAM !!! The purpose is to have a complete -quite universal concerning applications- development module.

May I ask you if what are the great improvements of your design, does your design makes the DS89C420 act like the basic stamp, or you were just challenged by the PSOC Invention board and wanted to create something like it, I appreciate what youve done, better yet, you applied it for a USB pic programmer of all of us here will be happy Smile and of course will be so much thankful to you.
The great improvement (for me...then) is to have a fast (4 to compile, link, upload and execute embedded 17kbyte compiled custom C software) and easy way (Crimson editor, SDCC) to develop 8051 applications.

As I've said, check my design if you can see any physical switches, and sorry to tell you, it has none, why use a micro in a laptop? do you always carry a micro on a travel to program? Or you just bring a laptop and a simulator? Hey, I do not use laptop to program my micro most of the time because it will just drain my batteries.
Ok, you don't have switches. I never try this way but I'm confident with your schematic. Then ? Do you know the consumption of the module ? Less then 100mA (indirect measurement). And what A GREAT THING to develop with a module without these fucking power cables (and transformer). Just plug the module, that all.

No one needs to program a micro that fast, and as I see it, the target users of your design are beginners too.
For me, for sure the quickest the upload is, the better is. It's my opinion.

They do not need that speed, and what is the real time increase in speed compared with the actual speed, you know sometimes we create a very good design as we see it, then when others sees it, they will say good and bad comments, good comments are quite useless because you too gives good comments on your design, the important are the bad comments because they are the one's that will improve our next outcome, don't be pissed off, we are criticizing because we want you to improve what you've done or apply to other ery good application, you know, it does not mean that you are a good engineer or scientist means you are also good in conceptualizing things or imagining new good applications.
That's not a problem for me. I can tell you the real bad thinks of this design:
- Price (but I'll give you soon a detailed comparative price).
- Difficulty (for the beginner) to deal with the SMD components.
- PCB 4 layers (vgood for me but expensive for one piece)
- ?

Good point but again bad idea, how much is your module and how much is a MAX232, DS89C420, LM7805, Tri-state switch and of course a multipurpose breadboard? You think it is feasible to submit a project containing your board rather a PDIP DS89C420?
I'll give you the detailed price of the module and a comparison with the "classical" way to do.

You know, you did not create any improvement on the functionality of the micro by creating that board.
What are you calling improvement ? BASIC isn't improvement, it's a shit. Beginners have better to learn assembler or C language.
The improvement of the module is the hardware implementation. I repeat, you have all you need to do 8051 development. Do you want to do a PIC programmer ? Ok, put some external components , an embedded software and that's it. Do you want a oven regulator ? Put some external power components, a PID software and that's it. And so on. That's the philosophy of this module.

NB: I'm not a commercial guy.
 

ds89c programmer

Ok, you don't have switches. I never try this way but I'm confident with your schematic. Then ? Do you know the consumption of the module ? Less then 100mA (indirect measurement). And what A GREAT THING to develop with a module without these fucking power cables (and transformer). Just plug the module, that all.

Maybe it is time the mods take care of your speech problem. Btw, I see your design comsumes less power because of SMD components, question is, is your design a BANG for the BUCK?

No it is NOT. Nyahahahahahahah.
 

programator ds89c450

Here is the comparison, it's a rough one (from RS components, I know they are not cheap). The module is not as expensive regarding the RS232 solution.
Concerning the price of the 4 layer PCB, I've ordered @ PCB-POOL the minimum surface, because of this, I had to order ten PCB and, with shipping, that gives about 19 € per PCB.
Concerning the price on my website, I ask 10€ for assembling, then the complete assembled module is 57 €. Again, I'm not a commercial guy. I give all the soft, schematics for the one who want to build the module.
 

programator usb ds89c450

monnoliv said:
Here is the comparison, it's a rough one (from RS components, I know they are not cheap). The module is not as expensive regarding the RS232 solution.
Concerning the price of the 4 layer PCB, I've ordered @ PCB-POOL the minimum surface, because of this, I had to order ten PCB and, with shipping, that gives about 19 € per PCB.
Concerning the price on my website, I ask 10€ for assembling, then the complete assembled module is 57 €. Again, I'm not a commercial guy. I give all the soft, schematics for the one who want to build the module.

Wise guy, why should one order on RS? Trying still to prove your point? LOL :D

Oh, cmon..... You are pulling your own leg.

Added after 2 minutes:

monnoliv said:
Here is the comparison, it's a rough one (from RS components, I know they are not cheap). The module is not as expensive regarding the RS232 solution.
Concerning the price of the 4 layer PCB, I've ordered @ PCB-POOL the minimum surface, because of this, I had to order ten PCB and, with shipping, that gives about 19 € per PCB.
Concerning the price on my website, I ask 10€ for assembling, then the complete assembled module is 57 €. Again, I'm not a commercial guy. I give all the soft, schematics for the one who want to build the module.

You forgot to charge your FTD programming and USB programming on PG side, you know, labor cost.
 

ds89c450 loader commands

Kids, kids, please stop ! You're smart ! Let's be constructive !


I hope that both of you agree using the crystal multiplier feature of DS89C450.
This way we can achieve EMI reduction, too.
Using an external 32 MHz oscillator could be a good solution regardless availability and price.
Whereby quartz crystals below 30MHz operating in fundamental mode are very hard to find (the overtone mode always give headache)
a good idea is to use a 7.3728 MHz, setting the 4X/2X bit, CD1:CD0 = 1:0 and enabling the crystal multiplier by setting the CTM bit.
Well that's perfect when we have a program already loaded in the flash.
Since the microcontroller starts running by default at 7.3728 MHz (mentioned above and excelent value for UART) and after performing the multiplier routine switch to 4 x 7.3728 = 29,4912 MHz.
Obvious you can choose a value closer to 33MHz / 4 = 8.25 MHz but must set T1MH bit, clocking timer 1 faster allowing higher baud rate resolution within an acceptable error range for application use.

But this approach (using crystal multiplier) leads to lower speed flash programming.
ROM Loader_Baud rate = ( Crystal Frequency / 192 ) x 1 / (256 - Timer 1 Reload) , SMOD = 1
As you can see, for timer 1 reload value of FFh we get max 38400 baud rate.
If you didn't figured out, timer 1 it's still driven by crystal frequency divided by 12 (for compatibility with 8051 genuine series).

Some hints to increase the speed flash programming for this example?
Anything, but using external 32MHz oscillator.

Now regarding programming speed performed by ROM loader.
It's strong PC programmer loader related.
Why ?

Well, let's look at the way the ROM loader works.
The most issued command is "L" load standard ASCII Intel hex formatted data, that must not exceeds allowable 20 bytes length.
Thus 16 usefull bytes. For entire 64k flash, the command must be issued 4096 times.
Obvious if the length byte inside record type 00 is less than 16 then the command "L" must be issued more than 4096 times.
This could happens if the assembler or C compiler don't build the hex file in constant 16 bytes chunck / record.

Now comes the advice: New records SHOULD not be transmitted until the ACK/NACK byte associated with the previous record has been received.
The best ACK for us is "G" that means record was received and programmed without error.
How fast the "B" comes after those 20 bytes has been sent ?
Someone could claim that depends of the time required for flash cell programming. How much is takes ?
If we look into data sheet page 11, tPROG = max. 40 uS.
If we look into IAP section at page 23 the FBUSY bit may not change state for up to 1 uS.
Since I'm expected that ROM Loader uses the same registers FCNTL:D5h FDATA:D6h like IAP does, I believe that 1 uS is that prog time.
Now, how much time it takes to program 16 bytes ? Yes, you guess 16 uS, regardless the overhead time required by routine programming which ends waiting for FBUSY to return to 1.
Included in this routine are preprogramming assessment and postprogramming verification, too.
How much time it takes to send serially the payload 16 bytes at 115k baud rate ?
20 bytes x 11 bits (Start bit + 8 + Parity + Stop bit) x 1/115200 = 2 mS which is by far greater than time required to program them in flash.
Thus we can't say here it's the bottle neck which limits the speed programming.
I didn't take into account the erase time (command "K").

The data sheet clearly stated that scratchpad memory 00 - 7F it's used during loader session (declared as indeterminate)
How much bytes among 128 bytes are reserved for serial buffer or type-ahead buffer ? The manufacturer knows.
Why I'm asking this ?
Well, can you answer what happens if I'm sending the next record until the ACK/NACK been issued by micro ?
Why would I do that since it's not a good practice (the micro could issue meanwhile NACK as "P" or "V") ?

Just place a serial sniffer with time stamp features to record the in-out of MTK Dallas loader.
Obvious as alternative to MTK debug mode which can slow communication between target and host.
 

programator ds89c450

I hope that both of you agree using the crystal multiplier feature of DS89C450.
This way we can achieve EMI reduction, too.
Yes but ...
But this approach (using crystal multiplier) leads to lower speed flash programming.
That's the problem and the reason why I choose near 33MHz clock generator.

Obvious if the length byte inside record type 00 is less than 16 then the command "L" must be issued more than 4096 times.
This could happens if the assembler or C compiler don't build the hex file in constant 16 bytes chunck / record.
Yes

Now comes the advice: New records SHOULD not be transmitted until the ACK/NACK byte associated with the previous record has been received.
The best ACK for us is "G" that means record was received and programmed without error.
How fast the "B" comes after those 20 bytes has been sent ?
Don't bother, just check in the meantime then the ack is good.

Someone could claim that depends of the time required for flash cell programming. How much is takes ?
If we look into data sheet page 11, tPROG = max. 40 uS.
If we look into IAP section at page 23 the FBUSY bit may not change state for up to 1 uS.
Since I'm expected that ROM Loader uses the same registers FCNTL:D5h FDATA:D6h like IAP does, I believe that 1 uS is that prog time.
Now, how much time it takes to program 16 bytes ? Yes, you guess 16 uS, regardless the overhead time required by routine programming which ends waiting for FBUSY to return to 1.
Included in this routine are preprogramming assessment and postprogramming verification, too.
How much time it takes to send serially the payload 16 bytes at 115k baud rate ?
20 bytes x 11 bits (Start bit + 8 + Parity + Stop bit) x 1/115200 = 2 mS which is by far greater than time required to program them in flash.
Thus we can't say here it's the bottle neck which limits the speed programming.
Do you have the source code of the bootloader ? I don't have it. Doing some estimation is good but I've done some experimentation:

Here are the result of my tests (I spent several hours for this, including generating dummys 64Kb .hex files for the bootloader). The result is the fastest download without error (all ACK are G)

64Kb Hex files, 8 effectives bytes per row, 8193 rows => 12
64Kb Hex files, 16 effectives bytes per row, 4097 rows => 13
64Kb Hex files, 32 effectives bytes per row, 2049 rows => 14

Then the fastest upload reached is 14*8192*11/12 = 105130 bauds

Note that the more row we have, the more bytes we have to upload since each row contains bytes that are not effectives.

These tests are enough accurate for me, I can't spend more time on this.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top