??? 02/23/09 07:47 Read: times |
#162685 - TI=1 workaround Responding to: ???'s previous message |
Jan Waclawek said:
Obviously, they implemented only the ISP version of the double-clock setting, as they assumed there is no reason to do this from user code (btw. I too am curious to know, why do you want to do that in your application). And they documented it as a valid IAP function carelessly. Because our boards are produced and the MCU programmed by a third-party company. Because our customers re-program the boards themselves, sometimes. In other words, it's one step less to care about, hence the probability to make mistakes is slightly reduced. Jan Waclawek said:
I see no problem implementing it as your own routine, but note what says the "original" SST89E564RD datasheet on FST bits IAP programming commands (page 42) - they programming instruction must be located in Block 1. Actually, I tried, but it didn't work out. What I've done, then, it's a horrible workaround: if (!EDC) { // awful workaround: IAP_V51_SET_DOUBLE_CLOCK // gets stuck in a infinite loop if TI == 0 TI = 1; call_iap(IAP_V51_SET_DOUBLE_CLOCK); TI = 0; } I hate such things but this is the only one that works flawlessly. Note that, during application start-up, serial port is not in use, yet. |
Topic | Author | Date |
Function "Program Double Clock" never returns in IAP mode | 01/01/70 00:00 | |
You should check carefully | 01/01/70 00:00 | |
I feel safe | 01/01/70 00:00 | |
bootloader v6 is affected, too | 01/01/70 00:00 | |
it's the same in v4 and v5, too | 01/01/70 00:00 | |
TI=1 workaround | 01/01/70 00:00 | |
3-rd party programming and thebootloader | 01/01/70 00:00 | |
bootloader self-upgraded to v7 | 01/01/70 00:00 | |
IAP ?![]() | 01/01/70 00:00 |