EmbeddedRelated.com
Forums
Memfault Beyond the Launch

Problem regarding Flash in MC68HC912B32

Started by Rivan Rivaldy December 10, 2008
Hi all,
I got a problem with my Flash on my MC68HC912B32 (again.. sigh). I
realized that when the
S-Record being sent to the MCU, the MCU will only read the odd order
of S1. For example, I have the S-Records listed below:

S011000046696C653A20696E742E7478740A31
S105FFF20DE01C
S105FFF40DB04A
S105FFFE0D00F0
S9030000FC

After this S-Records being loaded into the Flash, I noticed that the
HyperTerminal stops and it's like waiting for the data termiation (S9).

Afterwards, I reset my MCU and check the memory location. It appears
that only the 1st S1 and the 3rd S1 records that are successfully
transferred. I don't know where the 2nd one gone. So this leads me to
conclude that after receiving the S0, then MCU then read the 1st S1,
skip the 2nd S1, and directly jumps to the 3rd S1, and also skipping
S9. This explains why the HyperTerminal acts like it's waiting for the
next S-Records (either S1 or S9).

Did anyone ever experience similar problem?
Would really appreciate if any of you have suggestion for this issue.
Thank you very much.

Rivan
--- In 6..., "Rivan Rivaldy" wrote:
>
> Hi all,
> I got a problem with my Flash on my MC68HC912B32 (again.. sigh). I
> realized that when the
> S-Record being sent to the MCU, the MCU will only read the odd order
> of S1. For example, I have the S-Records listed below:
>
> S011000046696C653A20696E742E7478740A31
> S105FFF20DE01C
> S105FFF40DB04A
> S105FFFE0D00F0
> S9030000FC
>
> After this S-Records being loaded into the Flash, I noticed that the
> HyperTerminal stops and it's like waiting for the data termiation (S9).
>
> Afterwards, I reset my MCU and check the memory location. It appears
> that only the 1st S1 and the 3rd S1 records that are successfully
> transferred. I don't know where the 2nd one gone. So this leads me to
> conclude that after receiving the S0, then MCU then read the 1st S1,
> skip the 2nd S1, and directly jumps to the 3rd S1, and also skipping
> S9. This explains why the HyperTerminal acts like it's waiting for the
> next S-Records (either S1 or S9).
>
> Did anyone ever experience similar problem?
> Would really appreciate if any of you have suggestion for this issue.
> Thank you very much.
>
> Rivan
>

It's likely happening because Hyperterminal is sending the characters
faster than the bootloader can handle it. Programming each flash byte
takes a few milliseconds. That's why D-Bug12 uses handshaking (wait
for *). Hyperterminal doesn't offer that option, so you'll need to
add a line delay in the Setup area to get the same effect. You'll
find details here:
http://www.technologicalarts.com/myfiles/912hyper.html

best regards,
Carl Barnes
www.technologicalarts.com

Hi Carl,
Thanks for the reply. I will try it as soon as I can and will let you
know the result.
Thanks

Rivan
--- In 6..., "mculater12" wrote:
>
> --- In 6..., "Rivan Rivaldy" wrote:
> >
> > Hi all,
> > I got a problem with my Flash on my MC68HC912B32 (again.. sigh). I
> > realized that when the
> > S-Record being sent to the MCU, the MCU will only read the odd order
> > of S1. For example, I have the S-Records listed below:
> >
> > S011000046696C653A20696E742E7478740A31
> > S105FFF20DE01C
> > S105FFF40DB04A
> > S105FFFE0D00F0
> > S9030000FC
> >
> > After this S-Records being loaded into the Flash, I noticed that the
> > HyperTerminal stops and it's like waiting for the data termiation
(S9).
> >
> > Afterwards, I reset my MCU and check the memory location. It appears
> > that only the 1st S1 and the 3rd S1 records that are successfully
> > transferred. I don't know where the 2nd one gone. So this leads me to
> > conclude that after receiving the S0, then MCU then read the 1st S1,
> > skip the 2nd S1, and directly jumps to the 3rd S1, and also skipping
> > S9. This explains why the HyperTerminal acts like it's waiting for the
> > next S-Records (either S1 or S9).
> >
> > Did anyone ever experience similar problem?
> > Would really appreciate if any of you have suggestion for this issue.
> > Thank you very much.
> >
> > Rivan
> > It's likely happening because Hyperterminal is sending the characters
> faster than the bootloader can handle it. Programming each flash byte
> takes a few milliseconds. That's why D-Bug12 uses handshaking (wait
> for *). Hyperterminal doesn't offer that option, so you'll need to
> add a line delay in the Setup area to get the same effect. You'll
> find details here:
> http://www.technologicalarts.com/myfiles/912hyper.html
>
> best regards,
> Carl Barnes
> www.technologicalarts.com
>


Memfault Beyond the Launch