does the serial communicator automatically change the firmware at the start of the connection? no need to enter any commands?
does the serial communicator automatically change the firmware at the start of the connection? no need to enter any commands?
To upgrade the firmware you do not need to send any commands. If the VDIP sees a new firmware it will upgrade to it. When a new firmware is "built" a three character ID is given to it. The ID is whar the VDIP looks at.
The firmware I gave you has NE1 as the ID. If the ID is the same the VDIP will return "No Upgrade".
Go down to post #19 here.
http://www.picbasic.co.uk/forum/show...3888#post83888
Dave
Always wear safety glasses while programming.
I use the hyper terminal for serially communicating the vdip to the rs232. ive attached the level converter circuit that i used here in this post. you might as well take a look at it and see if it differs from the one that you know. that circuit worked very well when i used the hyper terminal but when I tried to use the microcode's serial communicator, it didn't respond to anything that i did. i reconfigured the circuit according to you pin assignments but the results were the same. does this have anything to do with me using vdip2 and you using vdip1? but then im pretty sure that i carefully reassigned the pins in the vdip2 that are equivalent to the vdip1.
since microcode's serial communicator does not work for me, i switched back to hyper terminal but when i inserted the flash disk with the new firmware in it(with a different 3 letter ID), it did not detect any upgrade. so i was forced to use the command used for upgrading the firmware. I typed in FWU FTRFB.FTD. after that it prompted:
ChangeMAINTD
Reflasher Active
Rebooting
for a moment i look like the one in your printscreen but then after a few seconds it displayed the previous firmware with the previous firmware ID and the vdip2 was still working at 9600 baud rate. Ive also attached the printscreen of that event in this post. you may see it for yourself.
what can you say? should i stop trying to change the vdip2's baud rate and make the pic micro controller adapt to it instead?
I this point I would say yes, run at 9600. I do not have a VDIP2 to test so I am at a loss.
9600 normally requires an OSC faster than 4Mhz though.
Dave
Always wear safety glasses while programming.
i already have the microcontroller working with a 20MHZ cystal. I had to follow this line of your code
and set it in the icprog's configuration before burning the program.Code:__config _HS_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF &_BODEN_OFF
after that, i went back to interfacing the pic16f877a to the vinculum and burned the program back in post #87 (with 84 as the code for the baud rate) to the pic . but then the same problem occurs. the operation halts when the pic encounters a serin2 command.
I know im doing something wrong because the vdip works perfectly with the max232.
i was thinking about you code. you were using the code 8588 which is equal to 2400 as the baud rate for your pic right? and you mentioned that the baud rate you used with your vdip was 4800. can you tell me that reason behind that? why does your vdip and your pic have different baudrates?
also, did you notice anything wrong in my code in post #87?
I have to say thank you for all your help.
Last edited by newbie; - 31st January 2010 at 16:38. Reason: additional info
What are the settings for the serial port with hyper-terminal? 9600, 8, N, 1?
If so the 84 should work. If "E"ven then try 8276.
The code you posted has the wrong baud. But lets start over, sort of.
With the VDIP connected to the PC as you had it just sen a couple simple commands to the VDIP with the PIC and see if the PC will display the return.
The below should cause the VDIP to diplay on the terminal a
D:\>
every 1.5 seconds..
At least it is here...
Code:VinRXD VAR PORTD.7 'DATA TO VDIP PIN #8 OM VDIP1 FLOWIN VAR PORTD.6 'FLOW CONTROL FROM VDIP PIN #9 ON VDIP1 START: HIGH PORTD.2 'LED PAUSE 250 LOW PORTD.2 PAUSE 250 SEROUT2 VinRXD,84,["ECS",13] '9600 TRUE HIGH VinRXD PAUSEUS 10 SEROUT2 VinRXD,84,["IPA",13] HIGH VinRXD PAUSEUS 10 WAIT111: IF FLOWIN = 1 THEN WAIT111 PAUSE 1000 GOTO START
Dave
Always wear safety glasses while programming.
i have tried what you suggested. I burned your program to the pic and then had the tx of the vinculum to the max232 connected to the pc.
what happened was the pc just printed this:
Ver 03.66-123VDFCF On-Line:
the LED did go high as stated in the program but the vinculum commands seemed that they may not have been recognized.
what do you think is the problem with this? Im running out of clues on why its still not working but i think that the problem is just within the pic microcontroller since the pc had been able to send and receive commands through the max232 or maybe its still the baud rate..
about the hyper terminal's config, yes, it was indeed 9600,8,N,1.
Bookmarks