Username:    Password: Remember me
SCANALOGIC
ikalogic's easy to build high performance logic analyzer
By Ibrahim Kamal
Last update: 4/9/09


NEW : Follow the development of SCANALOGIC 2 here!
Your comments, ideas, and remarks are important to us and will be taken into consideration!
   

Here is one project we are really proud of, and we hope that its simple design will encourage you to build your own, and use the provided software to obtain your own logic analyzer for less than 10$.

This device can help you in most of your projects, it's an essential measuring device when it comes to digital electronics.

Those pages will discuss all what you need to know to understand how it works, and build your own, and use it.

1.What is a Logic Analyzer?
You could read the definition on wikipedia, but as you may already know, I have my way of explaining things to beginner!

I would say that a logic analyzer is a device used to view the voltage of "logic" electric signals that are usually too fast to be measured by a voltmeter. A logic analyzer it not exactly like an oscilloscope, as it cannot measure analog voltages. Actually, it can only measure the logic state of a signal, see if it's a 1 or a 0. '0' being Zero volts and '1' being 5V (for classic TTL logic devices).

The main keypoint that makes a logic analyzer better than another is the sampling rate, or the maximum number of samples that can be recorded by second.

From a functional point of view, a logic analyzer records the states of logic signals, usually after some 'triggering condition' is met, then, recorded signals are displayed on a screen for in depth analysis.

2. Introducing Scanalogic
Scanalogic is a simple, yet effective logic analyzer specially designed to be easily built by beginners, so that it can be used for debugging and analyzing their projects.

It can be used at sampling rates as high as 4 Million Samples per second. It has only 4 channels, but that is more than enough for most hobby projects, further more, most communication buses nowadays have very few transmission lines, ranging from 2 to 4, so decided 4 was more than enough.

Scanalogic is a combination of a hardware (figure 2.a) and software application (figure 2.c). As you will see later, the hardware is as simple as it can get: An ATMEGA16 micro controller and a NAND gate! The code to be loaded in the micro controller is provided at the end of this page.

Figure 2.a

The hardware records the samples at the desired sampling rate, then send them to the PC application via the UART port of the microcontroller and the RS232 port of the PC. If your PC doesn't have an RS232 port, as mine, you can still use a USB-RS232 converter cable, as shown in figure 2b.

Figure 2.b

The software is made with visual basic. A setup file is included at the end of the page. It is compatible with windows ME all the way up to XP (or maybe Vista, can someone confirm?).

The Scanalogic software controls the hardware (as you can see, there are no buttons on the hardware) It allows you to setup the triggering conditions, to start sampling, to receive sampled signals, display them, analyze them, and even store them for later analysis.

Figure 2.c
NOTE: The software is actually in beta testing, more functions are coming in next versions like:
- SPI, I2C, UART Decoding
- Saving Screen-shot to JPG file
- Post triggering data sampling.


3. Building the hardware
There are no secrets held for the hardware, as the real power of this logic analyzer comes from the innovating source code, loaded inside the ATMEGA16 microcontroller.
As you can see in figure 3.b, there are only a microcontroller, and a NAND gates IC and all of it resides in an old CDROM power supply box. The DB9 connector for serial communication is firmly glued to the box with an epoxy resin. The whole is powered from the RTS line of the RS232 connection (pin number 4), so there is no need for external power supply (but you may as well use any 5V power supply if

Figure 3.a
your serial port cannot deliver the required current).

As you can see in the schematic below, there are no level shifting IC like the MAX232, but believe or not, most if not 100% of current serial communication hardware is compatible with the approach below, where the signals are simply 'inverted', but not shifted to +/- 12V. (Originally, in the RS232 protocol, a logic 1 is represented with -12v, and a logic 0 is represented by +12V).

Pin 4 of the DB9 connector is used to power the device, as it rises to +12V (theoretically) when a communication is being carried out. The Diode D3 makes sure no negative power supply is applied to the device, and the 5.1V zener diode D4 prevent supply voltage from rising above 5.1 volts. Using the handshaking signals as a power supply is far from being my invention, it have been used in a lot of devices like mice and old external keypads...

Figure 3.b
The probes are directly connected to micro controller. A better approach would be to add buffers to protect the micro controller but, for simplification, I didn't include one.

