gabonator / DS203

DS203 quad oscilloscope firmware compatible with gcc
http://www.valky.eu/?data/hardware/ds203.txt
289 stars 86 forks source link

CANBUS Decoding #19

Open Dinstun opened 11 years ago

Dinstun commented 11 years ago

Firstly great work Gabonator I hope you haven't given up on this project quite yet.

There seems to be a problem with calculating the baud rate on CAN signals, it seems to change depending on the spacing of the time axis and throws errors when zoomed in to a certain point.

Even at 100kHz (which looking at the source it should be able to decode) it will not decode as a CAN packet, presumably because it is not seeing the right baud.

Secondly, as a feature request it would be great if there was an option to switch on the DS203 providing the ACK bit from the wave out port.

Cheers mate.

gabonator commented 11 years ago

Hello, unfortunately I didn't have time to work on this project for long time. And I wasn't able to verify if the CANbus decoder is working properly while measuring live signals. So it would be very helpful if you could send me the waveform of a single captured canbus frame, so I can finetune the detection algorithm. And regarding your feature request, this is currently not possible, because the CAN frame is sampled by FPGA chip and after the sample memory is full, this buffer is transfered to CPU and analysed. So when the detection algoritm would find the ACK bit in the can frame, it would be too late to respond to it. Maybe it could be achieved by implementing the CAN decoder right on the FPGA, but this is beyond my scope of knowledge.

Dňa 7/23/2013 10:13 AM Dinstun wrote / napísal(a):

Firstly great work Gabonator I hope you haven't given up on this project quite yet.

There seems to be a problem with calculating the baud rate on CAN signals, it seems to change depending on the spacing of the time axis and throws errors when zoomed in to a certain point.

Even at 100kHz (which looking at the source it should be able to decode) it will not decode as a CAN packet, presumably because it is not seeing the right baud.

Secondly, as a feature request it would be great if there was an option to switch on the DS203 providing the ACK bit from the wave out port.

Cheers mate.

— Reply to this email directly or view it on GitHub https://github.com/gabonator/DS203/issues/19.

Dinstun commented 11 years ago

Ah that's a shame about the ACK but not to worry. Linked is a captured wave in BMP, WAV and SVG format, also included are two pics showing what the baud rate is currently measuring and the error when the scope is zoomed in. Any other tweaked captures you need I'm happy to help. [Dead link removed]

gabonator commented 10 years ago

I have finally found some time to play a little with the DSO. The problem with canbus decoding is simple - the signal was not sampled with sufficient sampling speed. When you are measuring signals with dso, please keep in mind that every pixel of signal on display corresponds to a single sample. So if you are looking at the waveform and you are not able to distinguish each bit with your naked eye, the canbus decoder will fail also. The oscilloscope has memory for 4096 samples, in the SVG snapshot you provided I can see about 30 can frames, by zooming in it is clear that the signal is strongly degraded and reconstructing the canbus frame is simply not possible. I advise you to change the timebase speed (from 200us/div to 20us/div), so only single, or two/three frames will fit the dso memory.

Dinstun commented 10 years ago

Sorry I've moved house in the meantime but I am back to where I left off ready to do any tests required. I've saved a SVG on 20us as suggested and the results are much better see attached:

[Dead link removed]

Zoomed into 20us on 'meas' though, no CAN (or RS232 UART etc) information is shown on the screen.

gabonator commented 10 years ago

could you please upload the binary (WAV) file (for timebases 50us and 100us), so I could load it and test the canbus decoding algorithm?

Dinstun commented 10 years ago

Of course, find attached:

https://drive.google.com/file/d/0B_WFDC8rSu7SVzBmd3hGNlRTZUE/edit?usp=sharing