Help to make a 1MHz oscilloscope card BY ARM - Page 1
Forum section: electronics / projects

author: armin z
author_rank: Newbie
timestamp: June 02, 2023, 10:13:05 pm
content: Hello, I need help for my bachelor's project. I want a 1 MHz oscilloscope card connected to a USB port. Micro ARM is used and it provides its own power source through the USB port. Twelve-bit A/D has also been used. Thank you for your help.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: June 02, 2023, 10:21:52 pm
content: Quote from: armin z on June 02, 2023, 10:13:05 pmDoes that mean you already have a PCB module specified by your tutor, or do you need to select a MCU as part of the project ?Do you actually need 10MHz (heading) or 1MHz (text) ?https://www.eevblog.com/forum/microcontrollers/microcontrollers-with-fastest-adcs/msg2089687

author: armin z
author_rank: Newbie
timestamp: June 03, 2023, 05:06:22 pm
content: 1MHz

author: nigelwright7557
author_rank: Frequent Contributor
timestamp: June 03, 2023, 07:38:48 pm
content: You need a microcontroller with 1MHz A2D and USB interface.I have used a PIC with good results.I nicked the USB pic18f2550 project fromwww.waitingforfriday.comIt even comes with PC end software which could be used with an micro with USB.

author: NiHaoMike
author_rank: Super Contributor
timestamp: June 03, 2023, 07:41:44 pm
content: Get a cheap RTL-SDR or MSI-SDR, bypass the RF front end and connect an ADC driver amp to it.

author: radiolistener
author_rank: Super Contributor
timestamp: June 03, 2023, 09:05:51 pm
content: Well, you can start from ADC and FPGA selection.Since you're needs 1 MHz analog bandwidth, the digital bandwidth needs to be 5x higher (to have a frequency span where you can put analog antialiasing filter slope): 5 * 1 = 5 MHz. According to Nyquist theorem you're needs twice higher ADC clock than digital bandwidth. 5 * 2 = 10 MHz.So, you're needs ADC with a clock 10 MHz.Now you can select FPGA which will do data processing and push the data into USB for PC.Note that using CPU for ADC data processing is a bad idea, because CPU is too slow for such operations

author: MarkS
author_rank: Unknown
timestamp: June 03, 2023, 09:18:08 pm
content: I'm going to be "the guy"...How are you at the level in an EE course that you are required to make this and do not know how? How are you this far along and do not know that ARM is an architecture and not a "thing"? It's like needing to pull a trailer and saying you're going to use an engine. You are aware that this will be roughly 10% hardware and 90% software, right? Are you prepared to write the firmware? How about the software to read and display the USB data on the PC?I don't want to be negative, but at this point in your college career, you should understand this in far more detail. We can give you all the tips in the world, but that is moot if you don't grasp the basics. And no, we will not design this for you.

author: PCB.Wiz
author_rank: Super Contributor
timestamp: June 04, 2023, 12:45:19 am
content: Quote from: armin z on June 03, 2023, 05:06:22 pmYou did not say if your tutor has already defined a pcb/module to use?Examples are out there, here is just one low cost, basic pointhttps://tomeko.net/projects/dso138/index.php?lang=enThere were usb scopes based on fx2 ez-usb, and I see a new module looks real in 2023 for faster IO, based on the CH569 USB3 MCUhttps://blog.adafruit.com/2022/12/08/testing-the-new-ch569-usb3-device-host-chip-usb-development/

author: SiliconWizard
author_rank: Super Contributor
timestamp: June 04, 2023, 05:38:08 am
content: Did you try ChatGPT though?

author: coromonadalix
author_rank: Super Contributor
timestamp: June 04, 2023, 11:36:01 am
content: ChatGpt come on, not findings by yourself projects is lazysome old classic google fuuhttps://hackaday.com/tag/diy-oscilloscope/

author: hans
author_rank: Super Contributor
timestamp: June 04, 2023, 01:08:00 pm
content: Quote from: MarkS on June 03, 2023, 09:18:08 pmI can't tell as I don't know how far he/she is in his bachelor. For all we know this person is a first year bachelor, and we were all very green at some point.That being said, in my experience, guiding students only needs technical supervision on a macro scale. The micro scale stuff is thought with books, readouts, courses, a quick google search, and many students are diligent and excited enough to work through this when they want. Being this kind of autodidact is also whats expected when working in the field IMO. A junior engineer that continuously needs help with coding and soldering gets tiresome real fast. But then again, thats why they are junior.In my bachelor, much more of the supervision was focused on project stuff. Organizing your work, doing a proper literature research, arranging groups, preparing and holding useful meetings, building work ethics, and setting expectations and priorities to meet the deadlines set.So going back to what I just said, I've no clue about the level of the student and therefore I wouldn't be so harsh. But I do agree that the question does sound very uninformed, and given the complexity of designing an oscilloscope, would make it a challenging prospect. I wouldn't fault a student if its a 1st or 2nd year project. But if it is for a thesis, then he/she (and the educational program to some degree - because they also failed) has got a problem.Since its an educational project, I will answer in questions that are didactic in nature:- If you say an oscilloscope connected to an USB port, what is the purpose of the USB port? Is it just there for powering the scope and is it a standalone unit? Or does the data need to go to a PC to be processed and displayed? How are you going to make this data transfer? What pros/cons can you think of design decisions made here?- What kind of processor or controller do you intend to use? Is it ready-made hardware? Do you have an IDE and compiler installed? Do you have a programmer set up? Are there code examples you can start out with, for example, create a hello world or blinky project?- What peripherals do you need to use to interface with the ADC? How are you going to set the sampling rate? What design decisions would a 1MHz sample rate imply on your hardware and software architecture? What peripherals does the processor have to help with this? (suggestion: DMA)- How are you going to process (if any) the ADC samples? What kind of operations does an oscilloscope need to perform? Think about waveform capture but also triggering. What kind of data structure(s) is useful to have?- Stay realistic; aiming for 1MHz right away is could be a tall order. You could also first work at a lower sample rate and go from there.