The crystal oscillator X1 can be anything from 1Mhz to 16Mhz, but remember that the clock frequency of the microcontroller directly affects the maximum sampling rate, according to the following equation:

Max_Sampling_rate = Clock_frequency/4


That is simply because, the most efficient code I could ever write, needs at least 4 clock cycles to sample and store new signals.

D1 is simply a red LED, used to signal if the device is powered up and correctly functioning.

Download the hex file to be loaded into the ATMEGA16 for different crystal frequencies:
- 8 MHz
- 12 MHz
- 16 MHz
(Need hex files for other frequencies? request for it in the forum)


4. Downloading and using the PC side software
Scanalogic software, especially this first version is very simple and intuitive.

After you have plugged the Hardware, the configuration is simply made via 3 steps:
1- Press F2 to chose the crystal frequency at which your microcontroller is running, and to chose the COM port to which the hardware is connected.
2- Press F3 to chose the sampling rate
3- Press F4 to chose the triggering condition

Then you simply need to Press F5 anytime to start the sampling. Note that if you chose a triggering condition, the sampling will only start when this condition is met.


Download the installation file for SCANALOGIC


I hope this article was useful. Any comments and further questions are welcome in the forum below.


Project under construction,
register to the forum to get informed of updates by e-mail.



Discussion (Last 15 posts preview...)
Preview of the last 15 messages discussing this page. Messages are sorted from the newest to the oldest.
Posted by:
User avatar
ikalogic

