| ??? 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 |



