Monday, April 22, 2019

Zwei2: OpenSource Breadboardable Microchip PIC32MZ Board USB

Quite often i use PIC32 microcontrollers in my project, and as since quite some time PIC32MZ microcontrollers are there, with improved features such as USB HS and much more . i was not able to find a board which exactly fits my needs. so i made my self this little board ,i call it Zwei^2 , it is quite small,and can be put onto a breadboard.

Sunday, April 7, 2019

PIC32MX DMA Performance Test , PMP Parallel Master Port DMA Performance (Specifically PIC32MX470F512H)

This is going to be Quick Post showing Maximum Possible Performance of DMA in PIC32MX MCU, These tests are performed with PIC32MX470F512H running at 120Mhz

Short answer:
if you do not want to read further than. My result show DMA can perform 32bit transfers at rate of maximum 10Mhz. This result is quite similar to few other article on web, I do not have answer what exactly limit the maximum transfer rate to 10Mhz, but actual achievable transfer rate may vary depending on the System Bus availability,  As System bus is shared between all DMA , CPU and other peripheral.

I have also tried to trigger transfer from timer and external interrupt , any trigger rate above 10Mhz start skipping transfers,

As rule of thumb on PIC32 Maximum achievable trigger rate of DMA is System clock divided by 10, as i have read quite a few places each DMA transfer takes roughly  10 System Clock Cycles.

Experiment 1:

In this test I have setup PMP in slave mode, and we will using DMA to push data out of MCU over 8Bit Parallel Master port(PMP). PMP is also set to  Interrupt on each transfer  which will trigger DMA to copy one byte from a lookup table into PMDOUT register.
lookup table looks like this

uint8_t look_up[]=

This look up table will display like this on oscilloscope output :
RD is active low , which is set to active. and D0 to D7 shows lookup table on PMP 8bit Data output port.

DMA byte transfer rate ~100ns each transfer, DMA free triggered by PMP Transfer
Each Byte transfer trigger next DMA transfer of next byte, DMA also start automatically when when all bytes from table transferred, This test show Each byte take same amount of time of ~100ns.

Tuesday, November 13, 2018

DIY Open Source LM399 10V Voltage Reference, Second Revision

This is second version of my simple LM399 based reference board, when i made my last version i received quite few small feedback form eevblog forum member, so i have made few improvements in second reversion accumulating those suggestions.

Fist improvements is , Reverse probity protection, Now you can see in left corner a P-channel Mosfet and a resistor forming reverse polarity protection. Now it can save its self from damage caused by reverse polarity.
With reverse polarity protection comes this little red power led indicating supply to the board.
one major change is , now there is this 1k 10 Turn pot with 10PPM Opamp gain setting registers  with help of this pot now it is possible to adjust output voltage from reference to exactly 10.00000V. And it can be easily jumpered if not needed
There are few minor change in the PCB as well slots cut around actual reference chip is now wider, so now it is little bit easier to fit insulation foam cap, there are few minor changes on silk screen indicates input voltage, input and output voltage polarity.

Sunday, August 26, 2018

DIY Open Source LM399 10V Voltage Reference

while working on a project i needed a really stable voltage reference so i made my self  LM399 based 0.5 ppm/ C 10V refernce.
LM399 is nice shunt reference chip , Although initial accuracy is only 2% but accurancy does not matter , what matter is stability. Because i have recently calibrated Agilent 34465A 6.5 digit multimeter , i can easily find out absolute value. 

With 0.5 ppm/C and 10V range , its translate to 5uV /C. At this range of temperature stability it is way beyond what my Agilent 34465A can measure.

Sunday, August 5, 2018

Agilent 53132A 53131A 53181A DIY Open Source 3Ghz Channel Option 030 Board

As mentioned my Open source Agilent OCXO upgrade post, I mentioned, I have bought a Agilent 53132A a 12 digit universal counter, more capable than commonly known 53131A 10 Digit Counter. Both are really nice units though.

unit i have bought did you have ultra stable oven oscillator so i made oven board, this unit also have option for third channel, my unit did not came with any third channel.. which is capable for frequency up to 12.5 Ghz with correct option installed. These optional board contains RF Gain blocks and frequency prescaler chips. many people have made there own DIY units but none of the is open source. So i have to make one open source DIY Design.

Although i did not needed any RF counter, but i still decided to make my self 3Ghz prescaler. Because when i was doing oven board so it was no too much hassle to make one more board.

