miniscope v2a

Miniscope v2a is an alternative firmware and dll library for AT91SAM7S64 (miniscope v2) oscilloscope. Both project share same hardware and GUI application.

Main difference from basic firmware is DMA usage for ADC and moving some of the functions like triggering from hardware and firmware to PC side.

Miniscope v2 Miniscope v2a
Reading ADC samples using blocking loop. Reading ADC samples using DMA (PDC).
Single data buffer (selectable up to 14 kB). 3 x 4096 B data buffers organized as FIFO used by DMA and as USB transmit buffers.
Can not sample and transmit data at the same time. Simultaneous sampling and transmitting data to PC possible.
Sampling speed selected by PC program. Fixed (fastest possible) only one sampling speed. Lower sampling speeds are simulated by data decimation by dll library.
Trigger conditions checked by device. Device is sending samples continuously. Triggering is simulated by dll library.
Fixed RC anti-aliasing filter - works only for highest sampling frequency. Operator must sampling frequency according to input signal frequency range. Fixed RC anti-aliasing filter + digital decimator filter.

Moving functionality from device to PC makes debugging easier and cheaper (no JTAG required). Lots of PC memory and fairy fast data processing makes it possible to implement complex trigger types. Size of continuous data samples set is no longer limited by size of microcontroller memory.

Main disadvantages of miniscope v2a comparing to miniscope v2 are requirements to PC CPU processing speed, PC responsiveness and USB data link bandwidth. PC must handle data stream of 122 x 4096 B data frames per second. If data frame is lost, shape of observed signal will start looking strange. It may happed if you try to run other CPU-heavy application same time. That is the reason why miniscope v2a can not fully replace miniscope v2 and this firmware is part of the separate project.

2010.03.11 Initial release. Some code is naive at very best, but still useful. Some changes will be required to passing data to GUI application - currently screen is updated with every little data frame.
firmware: armscope_dma_20100224.7z
dll library: armscope_dma_dll_20100311.7z

2010.03.20 Library version 0.1.2: armscope_dma_dll_0_1_2.7z:

2010.04.18 Library version 0.1.3: armscope_dma_dll_0_1_3.7z:

2011.02.06 Library version 0.1.4: armscope_dma_dll_0_1_4.7z:

2010.04.06 Firmware: armscope_dma_20110406.7z. Changed armscope_board.h: entering high-Z state and disabling pull-up on pins driving 4066.
Note: dll library is using version string to identify firmware, if it can not device make sure that id inside firmware and inside dll are matched.