Hi all, I'm finishing the development of a simple "oscilloscope" for mini 2440 (Win CE 5.0). You can see a first screenshot here (my Italian blog) http://www.sereno-online.com/site/2010/05/12/mini-2440-oscilloscope/ If someone is interested in the project, as soon as the source code will be stable I will release it (GPL license). Bye Paolo
Mini 2440 Oscilloscope
Congratulations Paolo! Is really an interesting project. What graphics library are you using? DirectX? Fernando
Paolo, Yes, a great idea. I have wanted a low-level DSO for years and have looked at many options. Do you have any suggestions about either integrating a USB oscilloscope probe or maybe a high-speed ADC off the SPI interface to get a oscilloscope usable, say 1 - 5MHz Dave
Hi all, @Fernando at the moment I trigger the data acquisition and, at the end of it, I plot the 4 channels on the TS, but there is a "real time" plot method of qwt library useful to display A/D data as soon as they come. I think it will have a refresh rate (on the TS) at about 10Hz. Yesterday I acquired data at a sampling frequency of 1 KHz and today I'll try to go faster in order to discover the limit. @davef The idea about integrating the USB oscilloscope is good, I did not know that exist such a devices. I think the main problem will be implement the communication protocol (I had a look on Internet about USB protocol and is really complicated). At any rate, I'm curious to see how to connect devices like the USB oscilloscope, if you are working on it please let me know, we can exchange ideas. Keep in touch Paolo
Hi, tonight I finished the first release of my dataLogger for Mini 2440 ARM board. The name for this version is “buggy” and you can understand why ;-) The code is delivered under GPL license. At the moment the source code is not completed, is badly written :-( but it allows to acquire the four 10 bits A/D channels of the board at a sampling rate (for now) of 1Khz. You can download the code from this address http://www.sereno-online.com/uploads/dataLogger.zip Any comment, idea, suggestion or feedback is welcome. I think it will become an useful instrument for home laboratory and for experiment ;-) Have Fun! paolo
Paolo, Can't comment on the code as I only use C. I have done a lot of datalogger work, but on the ATmega32 8 bit platform. You mention an ADC problem. We use the SC32410 at work, so describe the problem and I'll see if I can get an answer for you. I read that the ADC can sample at 500kHz, so I expect that you should be able to look at a 50kHz waveform, with good reproduction. Also, look forward to a port to Linux using Qtopia 2.2! Regards, Dave
Dave, Sooner or later I will port it on Linux with Qt 4.6.2 (about Qtopia 2.2 I think will not be possible, the associated Qt library version is too old and I need at least Qt 4 for the plotter). The main problem I have, regards the Linux Kernel Driver for the 4 ADC. During my first attempt with Linux I was able to read only one ADC (the first one). Do you know how to modify the kernel in order to read all 4 ADC? Regarding the sampling frequency at the moment I can sample at 1Khz, but I'm sure, the board can do a lot more! I have to investigate. Regards Paolo
http://members.cox.net/ebrombaugh1/embedded/mini2440/index.html suggests at the bottom that you just need to find where in the kernel to enable them! Couldn't see anything in 220.127.116.11 for individual channel settings on the the ADCs. http://lxr.linux.no/#linux+v2.6.32/arch/arm/plat-s3c24xx/adc.c#L75 does this help? I am not clear on this . . . how many ADC lines does the touchscreen use. Two? Seems to me that you then couldn't them for sampling inputs as well. Wouldn't SPI high-speed ADCs be a better option for an oscilloscope? For display of datalogger information you have an appropriate solution.
OK. Looks like 4 channels are used for the touchscreen and 4 should be available for general use. But, you already know this!
Hi Dave, thanks for the links and the info. I will have a look on high speed SPI ADCs, it sounds really interesting :-) paolo
http://www.friendlyarm.net/forum/topic/974 look here, i have the same problem...
Hi nils, I know, at the moment I don'tk know how to activate all the ADC in the kernel. I'm going to try some kernel config, modify and compile, but it will take time...(and I'm not an expert on this)
Paolo, I don't fully understand . . . you said at the begining: *** but it allows to acquire the four 10 bits A/D channels of the board *** But, you can only acquire one of them, as stated a bit later. It looks like you can have the touchscreen interface or you can use those 4 channels (for a total of 8 normal ADC channels.) 1 or 2 channels is good enough for an oscilloscope. Pages 16-1 to 16-9 in the S3C2440.pdf are the relevant pages on the ADC. Judging from the amount of information on using the ADC as an ADC versus touchscreen control seems to suggest they do not expect people to use them as general purpose ADCs! Yet the conversion rate of 500KSPS (resolution not stated) is 30 times faster than the ATmega32. Is there nothing relevant in: http://lxr.linux.no/#linux+v2.6.32/arch/arm/plat-s3c24xx/adc.c#L75 The links to these two files seem to be broken: #include <plat/regs-adc.h> #include <plat/adc.h> If you do a search on <plat/adc.h> and <plat/reg-adc.h> there are lots of hits. Another key phrase is <hwmon>. Ah, this looks useful: http://lxr.linux.no/#linux+v2.6.32/drivers/hwmon/s3c-hwmon.c#L71 Dave
Hi Dave, *** but it allows to acquire the four 10 bits A/D channels of the board >>> The first version of the data logger (running on win Ce 5.0) allows to acquire 4 channels. *** But, you can only acquire one of them, as stated a bit later >>> Right now, running my data logger on GNU/Linux allows to acquire only one channel. The situation is this: At the moment I need to acquire 3 channels (100Hz sampling is enough) in order to study the behaviour of 3 signals. I tried with Linux but I was not able to do that so I wrote a first version of the data logger. I have to say I don't like to use Win CE, I would prefer linux, but I had no time to study the problem. So, the problem is this one: I would like to acquire more than 1 single channel (4 will be great for me) and I wonder if I can do it with my data logger utility running on GNU/Linux. The solution you wrote me before will be the best: using a high speed ADC on the SPI and show data on the touch screen. Thank you Paolo
Paolo, Another interesting solution is this: http://www.knjn.com/docs/KNJN%20Flashy%20boards.pdf Using a Flashy version K/L and a Pluto II FPGA board all one would need to do is write a small program to access the data when required using the protocol on page 25 and then someone who knows how to use Qt 4.6.2 and qwt (plot library) to display that information on the touchscreen :) And have the controls available that you see on page 9. It uses the RS-232 interface. Big job? Regards, Dave
Hi Dave, it sounds interesting. The thing I like of this solution is the fact that it uses RS232. There is a Qt extension for serial communication so it is not a big job implementing the protocol. Thanks for the link, the board is really interesting I have to check how to buy it (I don't know yet if they deliver to my country). Regards, Paolo
Paolo, I'd suggest reading through their forum http://www.fpga4fun.com/forum/ for feedback from users. There are some limitations and if you are going to fork out $150US you should be aware of them. I thought it would make a nice accessory for the FriendlyArm dev board. I am going to talk to a contractor we have working on our project as he has developed a full-sized FPGA based oscilloscope. Shipping problems? Are you in Italy? Regards, Dave
Hi Dave, thank you for your advice. I'm going to read the forum. About shipping problems, yes I'm in Italy and sometime I have problems, but I have friends in Munich (I lived there for years) and I can manage the situation ;-) Regards, Paolo
Hi Paolo, I've developed the same application (oscilloscope) that read the four 10bits ADC... I can read at max rate of 3KHz... Some time ago I've developed a class for c#/vb .Net that allow to read the adc from Mini2440 board (I hope it helps :P ). To read the chip registry I've used Open CF dll (PhysicalAddressPointer) that allow you to map physicaladdress. Now... the max rate I can achieve (3Khz) I think is relative to the calling time of the routine in the Open CF dll. How have you solved this problem? Thnx a lot (sorry for my bad english... if you have an email I can write to you in Italian)
@Stranet So far I have not found a solution to this problem. I think we can exchange useful information. If you want to write me in italian you can do it here: http://www.sereno-online.com/site/contact/ Thanks paolo
Hi, I need very much this oscilloscope. The source is verry important for me, i need do a oscilloscope in my job in MINI2440. This is perfect to me. If anyone have this source please send it to me. Thx! Jorge firstname.lastname@example.org
HI all I can't download this file : http://www.sereno-online.com/uploads/dataLogger.zip can u help me?
Unfortunately Mr. Paolo changed all the structure of it's site and it's impossible to find anything on it. The links on the main page leads to nowhere. All the links I have found in internet that leads to Paolo's site lead to nowhere. This is a shame, unfortunately.
Try http://sereno-labs.com/uploads/dataLogger.zip and have fun! Bye Paolo
What kind of oscilloscope? Try to specify a few things like sampling rate, equivalent analogue bandwidth, how much data you need to buffer, update rate, etc. I think the most appropriate approach is to use the mini2440 to capture USB data and you write a Qt application to display the data. Search for <USB oscilloscope> <Pico> Are you going to have an operating system on the mini2440?
Dear davef, I am uploading wince6.0 image come with mini2440 board in the CD.How can I add Qt 4.6.2 and qwt with the image of wince6.0. Please enlightened me
need some help in using Device Emulator in Platform Builder after Building wince 6.0 nk.bin. the mini2440 sdk , win-mobile-6 sdk emulator are installed it gives me this: Error: The emulation layer does not support the functionality that is being accessed.
Manoj, Sorry, I haven't got a clue. Never used Windows on an embedded platform. I would suggest both you and Hvzz start new threads
Dear davef, I also wanted to make a oscilloscope type of application where data coming to rs232 of mini2440,that has to be plot with respect to time.I am starting with wince with qt 4.6.2 as paolo suggested.Can you suggest something else for my the development of my application. Waiting for you valuable suggestions. my mail id is email@example.com Manoj
I thought Paolo was using Linux. However, you need to state how often you want a new plot and how much data you want to process. What baud rate on the RS232? Processing data that you can push across a RS232 link sounds quite undemanding. Seeing as the data is in a digital format it sounds to me like to just need to process the data and display it using something rrdtools. In the QT world there is QT plot ... drop that into Google. Also, as most of my applications are written in PHP, I played around with PHPplot. My web browser is from the demos file in QT, but I run nothing else under QT. Fortunately the Pengutronix BSP has boxes you can tick for these applications, so the pain level is quite low.
Don't worry about the USB protocol. No need to understand the low USB implementation. Look at Linux USB gadget API framework. Very simple to use. http://www.linux-usb.org/gadget/ Can't find the images for this project, can you provide a direct link please?