here is how board looks

Sunday, July 22, 2018

Open Source DIY Agilent 53132A 53131A 53181A OCXO Ultra High Stability Timebase Oven Upgrade

While i was working with my own GPSDO project. i need to have a frequency counter with descent stability so purchased my self a Agilent 53132A which is a 12 digit frequency counter , big brother to 53131A 10 Digit Counter. Both are really nice units.
But they unusable standard Timebase. So optional oven oscillator time base need to purchase. but 53132A and 53131A both unit are no longer available for sale. and neither of the Time base upgrades.

At first i decided to look around for time bases on online retail sites as already knew other people are selling them.
But i had few doubts , how well the whole thing is put together. what kind of parts they have used? How good is oven they are using? and Are they using same parts as per the original Agilent time base?
As it is quite normal for stuff listed on common online retail sites, It are quite cheaply made. and i found not even a single Time base who provides exact Bill of martial and give any specification details about the OCXO they are having. ofcourse OCXO is quite expensive so they all were using old OCXO which is totally fine but some data should be available.

Wednesday, July 18, 2018

TruePosition GPSDO 10Mhz Clock Standard Reference Distribution Board

As i am working on my own GPSDO project i had multiple of these Trueposition GPSDO modules, for using them correctly i put them into enclosure. here is how whole project goes.

Saturday, July 14, 2018

DIY Isolated 10Mhz Distribution Amplifier for GPSDO, Rubidium, TCXO Reference

while working on own GPS diciplined oscillator (GPSDO) project i needed few references so bought multiple of TruePosition GPSDO board form True Position LMU300 receiver unit. These Trueposition GPSDO are relly nice boards but they as usual only one single output, so made my self This little Distribution board to have up to 6 Isolated 10 Mhz sine wave output.

There is not many things in hardware but few LC filter to clean 10Mhz sine wave and few powerful opamp with isolation transformers to drive multiple 50Ohm load.

DIY Open Source 4.4Ghz RF Signal Generator AD4351 USB Cross Platform QT 5

A little while ago i was working a project for which i needed signal source in Ghz range , but my Arb Generator goes only upto 120Mhz. so i looked around a found many people having tiny little boards based on analog devices AD4351.

From AD4351 Datasheet

"The ADF4351 allows implementation of fractional-N or integer-N phase-locked loop (PLL) frequency synthesizers when used with an external loop filter and external reference frequency. The ADF4351 has an integrated voltage controlled oscillator (VCO) with a fundamental output frequency ranging from 2200 MHz to 4400 MHz. In addition, divide-by-1/-2/-4/-8/-16/-32/-64 circuits allow the user to generate RF output frequencies as low as 35 MHz. For applications that require isolation, the RF output stage can be muted. The mute function is both pin- and software-controllable. An auxiliary RF output is also available, which can be powered down when not in use. Control of all on-chip registers is through a simple 3-wire interface. The device operates with a power supply ranging from 3.0 V to 3.6 V and can be powered down when not in use  "

its basically a PLL which take a normal crystal oscillator frequency range of clock and can produce really high frequency in the range of 35 Mhz to 4.4 Ghz.


Hardware consist of a usb controller and AD4351 Board purchased off ebay .
I had made little USB board based on the PIC16F1459 , this board has nothing but a usb microcontroller , fuse and passives. this little board is part 3 of the USB IO boards i did in the past. More details  about this board are published in other post.

Tuesday, July 11, 2017

Simple 3A DC Current Meter Using PIC for PowerSupply

This project is in the series of different small projects i did for new learner in mircrocontroller stuff.
In this project i am using PIC16F1459 mcu for no particular reason , any MCU can be used to implement this project. all you need an ADC and Few GPIO to drive LED display .  I am using internal 10 bit ADC of PIC16F1459 MCU .

Though 10bit resolution is quite low , with 3 Amps rage we can only get resolution of about 2.92 mA per bit. I would love to have a least 1mA per bit or better , but for that either we need to limit our range to 1A or have more than 10bit ADC. To get higher bit in ADC require either external ADC chip or use an MCU with has 12 or 14bit ADC.

i just wanted to keep this project simple and low cost . so i am okey with 2.92mA per bit.

Good thing about PIC16F1459 is , that this part has on chip reference , which we can use with our ADC to increase accuracy and stability .

Internal reference can be set to 1.024 or 2.048 or 4.096 volts.  i am setting to 2.048V.