on: 09 Mar 2010
Re: Scanalogic
['Quote ]

Quoting kingkernel: Can you add a Timeline on top of the view. So you can easily view at what time you have a rising edge, etc.


It's planned, i am working on it already :) thx
Posted by:
kingkernel
on: 09 Mar 2010
Re: Scanalogic
['Quote ]
Can you add a Timeline on top of the view. So you can easily view at what time you have a rising edge, etc.
Posted by:
User avatar
ikalogic

on: 09 Mar 2010
Update on the software
['Quote ]
Meanwhile, as i am advancing on the software, here are some of the latest finished features:

* as well as unlimited markers, you can have unlimited "delta T" measurments between any of those markers.
* Each delta T can give you the frequencies and duty cycle for each of the 4 channels
* I have totaly upgraded the user interface, you can now very quicly add 2 markers and a delta T measurments between them only in 3 click (by using the ruler icon at the top toolbar).
* Delta T measurements are "linked" to the markers, meaning that if you move a marker (right click on a marker, then click Move) the time measurement will automatically adapt itself to the new position of the marker.
* Now you can export a screenshot to many more picture formats for better compatibility (EMF, GIF, JPG, BMP, PNG). Notice that this software is axed to researchers/students that need to quickly add waveforms into their reports.

*A brand new feature is the Capture compare: This allow you to load another saved waveform (or a recently captured one), and view it on the actual waveform. the last waveform will be dashed, so that you can see the difference (see attached file)

* You can show/hide the compared waveform, but best of all you can 'skew' the loaded wave form right to left as you wish! (using the little hand icon on the top toolbar)

* Have added Undo, Redo feature, up to 150 undo/redo.

------

What i'll be working on:

Protocol decoding, and signal generator (to use the generator feature of scanalogic 2). The signal will be anything from a simple edge, to a square clock, a varying PWM signal, or UART data streams. the best thing is that there will be a "Mixed Mode" where you can use 2 channels as output, and 2 as inputs to simulate a master sending commands a see the answer of the device under test.
Posted by:
User avatar
ikalogic

on: 09 Mar 2010
Re: Scanalogic
['Quote ]

Quoting xiaolaba: hi guy,

We have read your message about the log file.
that Scanlogic was great for fun but no yet used for real work because only 4 bits available. sorry.

We had try to work out the solution whether PortB was able to complete at least an 8 bit bus, but not yet done, means to both firmware and the hostware. really sorry about that. anyway, it is a great project to go with, keep walking.



Yes, i know it is a strange decision to do only 4 bit, but here is my way of seing the thing:

8 bit allready exisits, at higher prices. i wanted to target a clientele who, like me, only use buses like SPI, I2C, UART. i don't want to re-invent the wheel! ;)
Posted by:
xiaolaba
on: 09 Mar 2010
Scanalogic
['Quote ]
hi guy,

We have read your message about the log file.
that Scanlogic was great for fun but no yet used for real work because only 4 bits available. sorry.

We had try to work out the solution whether PortB was able to complete at least an 8 bit bus, but not yet done, means to both firmware and the hostware. really sorry about that. anyway, it is a great project to go with, keep walking.
Posted by:
User avatar
freddypl

on: 16 Feb 2010
Re: Scanalogic
['Quote ]
Look at this post [link]
Posted by:
ernst99
on: 16 Feb 2010
Re: Scanalogic
['Quote ]
Thanks Freddy,

My issue is:

I need to get info what ATMEGA8 Hardware PIN is used Tx or Rx for example
The other what I need what are the PIN for the four Sample IN data line
They seem to be changed in regard to the original PIN layout of the ATMEGA16 from Ika

Thanks
Ernst
Posted by:
User avatar
freddypl

on: 15 Feb 2010
Re: Scanalogic
['Quote ]
Hi
look at all tpoic, there was ATMEga 8 and ATMega 32 version.
Posted by:
ernst99
on: 15 Feb 2010
Re: Scanalogic
['Quote ]
Hi Freddy,
Thanks a lot so far.
Unfortunatelly the link is pointing to ATMEGA16 layout.
I´m looking for the PIN layout for the modified ATMEGA8 code here in the forum.

Best Regards
Ernst
Posted by:
User avatar
freddypl

on: 15 Feb 2010
Re: Scanalogic
['Quote ]
look there
http://www.ikalogic.com/scanalogic_home.php
Posted by:
ernst99
on: 15 Feb 2010
Re: Scanalogic
['Quote ]
Hi all,

I found the code for using ATMEGA8 here, but what i need to get as well would be the exact PIN layout based on the ATMEGA8 code. I´m sorry but I can´t read this out of the source code. Can one of you guy who had ported the code to ATMEGA8 be of help pleased ?

Many thanks
Ernst
Posted by:
pasanlaksiri
on: 13 Feb 2010
Re: Scanalogic
['Quote ]

Quoting ikalogic:
Quoting C-mon: Can you make a hex file for atmega32 on 8Mhz and 16Mhz? Don't have atmega16 and atmega32 should work also because it is basically the same.

I thought it would work fine but I get an error when reading the programmed HEX:
WARNING: FLASH byte address 0x033E is 0x54 (should be 0x55).. FAILED!

And after that, when using the program, I get the error that hardware is not found.


That correct, the hex file is definately different between ATMEGA16 and 32..

here is the hex file for atmega32


Thank you very much for the ATmega32 Hex Files. Because ATmega16 is not available any more in our local markets.
Posted by:
pasanlaksiri
on: 10 Feb 2010
Scanalogic
['Quote ]
Woow this is really a piece of art. I just ordered two ATmega16 chips.
And I install your software without any trouble on my PC that its running WIN7.

Thanks
Posted by:
zemuro
on: 03 Feb 2010
Re: Scanalogic
['Quote ]
Hi Ikalogic!
When developing my synthesizer\controller project, I needed something to analyze MIDI data stream. After some googling I came upon Scanalogic One, developed a PCB in EAGLE, etched it and assembled the thing in no time. It didn't work at first, then I figured out that I soldered 74hc00 back to front - and after a while it was up and going perfectly. Thank you for this brilliant machine, it wonderfully expands my setup. :D
Today I downloaded the source code for pc software, I want to implement some features like serial data analysis and rate auto-detection. Scanalogic One is very simple, but highly usable instrument, I hope all is going well with development of it's big brother, Scanalogic II. Good luck to you, Ika and all guys from this forum!
Sorry for possible mistakes in my English. :)

Ruslan Zemlyanikin
Vladivostok, Russia.
Posted by:
albert.miao
on: 27 Jan 2010
Scanalogic
['Quote ]
Hi Guys,
Did somebody run it on Arduino platform?
You have to be a member to post replies.
Username: Remember me
Register now! it only takes an instant.
Forgot your password?


 
Unless mentioned, all content is written and designed by Ibrahim Kamal, copying is prohibited and unethical
ikalogic.com: Electronics and Robotics related projects.
All content on this site is provided as is and without any guarantee of any kind. We cannot be held responsible for any errors, omissions, or damages arising out of use of information available on this web site.
Creative Commons License
IMPORTANT COPYRIGHT NOTE: Electronics and Robotics Articles by Ibrahim KAMAL are licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License.