11/28/2014 at 21:14 •
I've been really busy recently, and I doubt I'll have much time soon. Along with that, this project won't actually be very useful to me and there are several (simpler) ones which I am doing. Therefore, I'm 'pausing' this project: it's no longer actively under development but I might continue in the future.
I have made sure the Dropbox link to the KiCad files is up to date, so if anyone wants to use the project they are welcome to.
09/12/2014 at 18:44 •
It's been quiet for a while, so I wanted to give people an update. OpenGen itself is currently not being developed, because I have put it on hold while I work on another project which will be critical to its functionality- the BTI framework. Since OpenGen will generally be pretty small, the interface will be very limiting; a 1602 LCD won't be able to display all the information necessary and it would require a more processing power and mucking around with cutouts (I don't like cutting out display windows) to add a graphic LCD. Instead, OpenGen will be controllable over Bluetooth by a phone, tablet or dedicated BTI interface. This will allow a simpler and easier flow of operation.
More info to come!
08/20/2014 at 19:17 •
I have just finished the R2 schematic (in time for the Hackaday Prize deadline!). There are lots of changes, but here are the major ones:
- Disconnected VBUS from 5V.
- Added battery protection (2xBQ29700) and power switch.
- Changed output amplifier configuration.
- Redrew schematic to use hierarchical sheets. While it's still not as good as it could be, it should be readable now.
- Recalculated some resistor dividers on the analog board which were wrong.
- Added test points.
- Completely changed power supply (see schematic for details). No longer using MC34063.
- Added battery monitor connection to MCU.
- Added ATtiny2313A. Its sole job is to program the AD9850 very fast during frequency sweep mode.
You can find the new schematic in the design files on Dropbox (see sidebar on the project page) as OpenGen R2.pdf . The project details will be updated shortly!
The component list has most of the major components (ICs) and is up to date.
08/10/2014 at 23:05 •
I'm on holiday, but development continues!
New changes in R2:
- The final amplifiers in the output stage for the sine signal will now be the THS3001 and the THS3095 with gains of 2.5 and 2, respectively.
- The output parameters will be written to the EEPROM when entered and loaded next time the device is booted.
- The load disconnect switches will also feed two ADC pins on the ATmega328. When the load is disconnected, all circuitry that is not needed for the disabled channel is powered down to improve battery life. If both outputs are disconnected, the analog power rails will be shut down, drastically decreasing the load on the battery.
- The AD9850 itself will be driven by an ATtiny2313A in a parallel configuration. The ATtiny2313A will only drive the AD9850 (and nothing else), which will enable a maximum of slightly over 9.5 million frequency updates per second when in frequency sweep mode. It will be programmed over I2C and this will only be possible when the interrupt pin is pulled high.
- The two MCUs will probably be programmed with Atmel Studio (free software provided by Atmel) rather than Arduino to allow me to reduce the firmware size (and increase the speed of execution). I haven't decided whether to do this with both of them, but I will definitely do it for the AD9850 controller as it will improve its speed. I will still publish the source and the hex files so you can modify it!
08/07/2014 at 07:06 •
R2 of OpenGen has been going well so far. I have made plenty of changes:
- I will need a four-layer board for the fast analog parts, which provides easier power supply routing and much better grounding. However, they're expensive and I don't need one for everything else (control and peripherals), so there will be a larger (and cheaper) two layer board connected to the 4-layer one by a board-to-board interconnect.
- The power supply rails now work as follows:
- ±12V: powered by two low-dropout precision voltage regulators (LT3090 and TPS7A4501), runs from ±13V;
- ±13V: powered by a dual switch-mode power supply controller (LT3471) which provides high efficiency;
- 5VD: powered by a TPS62160 switch-mode power supply controller which provides 92% efficiency (according to TI's WEBENCH);
- 5VA: powered by a low-dropout precision voltage regulator (TPS7A4901).
- The amplitude and offset adjustments for the sine output and the duty cycle adjustment for the square output will now likely be 8-bit resolution rather than 12-bit as they will be taken from the microcontroller's PWM outputs.
- I will add a battery low indicator light (6.2V) and a FET switch that shuts down the device when the battery is critically low (6V). The FET will initially be set high by a 'soft' power button and from then on by a comparator. When the battery drops below 6V, the FET shuts off and the user must charge the battery to make the device stay on when they press the power button.
- There will be some changes to the output stage to allow it to provide ±10V at 42.5MHz (the THS6022 did not have a high enough slew rate). Exact changes TBC.
- I will add two load-disconnect switches (one for each output channel). These will control latching relays on the outputs of the op-amp and comparator. There will also be an 'active' LED for each channel. This indicates whether there is an output which can be connected, i.e., whether the channel is disabled in software (and therefore in a low-power shutdown state). If both channels are disabled in software (by the user or at startup), the analog supply rails will go into a shutdown state to save power.
08/01/2014 at 22:53 •
It's time for another major redesign. There are lots of things happening, but mainly:
- Power supplies are no longer going to be MC34063 based; too noisy and inefficient.
- Changes to the structure of the schematic.
- Addition of digital and signal grounds to lower noise.
- Possible dual board construction: grounding sensitive 4-layer analog board and 2-layer power / control board.
This is going to be R2!
07/31/2014 at 16:00 •
The other day I realised, looking at the THS4631 (output amplifier) datasheet, that the frequency response with a gain of 75 was going to be awful. I thought about maybe having a quad op-amp, each one multiplying by the 4th root of 75 and feeding into the next, but that was a no-hoper too. Finally, I think I have found a solution thanks to this thread on the ever-useful EEVblog forum:
The amplitude of the AD9850 varies with frequency from 1V pk-pk to 300mV or less. I needed some sort of AGC to correct the amplitude to be stable for all frequencies, and the answer was the AD633, a variable gain amplifier. This will output a 1.4V pk-pk sine wave at all frequencies with a few external components. This will then go into a multiplying amplifier: the ADL5931. This takes the sine wave and multiplies it with the output of a 12-bit DAC, giving an output amplitude of 1mV to 4V pk-pk. Finally, this will be combined with a DC offset from another DAC and amplified by two consecutive amplifiers (one is the THS4631, other TBC) with a gain of 2.5 and 2 in that order.
07/29/2014 at 22:55 •
I'm a firm believer in the principles of open source hardware and software. They stop people wasting their time designing similar parts and encourage people to share what they have produced with the world. Of course, there are limitations. Not everyone can use the source (i.e., compile the software or manufacture the hardware). However, even if this is the case, the source is still available and that's what counts.
Another point worth making is that while it may be technically correct to just dump your design files and call your design 'open', it isn't truly open in that people don't know what they're looking at, or how it works. For something to be completely open, there has to be comprehensive documentation which covers operation and functionality.
Why am I rambling on about this? Well, this project has now been entered for the Hackaday Prize, one of the criteria for which is openness. OpenGen is open source hardware, but alongside that hardware there is full documentation that is continually evolving and improving. Furthermore, the software (when it is completed; some is already written) will be open source as well, built on the open source Arduino IDE and well documented throughout through the use of comments.
All aspects of OpenGen are Public Domain, meaning there are no limitations on how you can use them. Knock yourself out!
07/28/2014 at 16:50 •
The 'details' section of the project page is now complete and current. Also, the 8-bit attenuation network in the schematic is now complete – the new version is on Dropbox.
07/28/2014 at 12:19 •
I have just uploaded a link to the Dropbox folder containing all the design files so far (no PCB yet). The schematic is still unfinished, but it's getting there, and the online file will update as soon as I save a new version of the original.
I have decided to use an analogue switch for attenuation selection because they are cheaper, have a very high -3dB bandwidth and have a minimal capacitance between contacts. I chose the ADG734 which is a quad SPDT switch: 2.5ohm on resistance and 160MHz bandwidth. The larger on-resistance will slightly affect accuracy but not much. I may make some of the smaller attenuation resistors 3 ohms lower or so to try and negate the effect. Since there are 8 attenuation bits, there will be two ADG734s, probably controlled by a 74HC595 shift register rather than another PCF8574 (which is used for the LCD); they are one fifth the price.
I am also following rob77's suggestion on this thread to wire the keypad up so that only one ADC pin is required to read it. This will save me another PCF8574, so the only one being used now is on the LCD.
These changes should appear automatically in the Dropbox folder linked on the project page.