author: dobsonr741
author_rank: Frequent Contributor
timestamp: June 04, 2023, 02:09:21 pm
content: Hello OP,It's great to hear that you're working on a bachelor's project involving a 1 MHz oscilloscope card using an ARM microcontroller and a USB connection. Building an oscilloscope card can be a challenging but rewarding project. Here are some steps you can consider:1. Hardware Selection: Choose a suitable ARM microcontroller that meets your project requirements. Ensure it has sufficient processing power, GPIO pins, and a USB interface. Additionally, select a 12-bit A/D converter that can handle the desired sampling rate.2. Circuit Design: Design the circuitry for the oscilloscope card, including the necessary analog front-end and the microcontroller interface. Ensure proper signal conditioning, amplification, and grounding techniques are implemented.3. PCB Layout: Create a printed circuit board (PCB) layout for your circuit. Follow best practices for noise reduction, signal integrity, and component placement. Consider factors like trace length matching, power supply routing, and proper grounding.4. Firmware Development: Develop the firmware for your ARM microcontroller. This includes USB communication, data acquisition from the A/D converter, and real-time data processing. You may need to utilize appropriate libraries and APIs for USB communication.5. User Interface: Create a user-friendly interface to display and control the oscilloscope functionality. You can consider using a graphical display or interfacing with a computer application via USB.6. Testing and Calibration: Once the hardware and firmware are ready, thoroughly test your oscilloscope card. Calibrate the system to ensure accurate measurements and verify the performance against the desired specifications.Remember to document your progress, challenges faced, and solutions implemented throughout the project. Good luck with your bachelor's project, and if you have any specific questions, feel free to ask for further assistance!————-OP could have gotten this response from chatGPT in 10 seconds. I kind of like the answer, it’s comprehensive and short at the same time and covers more bases then any of us humins brought up.

author: Nominal Animal
author_rank: Super Contributor
timestamp: June 04, 2023, 04:25:41 pm
content: With 12bit 1Msps, you'll need 2 MB/s bandwidth, and that means USB 2.0 High Speed or better.Most current microcontrollers (like the pic18f2550 that NigelWright7558 mentioned) support USB Full Speed, 12 Mbit/s, or about 1 MB/s actual data bandwidth. So, 8bit 1Msps, or 9-16bit 0.5Msps, or 17-24bit 333ksps, or 25-31bit 250ksps, because of the USB limitation.Teensy 4.0 and a fast enough 12-bit SPI ADC like MCP33141-10 can achieve this, because it has USB High Speed, and my own tests show it can trivially maintain 200 Mbit/s = 25 MB/s even over USB Serial. DMA needs to be used to ensure reliable sample interval. This probably means generating the SCK line using PWM or something, and using slave SPI on the Teensy; some small circuit depending on the ADC used may be needed to ensure regular sampling interval.Thus, you'd just need to design the SPI ADC board (some kind of frontend and buffer, and a voltage reference). With a bit of more work, one could make that isolated (using say TI ISO6741), powering it either from a 9V battery and linear regulator to 5V, or from a DC-DC converter (RFM-0505, TEA 1-0505) from the USB 5V and followed by a capacitance multiplier and/or LC filter followed by a LDO, making it adifferentialvoltage probe (by simply clamping its ground to the target ground or reference). Now that would definitely be useful for us hobbyists, too.

author: nigelwright7557
author_rank: Frequent Contributor
timestamp: June 13, 2023, 12:47:52 am
content: A basic scope isnt too difficult.It could be done in software if micro has onboard a2d or even off board a2d.The software has to read a2d data at correct data rate for pc screen.If the pc end just draws a set plot then that is easy.If you start getting into scaled screens. zooms etc then it starts to get a bit more complicated.I also added a spectrum analyser screen but this needs a FFT to change from time domain to frequency domain.It took me about 5 attempts to find a FFT that worked.Even then you have to know how extract the real data from the array.The scope will need a trigger mode. None, -ve and +ve triggers.Add mode and XY mode.