UPDATE HERE (http://http://dangerousprototypes.com/forum/index.php?topic=1534.msg14842#msg14842)
Hi, i received yesterday my OLS :D :D and start some basic tests.
I use the following code in my arduino:
void setup(){
Serial.begin(115200);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop(){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
Serial.print('e');
}
and start sniffing:
TEST1:
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TQOD2VZCfJI/AAAAAAAAA8U/Q7OA9EYTKk0/s800/ols2.jpg)
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TQOD2_ZPMNI/AAAAAAAAA8Y/eaKnvtGRNWs/s800/ols3.jpg)
(http://http://lh4.ggpht.com/_i2teYMYP9C0/TQOD3HGYIGI/AAAAAAAAA8c/dJHj0V7ZDLg/s800/ols4.jpg)
It's ok, but it is like lucky because another recapture with the same settings and the result is:
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TQOD3xADJDI/AAAAAAAAA8k/uFFCoYtU6_o/s800/ols6.jpg)
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TQOD3iT5L9I/AAAAAAAAA8g/zL1L_SKxMmQ/s800/ols5.jpg)
TEST2: Sampling Rate=20Mhz
(http://http://lh5.ggpht.com/_i2teYMYP9C0/TQOD5jVvsaI/AAAAAAAAA84/w26oUY_UYn4/s800/ols10.jpg)
(http://http://lh5.ggpht.com/_i2teYMYP9C0/TQOD6bJ84rI/AAAAAAAAA9A/sKciYO-PINw/s800/ols12.jpg)
TEST3: Add a delay between each serial.print to Arduino Code
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TQOD6zrTbFI/AAAAAAAAA9E/Eet6cyoDYKQ/s800/ols13.jpg)
With the delay it's all ok because it can identify the start bit.
1 - Maybe a good feature its the possiblite to us say where start the uart comunication.
2 - Another thing is the position of the info, per example: 0x65 - 'e' - 1100101
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TQOD6zrTbFI/AAAAAAAAA9E/Eet6cyoDYKQ/s800/ols13.jpg)
As you can see the label with the info about the byte is a bit offset.
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TQONniCth-I/AAAAAAAAA9U/2_R8OjcoSX8/s800/ols13byMe.jpg)
(Sorry if it is just newbie erros)
@metRo_: thanks for the detailed information. The UART decoder tool might still contain errors, as it is not very thoroughly tested yet. Determining the start-bit might be buggy, as you've shown. I'll load up a similar sketch in my own Arduino to test it as well.
You can use cursors 1 & 2 to mark the area of interest for a decoder tool; this way, you can limit the output of the decoder a bit.
Teste Number 1:
Arduino Code:
void setup(){
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop(){
Serial.print('e');
}
OLS1_1
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TRUuyFDRGhI/AAAAAAAAA-U/yXAu0Sr1aJs/s720/ols1_1.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554397153315592722)
The first capture give me the following singal:
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TRUuylByYPI/AAAAAAAAA-c/kAhTVf80Yuw/s720/ols1_3.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554397161899319538)
And if i use uart analyser it gives me a 0x59(Y) and it's ok because it doesn't have the data to a 'e'.
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TRUuyQFkKHI/AAAAAAAAA-Y/oXGucqMGZFk/s720/ols1_2.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554397156278020210)
Refresh the capture:
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TRUu0N9l3TI/AAAAAAAAA-k/cWyMlH2xh-E/s720/ols1_5.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554397190067445042)
Now the signal gives me a 'e' :)
(http://http://lh5.ggpht.com/_i2teYMYP9C0/TRUuzDV7wzI/AAAAAAAAA-g/uj3ZlQ4zWmY/s720/ols1_4.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554397170036884274)
But like the next picture have a wrong position:
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TRUvzrrOa5I/AAAAAAAAA-s/Shh6-K0iupY/s720/ols1_5_bits.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554398280375233426)
That first test is not a very real situation because it doesn't have enought data. So let slow the capture.
OLS2_1
(http://http://lh5.ggpht.com/_i2teYMYP9C0/TRUx8uR1GnI/AAAAAAAAA_A/yEXBUSD2XKo/s720/ols2_1.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554400634716101234)
It's a 'e' but... (the label still not correct)
(http://http://lh3.ggpht.com/_i2teYMYP9C0/TRUyDduERoI/AAAAAAAAA_E/FqMy7_qqL5I/s720/ols2_2.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554400750530217602)
(http://http://lh4.ggpht.com/_i2teYMYP9C0/TRUyJlyIC-I/AAAAAAAAA_I/5MLsIPiObT4/s720/ols2_3.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554400855773940706)
a refresh capture and it's not a 'e'...
(http://http://lh4.ggpht.com/_i2teYMYP9C0/TRUyOPZ-MwI/AAAAAAAAA_M/U6hOGZh2QhE/s720/ols2_4.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554400935666397954)
(http://http://lh6.ggpht.com/_i2teYMYP9C0/TRUyTWOLFDI/AAAAAAAAA_Q/sL_7mTyo01o/s720/ols2_5.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554401023395304498)
Now trying to use the cursors:
(http://http://lh5.ggpht.com/_i2teYMYP9C0/TRU0ZPTzi0I/AAAAAAAAA_Y/68waMGiOF24/s720/ols3_1.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554403323642350402)
(http://http://lh4.ggpht.com/_i2teYMYP9C0/TRU0fqnkLMI/AAAAAAAAA_c/BXZ8wako05U/s720/ols3_2.jpg) (http://http://picasaweb.google.com/josescxavier/Ols_testes#5554403434052201666)
It's still a 'e'!
(http://http://www.picasa2html.com/bypicasa2html.gif) (http://http://www.picasa2html.com)