Digital DC power supply
это "великий" Минск - столица "великой" Беларуси . вот так на рынок приедешь - и понимаешь что живёшь не в столице , а в большом колхозе.
а что , на матерях бывают 1% ?
я бы сам ковырял , если бы был фен
а паяльником очень неудобно . надо сразу два в две руки
а на транзисторы вообще три . два в руки и один в рот 
а что , на матерях бывают 1% ?
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
я не знаю как паяльником и пинцетом отпаивать сразу два вывода быстро , посему и хочу фен
прошивку сейчас и гляну - всёравно делать нечего
текс , а кто там кричал что под винду прог нету ? в исходниках всё валяется .
коменты разработчика рулят в некотором смысле :
Added R36 (5K6) for protection against current peaks higher
than 10A (can not happen under normal conditions but is possible
if the power transistor is overheated due to bad cooling and burns.
The resistor will save the live of the microcontroller).
может защиту какую-либо другую ввести ... этот резак помехи только создаёт. и номинал "слегка" завышен
даже если пробьёт питающее напряжение на ногу , то для тока в 20мА необходим резак 1к6 .
думаю тут можно втыкнуть датчик температуры на радиатор и следить за нагревом. при превышении - вырубать транзистор
текс , а кто там кричал что под винду прог нету ? в исходниках всё валяется .
коменты разработчика рулят в некотором смысле :
Added R36 (5K6) for protection against current peaks higher
than 10A (can not happen under normal conditions but is possible
if the power transistor is overheated due to bad cooling and burns.
The resistor will save the live of the microcontroller).
может защиту какую-либо другую ввести ... этот резак помехи только создаёт. и номинал "слегка" завышен
думаю тут можно втыкнуть датчик температуры на радиатор и следить за нагревом. при превышении - вырубать транзистор
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
касательно шунта . в исходнике торчит следующее :
насколько я вижу поправки с учётом падения на шунте введены. сейчас пока туго соображаю в чужом коде , но , возможно , завтра покопаюсь по-лучше. особенно в формулах.
Код: Выделить всё
// convert voltage values to adc values, disp=10 is 1.0V
static int disp_u_to_adc(int disp){
return((int)(disp * 102.3) / (ADC_REF * U_DIVIDER));
}
// calculate the needed adc offset for voltage drop on the
// current measurement shunt (the shunt has about 0.5 Ohm =1/2 Ohm)
static int disp_i_to_u_adc_offset(int disp){
return(disp_u_to_adc(disp/20));
}
// convert adc values to voltage values, disp=10 is 1.0V
// disp_i_val is needed to calculate the offset for the voltage drop over
// the current measurement shunt
static int adc_u_to_disp(int adcunits,int disp_i_val){
int adcdrop;
adcdrop=disp_i_to_u_adc_offset(disp_i_val);
if (adcunits < adcdrop){
return(0);
}
adcunits=adcunits-adcdrop;
return((int)(((adcunits /102.3)* ADC_REF * U_DIVIDER)+0.6));
насколько я вижу поправки с учётом падения на шунте введены. сейчас пока туго соображаю в чужом коде , но , возможно , завтра покопаюсь по-лучше. особенно в формулах.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
- larik
- Мучитель микросхем
- Сообщения: 403
- Зарегистрирован: Вс окт 12, 2008 00:19:25
- Откуда: Подольск, Мос. Область
LINKS_234 писал(а):
думаю тут можно втыкнуть датчик температуры на радиатор и следить за нагревом. при превышении - вырубать транзистор
мне кажется лучше еше при этом следить и за вентилятором (эт конеш может и не у всех) типо ШИМ контроллера, потомучто перегреватся будет он часто.
второй день гоняю и замечаю что как то тормознуто работает, мож конеш не привычно по сравнению от наших советских лабораторников Б5-45, там светодиодные стоят, жалко у мя они 50 V 0.5A поэтому и пришлось этот своять
у него задержки приличные стоят на опрос клавиатуры. в основном цикле. там же и вывод с установкой значения на ЦАП. думаю надо эти куски перекинуть на прерывание по таймеру.
дальше идёт проверка на зажатие клавиши.
по-моему код не очень удачный . особенно с задержками и в основном цикле.
тут есть решения - если не нужен I2C от компа , то его код полностью выкинуть. Нажатие кнопок проверять с максимальной частотой , с дребезгом бороться в железе , на длинное нажатие заводить таймер , по прерыванию которого запускать быстрый перебор, если кнопка всё ещё нажата. в этом случае частота обновления и установка значений будут максимально приближены к АЦП преобразованиям.
по току пока ничего не могу сказать - надо вживую проверять и корректировать , т.к. поправка вроде введена.
Код: Выделить всё
if (check_buttons()==0){
// no buttons pressed
delay_ms(100);
bpress=0;
check_i2c_interface();
check_buttons();
delay_ms(150); дальше идёт проверка на зажатие клавиши.
по-моему код не очень удачный . особенно с задержками и в основном цикле.
тут есть решения - если не нужен I2C от компа , то его код полностью выкинуть. Нажатие кнопок проверять с максимальной частотой , с дребезгом бороться в железе , на длинное нажатие заводить таймер , по прерыванию которого запускать быстрый перебор, если кнопка всё ещё нажата. в этом случае частота обновления и установка значений будут максимально приближены к АЦП преобразованиям.
по току пока ничего не могу сказать - надо вживую проверять и корректировать , т.к. поправка вроде введена.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
собственно всё правильно . R36 защитный . измерительный - 0.5 Ом .
прогу тут - digitaldcpower-0.4.9\other_OS\win\i2ctalk.exe
работает с коммандной строкой.
i2c_rs232_pintest.exe - для проверки com-порта . устанавливает на двух ногах порта по-очереди единицы или нули на 5 сек.
прогу тут - digitaldcpower-0.4.9\other_OS\win\i2ctalk.exe
работает с коммандной строкой.
i2c_rs232_pintest.exe - для проверки com-порта . устанавливает на двух ногах порта по-очереди единицы или нули на 5 сек.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
LINKS_234 писал(а):а вот графики уже нахрена ?тем более что лабораторник только принимает команды.
команды принимает, в соответствии со спецификацией i2c, ведущий то один, а вот на команды данные выдаёт, и в описалове на прогу по i2c
# set Imax to 0.20A:
i2ctalk i=20
# get current I value:
i2ctalk i
всё есть...
судя по приведённому коду корректировки падения на шунте действительно должно учитываться, но в результате видим иное, значит где то косяк.
знаний хватает и в коде поковыряться и графики с i2c порисовать в GUI но нет вообще времени сейчас, хотя очень хочется, но за темой я слежу, если что, помочь а уж тем более покритиковать
....
знаний хватает и в коде поковыряться и графики с i2c порисовать в GUI но нет вообще времени сейчас, хотя очень хочется, но за темой я слежу, если что, помочь а уж тем более покритиковать
у автора не очень уж удачно сделан опрос клавиатуры , при котором МК опрашивает клавиатуру и гонит данные на ЖКИ по одним линиям. не совсем то , чего хотелось . задержки там стоят скорей всего на ожидание перед проверкой на длинное нажатие.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
вопрос к собравшим :
показания вольтметра без нагрузки правильные ? если тупо подобрать по прибору R7 и R8 .
просто меня смущает очень такие строки :
и
во-первых 102.3 - насколько я помню должно быть 102.4
во-вторых U_DIVIDER какой-то странный . и непонятно какую формулу брать . по логике вещей это делитель напряжения. считать его надо так - R7/R8 для обычной версии . при этом получится 10 . если считать по формуле в скобках , то получится 11 , но никак не 11.35 . для варианта 30В получится 12.2 и 13.2 .
показания вольтметра без нагрузки правильные ? если тупо подобрать по прибору R7 и R8 .
просто меня смущает очень такие строки :
Код: Выделить всё
static int disp_u_to_adc(int disp){
return((int)(disp * 102.3) / (ADC_REF * U_DIVIDER))и
Код: Выделить всё
// the divider R7/R8 [(R8+R7)/R8], you can calibrate here the voltmeter:
#define U_DIVIDER 11.35во-первых 102.3 - насколько я помню должно быть 102.4
во-вторых U_DIVIDER какой-то странный . и непонятно какую формулу брать . по логике вещей это делитель напряжения. считать его надо так - R7/R8 для обычной версии . при этом получится 10 . если считать по формуле в скобках , то получится 11 , но никак не 11.35 . для варианта 30В получится 12.2 и 13.2 .
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
почему 11.13 ? ведь делитель 10:1 , т.е. первоначальный сигнал делится на 10 .
но это ещё фигня . дальше лучше :
тут я вообще не понимаю этих формул и вообще зачем каждая из них.
но это ещё фигня . дальше лучше :
Код: Выделить всё
// convert adc values to current values, disp=10 needed to be printed
// by the printing function as 0.10 A
static int disp_i_to_adc(int disp){
return((int) (((disp * 10.23)* I_RESISTOR) / ADC_REF));
}
// convert adc values to current values, disp=10 needed to be printed
// by the printing function as 0.10 A
static int adc_i_to_disp(int adcunits){
return((int) (((adcunits* ADC_REF)/(10.23 * I_RESISTOR))+0.6));
}тут я вообще не понимаю этих формул и вообще зачем каждая из них.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
всё , понял с точки зрения логики , но не почему оно так
к примеру резаки по 1кОм два будут делить на 2 , посему (1+1)/1
... всё . теперь понял что к чему
по закону ома это всё высчитывается через ток
текс , это понятно , но вот формулы очень уж странные какие-то . да и сам код сильно запутанный. на переменные автор не поскупился.
к примеру резаки по 1кОм два будут делить на 2 , посему (1+1)/1
... всё . теперь понял что к чему
текс , это понятно , но вот формулы очень уж странные какие-то . да и сам код сильно запутанный. на переменные автор не поскупился.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]