Programmed Adjustable Power

I just explored an easy scheme to design a high precision programmed adjustable power.
In this scheme, there is no needs to make a complex PWM circult,
just a liner or switcher adjustable voltage regulator and a resister network, a DAC, and a MCU.

Resister network change DAC output voltage into feedback voltage
and let adjustable voltage regulator regulate output voltage itself.

Outputting an fixed voltage by using resister to control regulator may be easy,
but there is a little challenge to output adjustable voltage.

My mates used to use digital potentiometer to adjust output voltage, but digital potentiometer is too instable.

Lucky, DAC with a resister network works better, and they can provide high precision output witch depends the resolution of DAC.

In this figure, voltage of the node feedback is fixed by the Vref (OR Vsense) of regulator.

LM2576 is 1.23V, TPS5432 is 0.808V.

When there is voltage difference between Vout of DAC and Vref of regulator, the difference sets up an current in R2.

Then the current through R1 to the ground.

This adjustable current could change the resistance because voltage between Vref and GND is fixed

and no current will go into Vref pin duo to the virtual short and virtual open of the error amplifier inside of the regulator chip.

Now it's time to value R3, R2, R1.

Make sure that the output range of this regulator (Vout) and DAC (Vdac) , and Vref by checking the datasheet of part.
Then, list two equation.

(Vdac.max-Vref)/R2+(Vout.min-Vref)/R3=Vref/R1
(Vdac.min-Vref)/R2+(Vout.max-Vref)/R3=Vref/R1

Three unknown resistance, but two equation, we must assume the value of R3. 10K is very common.
Then check the Idac.max to make sure that DAC will not overloaded.

[Update 2014/Tue/22] PS:

Three terminal regulator, such as LM317 is not available to this equation because the 1.25V is between Ref pin and out pin.

We use TI's TLC5615, 10-BIT DIGITAL-TO-ANALOG CONVERTERS as our DAC.
This chip has 3-Wire Serial Interface, so we can use Arduino to control it.
Arduino is an open-source physical computing platform based on the AVR MCU.
Now give the Arduino program.

//Arduino project http://arduino.cc
//by Mini Dragon at http://minidr.com/archives/687
//This program is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.
#define CS 2 //chip enable
#define CLOCK 3
#define DATA 4 #define HALF_CLOCK_PERIOD 2 //2 uS of clock period
float j=;
void setup()
{
pinMode(DATA, OUTPUT);
pinMode(CLOCK,OUTPUT);
pinMode(CS,OUTPUT);
digitalWrite(CS,HIGH);
digitalWrite(DATA,LOW);
digitalWrite(CLOCK,LOW);
} void writeValue(uint16_t value)
{
digitalWrite(CS,LOW);//start of 12 bit data sequence
digitalWrite(CLOCK,LOW);
data = data << ; //Add 2 0 at the end of the data. A 10-bit data word should add 2 0 at the LSB bit (sub-LSB) since the DAC input latch is 12 bits wide.(SEE TLC5615C DATASHEET)
for(int i=; i>=; i--)//send the 12 bit sample data
{
digitalWrite(DATA, (value & ( << i) ) >> i );//DATA ready
delayMicroseconds(HALF_CLOCK_PERIOD);
digitalWrite(CLOCK,HIGH);//DAC get DATA at positive edge
delayMicroseconds(HALF_CLOCK_PERIOD);
digitalWrite(CLOCK,LOW);
}
digitalWrite(CS,HIGH);//end 12 bit data sequence
} void loop()
{
j=; //in here, 567 is a example. DAC OUT=j*Vref/1024
writeValue(floor(j));
}

Each DAC output voltage maps a main Vout.

Long day for me to update my blog. I even don't know my blog was blocked by our Great Fire Wall.

Yesterday I passed my first time of GRE test.

That's a f**k test.

But during the day of preparing the GRE, I got a chance to attend our University's electronic design contest.

In the contest, I fixed some problems of my power and add some now function into it.

This is the top layer of the power.

You can see a black PCB which plug into the main board.

That's a current detection module.

I using TI's INA200A to detecting the current of power's output.

Then using Arduino's ADC to check out the current if the current exceeds the threshold value.

This threshold value could change during the runtime.

If the power is overloaded, the relay (yellow thing) will cut off the output to protect the buck chip until manual reset the system.

The 1602 LCD could display the output voltage, output current and cut off thrshold current value.

