Ive been interested in building a computer based oscilloscope. I currently own a Model DSO 201 Pocket oscilloscope which is based off of the arm which uses a Cortex-M3 which i think the clock runs around 72Mhz?
The man purpose for this project is i want a frequency meter for up to around 50mhz, to program remote control's at a certain frequency.
I honestly dont have a long history of programing just a little here and there. So i have some questions if there elementary sorry.
1.What would be the limitations of using the Arduino/ATmeg 8 bit platform vs using chipkit/pic32 32 bit platform?
2.What would the max frequency i could read and mange to make into a readable output?
Is this a waste of time and should be thrown out the window?
I know very little about the chipkit/pic32, but I looked into building an oscilloscope around an Arduino a little while ago. The atmega processors in the Arduinos have a very slow ADC, limiting the bandwidth to a few kHz. To to get any kind of decent bandwidth, you need an external ADC. Depending on the bandwidth you are looking for, you may then have problems reading the ADC output into RAM fast enough - you really need a processor with DMA capability.
dc42:
I know very little about the chipkit/pic32, but I looked into building an oscilloscope around an Arduino a little while ago. The atmega processors in the Arduinos have a very slow ADC, limiting the bandwidth to a few kHz. To to get any kind of decent bandwidth, you need an external ADC. Depending on the bandwidth you are looking for, you may then have problems reading the ADC output into RAM fast enough - you really need a processor with DMA capability.
Yeah, thats what i was think along the Arduino, ADC is Analog to digital convert right? which just turns an analog signal into a high or low?
What is DMA capability? if u dont mind me asking.
and as far a bandwidth could you give me a bit of knowledge on what bandwidth is? is it like bus width like 8 bit and so on?
sorry if these questions seem elementary, im new to the whole programing aspect of electronics.
Yes, ADC stands for analog to digital converter. It is an i/o device measures a voltage on an input pin and turns it into a number that you can then process. The atmega processors have a slow ADC built into the chip, but you can connect a faster ADC chip to them.
DMA stands for direct memory access. It is a facility to transfer data directly from an i/o device (such as an ADC) into RAM.
Bandwidth of an oscilloscope is the maximum input frequency that it can handle. For example, if you want to display and measure all audio frequencies, you need an oscilloscope with a bandwidth of at least 20kHz. For a digital oscilloscope, the bandwidth is related to sample rate (the rate at which the ADC takes voltage readings and converted them). You need a sample rate at least about 2.5 times the highest frequency you want to display.
There is a sketch that turns an Arduino into an oscilloscope (with very low bandwidth) - search for "arduinoscope".
To be explicit m = milli = 1/1000, M = mega = 1000000.
The ATmega328 has a counter mode where it counts transitions on a particular pin - I think this will work up to near the processor clock rate of 16MHz, but check the datasheet for details. Since timer0 is used for millis(), delay() etc, you need to use timer1, setting its clock source to the T1 pin (Arduino pin 5). But it will take some studying of the timer1 section of the ATmega328 datasheet...