
leonardo46
Italy
Asked

I'm doing some experimentation sending a serial message ( 115200 baud rate) to ezbv4. The project sends a packet of 10 bytes every 100 mS. The packet is not always being sent every 100 mS, but very often it is not sent, as you can see in this oscillogram. (each pulse you see is the 10 byte packet) . The're correctly spaced by 100 mS , but many are missing.
CCan somebody explain what's going on ??
Related Hardware EZ-B v4
Please share the script, how many you sent ? The pic shows 11.
The script was like this (send for ever) : :a sendserial(d0,115200,0x KK, .......) sleep(100) sendserial (d0,115200,0xYY.......) sleep(100) goto (a)
the scope shows only a few seconds
I recall you asked a similar question sometime ago (2016/Jun): https://synthiam.com/Community/Questions/How-Fast-Are-Scripts-5233/comments Please read my post #6
Is this your exact script? The second sendserial command has a space between sendserial and the open parentheses....
That’s not code that would work. I also can’t correct the code because there’s not enough to understand. Please post the code you’re using.
get a logic analyzer or use an arduino to better understand what transmitting you’re sending, and what’s not transmitting. Mainly cause ezscript doesn’t handle binary data in strings very well. So that’s why the hardware uart or JavaScript version of sendserial should be used. Ezscript is really only included in ARC for backward compatibility
found this arduino logic analyzer if you have one lying around: https://create.arduino.cc/projecthub/vincenzo-g/diy-logic-analyzer-f61ee5
also, the software sendserial is a bit bang. Some client serial devices may require higher timing accuracy. In that case, use the hardware uart on the ezb v4
lastly, because you’re sending binary data, the hardware uart commands are best. If you wish to continue using sendserial, then use JavaScript because it will send binary data better. Ezscript isn’t great for that stuff...
Sorry,guys, i was outside, and now i see many posts. i'm replying to all. I had the script in another PC, so i wrote it . here is the actual code: alfa.EZB
@PTP . The script should send short pulses , each lasting about 800 uS ( 10 bytes at 155200 bauds ) . This should happen every 100 mS, but the scope shows that many of them are skipped. You also refer to a post of mine in 2016 when i, a newbie of ezb, tried to use ezb's analog ports to make a feedback system, that couldn't work, because of the delay caused by ezb itself. You and others explained that ezb isn't a real time system. So, for that purpose i used a local PIC MCU . @DJ. sorry, Dj. I couldn't send the code before. it's up here. I'haven't arduino or a logic analyzer. But my 100 Mhz Tektronix digital sampling oscilloscope shows with no doubt that many pulses are missing. Note that the software uart at pin D0 outputs a perfect sequence of 10 bytes corresponding exactly to the script , but simply they aren't always sent every 100 mS as required by the script.
@leonardo46: You can't expect 10 bytes each 100 ms !
What I wrote in 2016 is still true today. Please read again, the thread and the multiple posts, and let me know why you think this problem is not related.