A super simple BBD tester concept - displaying stage counts

Started by Kevin Mitchell, December 10, 2019, 09:55:12 AM

Previous topic - Next topic

Kevin Mitchell

Not getting anything with 3004, 3007 and 3005. I'm wondering if 5v isn't enough.
  • SUPPORTER

ElectricDruid

The datasheet I've got doesn't seem to make itself very clear on this point.

The "Operating conditions" section suggests a minimum of -14V for Vdd and a maximum of -16V, which is a way of saying "-15V or nothing". But we know the chip *works* outside that range.

Most of the graphs further on in the datasheet seem to plot lines lines down to 5V, but *that is where they stop*.

So, on balance, I think 5V is absolutely borderline for these chips. But I'm reading between the lines of what it doesn't say in the datasheet and then extrapolating from  that!

Kevin Mitchell

We're in business, boys  8)

The -15v devices aren't up to running on -5v. -9 volts is fine. I also had to tweek the input bias so each device works OKAY. That one slipped my mind as the MN320X devices don't seem to be as picky - probably because they're operating closer to their nominal voltage.

Just verified my MN3010 chips are the real deal.

I'm only left to pretty up the code, layout a PCB and get some made. I'll check interest and share progress throughout this weekend.

Thanks for sharing your wisdom, guys. Progress would be far slower without your guidance - always learning.

-KM
  • SUPPORTER

Kevin Mitchell

#23
Here's the schematic so far. Trying to work out a better way to switch between MN3X10 and the larger package singles (3205, 3008). Now factoring in VGG switching my previous plan for a 3P2T will not do. So for now I've included a 2nd socket.



I'll show a video of the breadboard later.

-KM
  • SUPPORTER

Kevin Mitchell

PCB progress;


Instead of switches I've decided to see what a patch matrix would look like. This would be less stress on the PCB and make my life easier. I've also added 4 LEDs that should signal what the matrix is set to for testing.

-KM
  • SUPPORTER

Kevin Mitchell

#25
Some images to show what's going on with the power switching and bias level.






Delayed on the video because I'm trying to tighten the program up enough to get a more definite stage count. Playing with my code a 1024 stage BBD shows around 1058 stages or so. Not a hard fix I'm just rusty and relearning c++ :icon_lol:

I know the bias doesn't look right but it's working like a charm for all my functional devices. I will add a trimpot for clock speed and bias level just to have it.

This will be my first project I'm not etching myself and also my first design with SMD. Much fun  8)

-KM
  • SUPPORTER

peterveneno

#26
Hi Kevin,

Very intereting project and nice work you have done here so far.
I have an idea for your project that may help to reduce or eliminate the use of a switch to swap between the different BBD chips. This is only theorical and I am wondering if there is a way you can "scan" the pins of the chips placed through the Analog port of the microcontroller. I think this may be done using a multiplexor or and digitally controller analog switch IC. As I said this is only a theorical thought, maybe is impractical to do it, so let me know your impresions.

Kevin Mitchell

#27
Hey thanks for the suggestion! Was just about to update this thread.

Before I go lighting any cigars I've decided to dig even deeper into the rabbit hole just to be sure everything is BBD friendly and accurate. I now have the microcontroller's pseudo clock signal going to a CD4049 that shares the BBD's power supply. So now the clock matches the BBDs supply voltage, 0-9v instead of 0-5v.

Regarding the switching - with some serious thought one could possibly automate it. But that may not be safe for the devices and is way too much work for me to consider  :P
But I have updated the switching to be done with a single button and a couple CD4053 chips! The 4 digit display will show what devices are set to be tested. Each button press will shift to the next option.

I've gone back through armdnrdy's work to consider what problems he has stumbled on and I'm finding myself in the same situation. As the BBDs have varying bias levels the output levels would change as well. This is a problem for the comparator as it's set up to check for a small voltage threshold. Instead of sending a high pulse signal to the BBDs I'm going to try to send a 40khz sine wave through it and then rectify the BBDs output and see what I can work with.

I'll be happy with it soon enough.

-KM
  • SUPPORTER

Kevin Mitchell

#28
Hey everyone!
I blew the dust off of this for further development.

Writing code from scratch with a better perspective I'm getting better results with this circuit though still showing above the expected stage count, it is within the ballpark (MN3207 & MN3007 shows ~1060, MN3209 shows ~ 270, MN3204 shows ~580).



I've got a steady 20kHz clock signal and tested many devices at the arduino's ~5v supply, relaying stage counts through the serial monitor.

For a more safe & user friendly version I'm going to do a proto PCB and further develop the code as I believe the circuit is good - though I may add in the appropriate power supplies (+9v & +15v with flipped polarity on the BBDs) instead of just flipping the 5v polarity.

Random-ish question, any good relays to recommend for swapping these power supply signals? Considering this as an alternative to toggles. Perhaps I could use simple logic switching with a chip or transistors for adequate current sinking abilities to power the BBDs.

I'll be back later! Putting a PCB order in soon so I don't kill any more BBDs on breadboard (RIP MN3007 tested as MN3207).