Using Arduino to control the LCD is very simple like using printf() function in C language.

This the bottom layer of the power. I using the surface mount package part to keep the system small.

This is the out put waveforms.

About 15mV ripple voltage in 1A load, 10V output.

Fantastic result by using Nichicon HD aluminium electrolytic capacitor.

That's all of the

This project is open-sourced, under the licence of BY-NC-SA.

If you want the SCH, PCB file and Arduino file, leave the comment and I will mail you ASAP.

Thanks to Texas Instruments for offering me so many kind of chips free.

dfd

Programmed Adjustable Power的更多相关文章

  1. 22.I/O特性

    IO资源 IO是与外界沟通和控制的通道,fpga提供了丰富的IO和一些实用的特性. 本文简要的将主要的特性摘录下来做设计参考用.具体参数参考handbook. 第一部分:IO特性概述 -----通过软 ...

  2. 15.Cyclone II的IO资源学习

    IO资源 IO是与外界沟通和控制的通道,fpga提供了丰富的IO和一些实用的特性. 本文简要的将主要的特性摘录下来做设计参考用.具体参数参考handbook. 第一部分:IO特性概述 -----通过软 ...

  3. Power aware dynamic scheduling in multiprocessor system employing voltage islands

    Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system- ...

  4. Programmable current source requires no power supply

    Engineering labs are usually equipped with various power supplies, voltmeters, function generators, ...

  5. 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表

    1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...

  6. 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题

    千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...

  7. 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验

    Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...

  8. Power BI官方视频(3) Power BI Desktop 8月份更新功能概述

    Power BI Desktop 8月24日发布了更新版本.现将更新内容翻译整理如下,可以根据后面提供的链接下载最新版本使用. 1.主要功能更新 1.1 数据钻取支持在线版 以前的desktop中进行 ...

  9. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

随机推荐

  1. spring如何管理mybatis(一) ----- 动态代理接口

    问题来源 最近在集成spring和mybatis时遇到了很多问题,从网上查了也解决了,但是就是心里有点别扭,想看看到底怎么回事,所以跟了下源码,终于发现了其中的奥妙. 问题分析 首先我们来看看基本的配 ...

  2. D. Dasha and Chess(交互题)

    题目链接:http://codeforces.com/contest/1100/problem/D 题目大意:给你一个999*999的图,然后有666个黑色旗子,一个白色棋子,每一次白色棋子只能在它附 ...

  3. 03 uni-app框架学习:轮播图组件的使用

    1.轮播图组件的使用 参照官方文档 2.在页面上加入这个组件 3.在页面中引去css样式 并编写样式 ps:upx单位是什么 简单来说 就相当于小程序中的rpx 是一个自适应的单位 会根据屏幕宽度自动 ...

  4. 【干货】使用EnCase来分析windows 7文件系统------认识元数据记录$MFT,数据恢复

    来源:Unit 6: Windows File Systems and Registry 6.1 Windows File Systems and Registry Windows NTFS File ...

  5. web.js

    var page = require('webpage').create(), system = require('system'), address,output,csvPath,nodePathF ...

  6. [Android]Eclipse 安装 ADT[Android Development Tooling] 失败的两种解决办法

    原因 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点.众所周知的原因,Eclipse 直接安装 AD ...

  7. Java基础88 数据库设计的三大范式

    数据库的设计原则:建议设计的表尽量遵守三大范式 1.第一范式 要求表的每个字段必须是不可分割的独立单元 Student表:    name       -- 违反了第一范式             张 ...

  8. ThinkPHP中的统计查询方法

    • count() 表示查询表中总的记录数 • max() 表示查询某个字段的最大值 • min() 表示查询某个字段的最小值 • avg() 表示查询某个字段的平均值 • sum() 表示求出某个字 ...

  9. Django为数据库的ORM写测试例(TestCase)

    models.py里的数据库定义如下: from django.db import models # Create your models here. class Teachers(models.Mo ...

  10. 德卡Z90读卡器读取社保卡,德卡Z90读卡器CSharp示例程序源码

    前言,最近学习调用 医保卡业务,使用德卡读卡器,主要就是调用一个DLL,动态库文件. 借着自学的机会把心得体会都记录下来,方便感兴趣的小伙伴学习与讨论. 内容均系原创,欢迎大家转载分享,但转载的同时别 ...