I use ISP to program a LPC812. Baudrate is 115200. Echo in ISP is on.
According to user manual no XON/XOFF is used and also no other flow control. Also i have not seen a baudrate limit for ISP.
I send a command 'W' with length 1024. Then i send 1024 bytes of data in one go (WriteFile from Windows over FTDI 2.8.28).
The number of echoed characters is sometimes less than 1024 (e.g. 1020). When looking into the received data stream and comparing the data with the sent data, i see that some bytes are missing. There a different bytes missing, so i assume it is not because of the content of the data.
What is perhaps interesting, is, that the time the LPC812 needs to answer on a received byte, seems to be increasing. Why? Some time, when the time is too big, a character gets lost, so time is reduced, till the time is small enough again. It starts with 100 us, and when error occurs the delay by LPC812 is already up to a value of 326 us...
When i reduce the number of bytes to 4 x 256 bytes, it seems the error does not occur, or at least rate of occurance is reduced.
(this gives LPC812 time to get breath again)
BTW: I use a LPCXpresso with LPC812 on it, bootloader version 13.1
Arg, now they were displayed by forum. Never mind, here are two screenshots.
lpc812-start.jpg: This shows the start of the binary data, which is sent after 'W' command. Time (see red and green boxes) is around 100 us from the time
where the PC (or better USB -> serial converter) delivers the binary data, to the time where LPC812 delivers the data.
lpc812-lost1.jpg: This shows the error case. Time to answer (violet box) is now 326 us.
Sent bytes are 0xC1, 0x48, 0xC1, 0x4A.
Echoed bytes are 0xC1, 0x48, 0x4A (0xC1 is missing). All the following bytes are correct again.
I saw 4 such cases in one 1024 byte transmission.
Unfortunately the marker get lost which point to the position of the errors.
Here the data which was sent to LPC812:
'#(FB)?J>I(80)#(CB)X@!(19)C(80)#(D1)P(00) (07)!(01)"(01)(F0)n(FF)(00) (10)!(01)"(01)(F0)i(FF)(00) (11)!(01)"(01)(F0)d(FF)(00) (07)!(01)"(01)(F0);(FF)(00) (10)!(00)"(01)(F0)6(FF)(00) (11)!(01)"(01)(F0)1(FF)(96)#(9B)(01)(00) (19)(1C)(00)(F0)W(FD)*K(18)(1C)(00)(F0)o(FD))K(18)(1C)(00)(F0)k(FD)$K[h(18)(1C)(00)(F0)(80)(FD)%K(18)(1C)(00)(F0)b(FD)$K(18)(1C)(00)(F0)^(FD)(1D)K(9B)h(18)(1C)(00)(F0)s(FD)(1F)K(18)(1C)(00)(F0)U(FD)(1F)K(18)(1C)(00)(F0)Q(FD)(17)K(DB)h(18)(1C)(00)(F0)f(FD)(18)K(18)(1C)(00)(F0)H(FD)(19)K(18)(1C)(00)(F0)D(FD)(10)K(1B)i(18)(1C)(00)(F0)Y(FD)(12)K(18)(1C)(00)(F0);(FD)(14)K(18)(1C)(00)(F0)(FD)(FA)(C0)F(12)K(9A)h(08)#(13)@(FA)(D0)(11)K(04)"(1A)`(0F)K(02)"(1A)`(0F) (FF)(F7)(B6)(FE)(0F) (FF)(F7)(9B)(FE)(BD)F(02)(B0)(80)(BD)(00)(00)(02)@(00)(80)(04)@(B4)&(00)(00)(C0)&(00)(00)(90)&(00)(00)(CC)&(00)(00)(D8)&(00)(00)(E4)&(00)(00)(F0)&(00)(00)(00)@(06)@(00)(80)(00)@(90)(B5)(8B)(B0)(00)(AF)(01)(F0)(8B)(FA)(E4)J(E3)I(80)#(CB)X@!(19)C(80)#(D1)P(00) (07)!(01)"(01)(F0)(D6)(FE)(00) (10)!(01)"(01)(F0)(D1)(FE)(00) (11)!(01)"(01)(F0)(CC)(FE)(00) (07)!(01)"(01)(F0)(A3)(FE)(00) (10)!(01)"(01)(F0)(9E)(FE)(00) (11)!(00)"(01)(F0)(99)(FE)(96)#(9B)(01)(00) (19)(1C)(00)(F0)(BF)(FC)(00) (06)!(01)"(01)(F0)(B2)(FE)(00) (06)!(01)"(01)(F0)(89)(FE)(C9)J(C8)I(80)#(CB)X(80)!(09)(01)(19)C(80)#(D1)P(C4)K(C4)JRh(01)!(8A)CZ`(C1)K(C1)JRh(01)!(0A)CZ`(BF)K(DB)h{b(BE)K(1B)i;b{j(1B)(02)(1B)(0A){b{j(E0)"(12)(05)(13)C{b;j(FF)"(93)C;b;j(0C)"(13)C;b:j(B4)K(13)@;b;j(D0)"(12)(01)(13)C;b:j(B1)K(13)@;b;j(FF)"(12)(04)(13)C;b(AB)Kzj(DA)`(A9)K:j(1A)a(AB)K$"(1A)`(A9)K(80)"(12)(02)Zb(A7)K(F1)"(12)(05)(1A)b(A5)K(A5)J(12)h(01)!(0A)C(1A)`(A3)K(18)(1C)(00)(F0)x(FC)(A2)K(18)(1C)(00)(F0)t(FC)(9A)K(1B)k(18)(1C)(00)(F0)(89)(FC)(9F)K(18)(1C)(00)(F0)k(FC)(9E)K(18)(1C)(00)(F0)g(FC)(9D)K(1B)x(18)(1C)(00)(F0)T(FC)(9A)K[x(18)(1C)(00)(F0)O(FC)(98)K(9B)x(18)(1C)(00)(F0)J(FC)(95)K(DB)x(18)(1C)(00)(F0)E(FC)(93)K(1B)y(18)(1C)(00)(F0)@(FC)(8E)K(18)(1C)(00)(F0)J(FC)(8E)KH"(1A)p(8D)Ka"Zp(8B)Kl"(9A)p(8A)Kl"(DA)p(88)Ko"(1A)q(00)(E0)(C0)F(00)(F0)(E9)(F9)(03)(1C)(00)+(F9)(D0)<(1C)(1F)4(00)(F0)(EC)(F9)(03)(1C)#p;(1C)(1F)3(1B)xw+(00)(D0)(19)(E1)~K(18)(1C)(00)(F0)$(FC)zK(18)(1C)(00)(F0) (FC)yK(1B)x(18)(1C)(00)(F0)(0D)(FC)wK[x(18)(1C)(00)(F0)(08)(FC)tK(9B)x(18)(1C)(00)(F0)(03)(FC)rK(DB)x(18)(1C)(00)(F0)(FE)(FB)oK(1B)y(18)(1C)(00)(F0)(F9)(FB)kK(18)(1C)(00)(F0)(03)(FC)bJaI(80)#(C9)XkK(19)@(80)#(D1)PjKiJ(12)h(80)!(09)(01)(0A)C(1A)`fKfJ(12)h(80)!I(00)(0A)C(1A)`dK(18)(1C)(00)(F0)(AF)(F9)(C0)FbK(9A)h(08)#(13)@(FA)(D0)^K`JZ`\K`J(9A)`[K_J(DA)`YK_J(1A)aLJKI(80)#(CB)X(80)!(89)(00)(19)C(80)#(D1)PGKGJQhQJ(0A)@Z`DKDJRh(80)!(89)(00)(0A)CZ`MKLJRi(0C)!(0A)CZa(0F) (FF)(F7)(18)(FD)OK(04)"(1A)`NKNJ(DA)`LK(01)"(1A)`8J7I(8E)#(9B)(00)(C9)X(8D)#(9B)(00)(D1)P4J(85)#(9B)(00)(80)!(09)(02)(D1)PFK'
Here the data which was received by PC:
'#(FB)?J>I(80)#(CB)X@!(19)C(80)#(D1)P(00) (07)!(01)"(01)(F0)n(FF)(00) (10)!(01)"(01)(F0)i(FF)(00) (11)!(01)"(01)(F0)d(FF)(00) (07)!(01)"(01)(F0);(FF)(00) (10)!(00)"(01)(F0)6(FF)(00) (11)!(01)"(01)(F0)1(FF)(96)#(9B)(01)(00) (19)(1C)(00)(F0)W(FD)*K(18)(1C)(00)(F0)o(FD))K(18)(1C)(00)(F0)k(FD)$K[h(18)(1C)(00)(F0)(80)(FD)%K(18)(1C)(00)(F0)b(FD)$K(18)(1C)(00)(F0)^(FD)(1D)K(9B)h(18)(1C)(00)(F0)s(FD)(1F)K(18)(1C)(00)(F0)U(FD)(1F)K(18)(1C)(00)(F0)Q(FD)(17)K(DB)h(18)(1C)(00)(F0)f(FD)(18)K(18)(1C)(00)(F0)H(FD)(19)K(18)(1C)(00)(F0)D(FD)(10)K(1B)i(18)(1C)(00)(F0)Y(FD)(12)K(18)(1C)(00)(F0);(FD)(14)K(18)(1C)(00)(F0)(FD)(FA)(C0)F(12)K(9A)h(08)#(13)@(FA)(D0)(11)K(04)"(1A)`(0F)K(02)"(1A)`(0F) (FF)(F7)(B6)(FE)(0F) (FF)(F7)(9B)(FE)(BD)F(02)(B0)(80)(BD)(00)(00)(02)@(00)(80)(04)@(B4)&(00)(00)(C0)&(00)(00)(90)&(00)(00)(CC)&(00)(00)(D8)&(00)(00)(E4)&(00)(00)(F0)&(00)(00)(00)@(06)@(00)(80)(00)@(90)(B5)(8B)(B0)(00)(AF)(01)(F0)(8B)(FA)(E4)J(E3)I(80)#(CB)X@!(19)C(80)#(D1)P(00) (07)!(01)"(01)(F0)(D6)(FE)(00) (10)!(01)"(01)(F0)(D1)(FE)(00) (11)!(01)"(01)(F0)(CC)(FE)(00) (07)!(01)"(01)(F0)(A3)(FE)(00) (10)!(01)"(01)(F0)(9E)(FE)(00) (11)!(00)"(01)(F0)(99)(FE)(96)#(9B)(01)(00) (19)(1C)(00)(F0)(BF)(FC)(00) (06)!(01)"(01)(F0)(B2)(FE)(00) (06)!(01)"(01)(F0)(89)(FE)(C9)J(C8)I(80)#(CB)X(80)!(09)(01)(19)C(80)#(D1)P(C4)K(C4)JRh(01)!(8A)CZ`(C1)K JRh(01)!(0A)CZ`(BF)K(DB)h{b(BE)K(1B)i;b{j(1B)(02)(1B)(0A){b{j(E0)"(12)(05)(13)C{b;j(FF)"(93)C;b;j(0C)"(13)C;b:j(B4)K(13)@;b;j(D0)"(12)(01)(13)C;b:j(B1)K(13)@;b;j(FF)"(12)(04)(13)C;b(AB)Kzj(DA)`(A9)K:j(1A)a(AB)K$"(1A)`(A9)K(80)"(12)(02)Zb(A7)K(F1)"(12)(05)(1A)b(A5)K(A5)J(12)h(01)!(0A)C(1A)`(A3)K(18)(1C)(00)(F0)x(FC)(A2)K(18)(1C)(00)(F0)t(FC)(9A)K(1B)k(18)(1C)(00)(F0)(89)(FC)(9F)K(18)(1C)(00)(F0)k (9E)K(18)(1C)(00)(F0)g(FC)(9D)K(1B)x(18)(1C)(00)(F0)T(FC)(9A)K[x(18)(1C)(00)(F0)O(FC)(98)K(9B)x(18)(1C)(00)(F0)J(FC)(95)K(DB)x(18)(1C)(00)(F0)E(FC)(93)K(1B)y(18)(1C)(00)(F0)@(FC)(8E)K(18)(1C)(00)(F0)J(FC)(8E)KH"(1A)p(8D)Ka"Zp(8B)Kl"(9A)p(8A)Kl"(DA)p(88)Ko"(1A)q(00)(E0)(C0)F(00)(F0)(E9)(F9)(03)(1C)(00)+(F9)(D0)<(1C)(1F)4(00)(F0)(EC)(F9)(03)(1C)#p;(1C)(1F)3(1B)xw+(00)(D0)(19)(E1)~K(18)(1C)(00)(F0)$(FC)zK(18)(1C)(00)(F0) (FC)yK(1B)x(18)(1C)(00)(F0)(0D)(FC)wK[x(18)(1C)(00)(F0)(08)(FC)t (9B)x(18)(1C)(00)(F0)(03)(FC)rK(DB)x(18)(1C)(00)(F0)(FE)(FB)oK(1B)y(18)(1C)(00)(F0)(F9)(FB)kK(18)(1C)(00)(F0)(03)(FC)bJaI(80)#(C9)XkK(19)@(80)#(D1)PjKiJ(12)h(80)!(09)(01)(0A)C(1A)`fKfJ(12)h(80)!I(00)(0A)C(1A)`dK(18)(1C)(00)(F0)(AF)(F9)(C0)FbK(9A)h(08)#(13)@(FA)(D0)^K`JZ`\K`J(9A)`[K_J(DA)`YK_J(1A)aLJKI(80)#(CB)X(80)!(89)(00)(19)C(80)#(D1)PGKGJQhQJ(0A)@Z`DKDJRh(80)!(89)(00)(0A)CZ`MK JRi(0C)!(0A)CZa(0F) (FF)(F7)(18)(FD)OK(04)"(1A)`NKNJ(DA)`LK(01)"(1A)`8J7I(8E)#(9B)(00)(C9)X(8D)#(9B)(00)(D1)P4J(85)#(9B)(00)(80)!(09)(02)(D1)PFK'
With the logic analyzer it was confirmed that not the USB <-> Serial converter is loosing characters, they are already lost before the converter gets data from the LPC812.