EDIT:
Forgot to mention how I got around my previous issue with a comparator. Instead of using a comparator I've set up the code to set the BBD's input low, pulse 5000 times, set the input HIGH and count how many clock clicks it takes before the output goes HIGH. So I'm using a single ADC pin to measure the output before the test when the input is low and waiting for a change within a threshold (a programable comparator using stored values - if you will).
This simplicity also means I can move the project onto an ATTINY85 for a standalone tester!
  • SUPPORTER

aviherman5

Very cool! Please keep us updated! I'm a big fan of analog switch IC's.

Take a look at https://www.mouser.com/c/semiconductors/switch-ics/analog-switch-ics/ and sort for what exactly you need. They're typically really easy to use as I've had good luck with them in the past.

Do you, by any chance, have an idea if you're making this project open source?

Thanks!

Kevin Mitchell

Quote from: aviherman5 on June 16, 2022, 03:58:34 AM
Do you, by any chance, have an idea if you're making this project open source?
The final schematic and code will be public but my fabrication files will be private. So if anyone would like to put it on vero or bread board the code will likely need some slight tweaks to accommodate your wiring.
When I have PCBs and a final V1.0 of the code I will have PCBs,  pre-programmed chips & 14-pin ziff sockets available for purchase or trade.

Right now I'm bread boarding the *full* version of the circuit using an attiny85 & a couple shift registers to expand the outputs - mostly to drive 4 7-segment displays.
Ironing things out & writing the 16-bit lookup tables for the registers (which will change after I do the PCB routing). Much fun!

I've decided the polarity switching is best done with an on-off-on slide switch. I wanted something low profile and simple. Relays are still outside of my comfort zone and drives the build cost up needlessly.
I'm always overcomplicating things  :icon_lol:
  • SUPPORTER

Kevin Mitchell

Quote from: aviherman5 on June 16, 2022, 03:58:34 AM
Take a look at https://www.mouser.com/c/semiconductors/switch-ics/analog-switch-ics/ and sort for what exactly you need. They're typically really easy to use as I've had good luck with them in the past.
Thanks for the suggestion!
I've tried analog switching ICs before for this project (the CD4053) but wasn't able to power the BBDs and would require more work or specialized ICs. Those are designed for small signals and not power supplies - even though it would be relatively low current it still wasn't up to the task. I'm too lazy to *make something work* when there's more appropriate alternatives.
  • SUPPORTER

Kevin Mitchell

#32
Still at it and hoping to light some cigars tonight!
I've successfully moved the standalone version of this project over to an ATTINY85 & two shift registers in series to drive 4 segment displays. I've got a few more lines to write but I'm exited to see what it yields later today.

For the passed year I've been dramatically improving my C++ skills. What this means is I've been converting my code to no longer use the basic arduino marcros and begun to get familiar with register & port manipulation routines to speed things up. I also finally took the plunge to learn how interrupts work which is totally needed for this project.

So there will be two versions of this project. One will be open source where you can use an Uno or Nano & accompanied breadboarded circuit without having to modify the code. The stage count will simply be displayed on the serial monitor.
The other will be the standalone ATTINY BBD Tester and will have it's own PCB and proprietary code.

Since this thread was for the development of this design I will start a new one once there is a final product to share. There I will include a writeup for details of the open source project as well as progress of the standalone PCB.
  • SUPPORTER

aviherman5

This is so very cool! I've always had a thing for making really cool and proprietary test tools and this is the ultimate one! Thank you for deciding to make it open source!

cabintech

Some faults we have been seeing lately in MN3207 devices is what appears to be a VDD to GND short. As soon as power is applied they get hot and if you don't current limit the power supply things start smoking :-)

You might want to consider this in your design if such a device is plugged in for testing...

Kevin Mitchell

#35
Quote from: cabintech on June 25, 2022, 08:56:53 AM
Some faults we have been seeing lately in MN3207 devices is what appears to be a VDD to GND short. As soon as power is applied they get hot and if you don't current limit the power supply things start smoking :-)

You might want to consider this in your design if such a device is plugged in for testing...
This is definitely something I had considered. One feature for my full version was means to detect shorts or reverse polarity so it automatically shuts down to prevent further damaging anything.

Also, I'm honored that my one-stop-shop for synth chips chimed in on this. You folks are great!


Onto an update, no cigars just yet. I believe the extra processing required for the analog read function (even in free running mode) is causing the displayed stage counts to be slightly above what it should be - in hand with the use of an uninterrupted clock while everything else also happens.

So I moved to using the pin change interrupt. What this also means is I can no longer use the window of the BBD's output straight into the arduino (or through a divider for 9-volt on the BBD). I had included an external comparator to get around this.

Before anyone calls me out - the integrated analog comparator (along with comparator interrupts) in the atmel chip was an afterthought even though Electric Druid suggested it a long time ago!! So now I'm in the process of implementing the function internally. Now with a comparator this also means we have a moving target of different BBD's output results. So I have to include a routine for the user to set the comparator threshold via a potentiometer before each test. The plus side of this approach is you can see if a BBD is passing signal before performing the stage counter test.

Things are slowly improving as I hash it all out. Since I'm using port manipulation commands from the datasheet I've been including notes and chapter references for every line so others can adapt the code however they please.
With the use of port manipulation, my open source code as-is will ONLY work with ATmega328P boards.

More development coming soon!
  • SUPPORTER