1

Тема: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Основная статья - http://rcl-radio.ru/?p=130243

РАЗРАБОТКА

http://forum.rcl-radio.ru/uploads/images/2023/03/d1296b832a6b45628836397a6e8a7980.gif

Тест

#define ANALOG_I A3
#define U_OUT_K 508
#define I_OUT_K 2160
#define I_STAB_K 4900
#define I_0 105


unsigned long i_sum,times;
int ads_i,i;
float u_out = 2;
float i_stab = 2.0;




void setup(){
  analogReadResolution(12);
  analogReference(INTERNAL4V096);//INTERNAL4V096 DEFAULT(Uп)
  Serial.begin(9600);
// TIMER_1 D9 OUTPUT
  DDRB = 1 << PB1;
  noInterrupts();
  TCCR1A=0;TCCR1B=0;
  TCCR1A = 1 << COM1A1 | 1 << WGM11;
  TCCR1B = 1 << WGM13 | 1 << WGM12 | 1 << CS10;
  OCR1A = u_out*U_OUT_K;
  ICR1 = 10000;
// TIMER_3 D2 OUTPUT
  TCCR3A=0;TCCR3B=0;
  DDRF |= (1<<PF2);
  HDR = 1 << HDR3;
  TCCR3A = 1 << COM3B1 | 1 << WGM31;
  TCCR3B = 1 << WGM33 | 1 << WGM32 | 1 << CS30;
  OCR3B = I_STAB_K*i_stab;// 4700 1A
  ICR3 = 10000;
  interrupts();
}

void loop() {
  if(millis()-times>100){times=millis();ads_i++;i_sum = i_sum + analogRead(ANALOG_I);}
  if(ads_i>9){ads_i=0;i = i_sum/10;i_sum=0;
  Serial.println(abs(float(i-I_0)/I_OUT_K),2);
  Serial.println(analogRead(ANALOG_I)-I_0);
  }

}

2

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

http://forum.rcl-radio.ru/uploads/images/2023/03/aeeaf6900c4c13ae23f3987b389fa52c.png

http://forum.rcl-radio.ru/uploads/images/2023/03/efa68d784906f7f06c10a0bb92587b37.gif


#define ANALOG_I A3
#define ANALOG_U A6
#define U_OUT_K 508
#define I_OUT_K 1970
#define I_STAB_K 1210
#define U_OUT_IND 157

#include <Wire.h>
#include <OLED_I2C.h>           // http://rcl-radio.ru/wp-content/uploads/2022/01/OLED_I2C.zip
#include <Encoder.h>            // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip    
#include <EEPROM.h>
#include <MsTimer2.h>           // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip  
OLED  myOLED(SDA, SCL, 8);
Encoder myEnc(6, 5);// DT, CLK

extern uint8_t SmallFont[],BigNumbers[];
unsigned long u_sum,i_sum,times,times0,oldPosition  = -999,newPosition;
int u_,ads_i,i_,menu;
int u_out,i_stab;
bool w=1,w2,out=1;


void setup(){
  delay(200);Wire.begin();myOLED.begin();
  myOLED.setBrightness(100);// ЯРКОСТЬ ДИСПЛЕЯ 
  analogReadResolution(12);// АЦП 12 БИТ
  analogReference(DEFAULT);//INTERNAL4V096 DEFAULT(Uп)
  Serial.begin(9600);
  pinMode(7,INPUT);        // SW ENCODER
  pinMode(4,INPUT_PULLUP); // OUT_ON_OFF
  MsTimer2::set(3, to_Timer);MsTimer2::start();
  if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении  
// TIMER_1 D9 OUTPUT
  DDRB = 1 << PB1;
  noInterrupts();
  TCCR1A=0;TCCR1B=0;
  TCCR1A = 1 << COM1A1 | 1 << WGM11;
  TCCR1B = 1 << WGM13 | 1 << WGM12 | 1 << CS10;
  OCR1A = 0;
  ICR1 = 10000;
// TIMER_3 D2 OUTPUT
  TCCR3A=0;TCCR3B=0;
  DDRF |= (1<<PF2);
  HDR = 1 << HDR3;
  TCCR3A = 1 << COM3B1 | 1 << WGM31;
  TCCR3B = 1 << WGM33 | 1 << WGM32 | 1 << CS30;
  OCR3B = 0;
  ICR3 = 2500;
  interrupts();
  myOLED.clrScr();
  myOLED.setFont(SmallFont);
  myOLED.print(F("Power unit"), CENTER, 10);
  myOLED.print(F("0-25V"), CENTER, 30);
  myOLED.print(F("0-2A"), CENTER, 50);
  myOLED.update();
  delay(1000);
  u_out = EEPROM.read(0);i_stab = EEPROM.read(1);
  OCR1A = float(u_out)/10.00*U_OUT_K;
  OCR3B = I_STAB_K*float(i_stab)/100;
}

void loop() {
  if(digitalRead(7)==LOW){menu++;delay(300);times0=millis();w=1;w2=1;if(menu>1){menu=0;}}
  if(digitalRead(4)==LOW && out==1){out=0;;delay(300);OCR1A=0;OCR3B = 0;}
  if(digitalRead(4)==LOW && out==0){out=1;;delay(300);w=1;}
/////////////////////////////////////////////////////////////////////////////////////////////  
  if(millis()-times>100){times=millis();ads_i++;i_sum = i_sum + analogRead(ANALOG_I);u_sum = u_sum + analogRead(ANALOG_U);}
  if(ads_i>9){ads_i=0;i_ = i_sum/10;i_sum=0; u_ = u_sum/10;u_sum=0;
    Serial.print("I_out = ");Serial.println(abs(float(i_)/I_OUT_K),2);
    Serial.print("I_dig = ");Serial.println(analogRead(ANALOG_I));
    Serial.print("U_out = ");Serial.println(abs(float(u_)/U_OUT_IND),2);
    Serial.print("U_dig = ");Serial.println(analogRead(ANALOG_U));
    w=1;}
/////////////////////////////////////////////////////////////////////////////////////////////
if(menu==0){
  if(newPosition != oldPosition){oldPosition = newPosition;u_out=u_out+newPosition;myEnc.write(0);newPosition=0;
  if(u_out<0){u_out=0;}if(u_out>250){u_out=250;}times0=millis();w=1;w2=1;}}
/////////////////////////////////////////////////////////////////////////////////////////////
if(menu==1){
  if(newPosition != oldPosition){oldPosition = newPosition;i_stab=i_stab+newPosition;myEnc.write(0);newPosition=0;
  if(i_stab<10){i_stab=10;}if(i_stab>200){i_stab=200;}times0=millis();w=1;w2=1;}}
/////////////////////////////////////////////////////////////////////////////////////////////
    
  
  if(w==1){w=0; 
  if(out==1){
  OCR1A = float(u_out)/10.00*U_OUT_K;
  OCR3B = I_STAB_K*float(i_stab)/100;
  }
  myOLED.clrScr();
  // U /////////
  myOLED.setFont(BigNumbers);if(u_out/100>0){myOLED.printNumI(u_out/100, 5, 0);}
  myOLED.printNumI(u_out/10%10, 20, 0);
  myOLED.setFont(SmallFont);myOLED.print(F("."), 33, 18);myOLED.setFont(BigNumbers);myOLED.printNumI(u_out%10, 38, 0);
  myOLED.setFont(SmallFont);myOLED.print(F("V"), 57, 0);
  if(menu==0){myOLED.setFont(SmallFont);myOLED.print(F("*"), 57, 18);}
  myOLED.drawLine(0, 30, 128, 30);
  if(out==1){
  long u_iz = (abs(long(u_))*10)/U_OUT_IND;
  myOLED.setFont(BigNumbers);if(u_iz/100>0){myOLED.printNumI(u_iz/100, 70, 0);}
  myOLED.printNumI(u_iz/10%10, 85, 0);
  myOLED.setFont(SmallFont);myOLED.print(F("."), 98, 18);myOLED.setFont(BigNumbers);myOLED.printNumI(u_iz%10, 104, 0);}
  else{myOLED.setFont(SmallFont);myOLED.print(F("OUT_OFF"), 75, 10);}
  
  // I //////////
  myOLED.setFont(BigNumbers);myOLED.printNumI(i_stab/100, 5, 35);myOLED.printNumI(i_stab/10%10, 23, 35);
  myOLED.setFont(SmallFont);myOLED.print(F("."), 18, 53);myOLED.setFont(BigNumbers);myOLED.printNumI(i_stab%10, 38, 35);
  myOLED.setFont(SmallFont);myOLED.print(F("A"), 57, 35);
  if(menu==1){myOLED.print(F("*"), 57, 53);}
  long i_iz = (abs(long(i_))*100)/I_OUT_K;
  if(i_iz<=5){i_iz=0;}
  myOLED.setFont(BigNumbers);myOLED.printNumI(i_iz/100, 70, 35);myOLED.printNumI(i_iz/10%10, 90, 35);
  myOLED.setFont(SmallFont);myOLED.print(F("."), 84, 53);myOLED.setFont(BigNumbers);myOLED.printNumI(i_iz%10, 105, 35);

  myOLED.update();
  }
//////////////////////////////////////////////////////////////////////////////////
 if(millis()-times0>10000 && w2==1){EEPROM.update(0,u_out);EEPROM.update(1,i_stab);menu=0;w2=0;w=1;}   
}

void to_Timer(){newPosition = myEnc.read()/4;} 

3

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Рекомендации:

Если в режиме OUT_OFF на выходе баз нагрузки присутствует напряжение порядка 2-3 В, уменьшите сопротивление R4 (0,25-0,5 Вт) и уменьшите сопротивление R17(1,0 кОм-2,2 кОм 0,5 Вт).

Транзистор VT2 должен быть установлен на достаточно большой теплоотвод.
http://forum.rcl-radio.ru/uploads/images/2023/03/d8d289cdd2a9a9e7c266fea5b6754c76.jpg

При большом выходном токе при длительном использовании желательно применить принудительную вентиляцию

4 (2023-03-12 22:23:58 отредактировано Sergey-77)

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Доброго времени суток! Эта версия БП получила персональную страницу)
Мне пришла плата LGT:  https://aliexpress.ru/item/100500423117 … 8462905418

Не получается установить драйвер для win7, драйвер беру  тут https://www.holtek.com/productdetail/-/vg/42B534-x
без него тестовый скетч загрузить не получается
Такой порт  выбрать не могу:
http://forum.rcl-radio.ru/uploads/images/2023/03/57926be80b3120b06dbc6d87efbd28b6.jpg


Несколько вопросов по вашему варианту схемы:

1) Какое минимальное значение тока стабилизации можно установить? (я в своем варианте меньше 80мА добиться не смог);

2) Присутствует ли "дребезг" напряжения на выводе: "напряжение шунта А3"?

3) КТ-837 используется потом что есть в наличии?

4) Почему решили уйти от "старого" дисплея?

5

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Такой порт  выбрать не могу:

У меня Linux, такого порта у Вас не будет.

Не получается установить драйвер для win7, драйвер беру  тут https://www.holtek.com/productdetail/-/vg/42B534-x
без него тестовый скетч загрузить не получается

С драйвером помочь не смогу, для Linux они не нужны

Какое минимальное значение тока стабилизации можно установить? (я в своем варианте меньше 80мА добиться не смог);

от 0

Присутствует ли "дребезг" напряжения на выводе: "напряжение шунта А3"?

Нет, показания тока очень стабильные

КТ-837 используется потом что есть в наличии?

Был в наличии

Почему решили уйти от "старого" дисплея?

У меня много проектов на этом дисплее

Обратите внимание на схему которую я использую, она немного изменена и отличается от Вашей.

6

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Еще вопрос, в основной статье написано: "Индикатор тока нагрузки начинает работать при токе выше 0,05 А." Я правильно понимаю, ток меньше 50 мА не отображается? Но, если допустим, выставить  ток стабилизации 20 мА, ток в нагрузке ограничится до этого значения, но на экране не отобразится?

7

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Да, ток будет ограничиваться.

Ограничение связано с работой ОУ, у некоторых экземпляров, большое напряжение нуля, плюс коэффициент усиления ОУ увеличивает напряжение нуля, но если подобрать ОУ с низким напряжением нуля то можно мерить ток от 0 А.

Для снятия ограничения достаточно удалить эту строчку:

  if(i_iz<=5){i_iz=0;}

8

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Увеличение сопротивления шунта частично решит проблему? Как практически подбирать ОУ по напряжению нуля?

9

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Открыть монитор порта, там ток отображается без ограничений. Без нагрузки ток должен быть не более 0,02-0,01 А. Если ток больше больше, заменить LM358.

Увеличение сопротивления шунта частично решит проблему?

Да. Напряжение нуля ОУ будет меньше.

10

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

То есть, напряжение ноля каждого экземпляра ОУ индивидуально и постоянно, а почему его нельзя корректировать программно?

11

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Я пробовал, получается нелинейность измерения тока. По факту, ОУ с нулем например 0,05 А, не видит ток до 0,05 А, даже если он реально есть.  Эта разница видна в результате измерения.
Так же мне попадался ОУ с идеальным нулем, но он не видел ток до 0,06 А, как только ток доходит до 0,07 на экране появлялся ток 0,01 А.

При шунте 0,1 я думаю таких проблем не будет, К_усил_ОУ = 20, напряжение нуля будет в 10 раз меньше чем у меня.

Обратите внимание на обратную связь ОУ измерителя тока, при неправильном подобранном сопротивлении напряжение на выходе ОУ может превысить 5 В, что может сжеч вход микроконтроллера.

12

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

liman324 пишет:

Я пробовал, получается нелинейность измерения тока. По факту, ОУ с нулем например 0,05 А, не видит ток до 0,05 А, даже если он реально есть.  Эта разница видна в результате измерения.
Так же мне попадался ОУ с идеальным нулем, но он не видел ток до 0,06 А, как только ток доходит до 0,07 на экране появлялся ток 0,01 А.

Да... бюджетные решения требуют жертв)


Обратите внимание на обратную связь ОУ измерителя тока, при неправильном подобранном сопротивлении напряжение на выходе ОУ может превысить 5 В, что может сжеч вход микроконтроллера.

Да, это ценное замечание, спасибо! Ждать еще месяц платку не улыбается.

13

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Кстати,  Эдди-71 реализовывал амперметр повышенной точности с шунтом 0,01 Ом и ЛМ358 https://www.eddy.com.ua/archives/377, схему я не повторял поэтому о качестве реализации судить не могу.

14

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Не думаю что точность очень высокая, микроконтроллер PIC16F690 имеет АЦП 10 бит.

15

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

LCD1602
ОГРАНИЧЕНИЕ 1А ПОСЛЕ 20В, ДО 20В МАКСИМАЛЬНЫЙ ТОК 2А

http://rcl-radio.ru/wp-content/uploads/2023/03/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-%D0%BE%D1%82-2023-03-16-17-31-30.png

#define ANALOG_I A3
#define ANALOG_U A6
#define U_OUT_K 418
#define I_OUT_K 1970
#define I_STAB_K 1210
#define U_OUT_IND 157
 
#include <Wire.h>
#include <Encoder.h>            // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip    
#include <EEPROM.h>
#include <MsTimer2.h>           // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip  
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
Encoder myEnc(6, 5);// DT, CLK
 
unsigned long u_sum,i_sum,times,times0,oldPosition  = -999,newPosition;
int u_,ads_i,i_,menu;
int u_out,i_stab;
bool w=1,w2,out=1;
long u_iz;
 
 
void setup(){
  delay(200);Wire.begin();lcd.init();lcd.backlight();// Включаем подсветку дисплея
  analogReadResolution(12);// АЦП 12 БИТ
  analogReference(DEFAULT);//INTERNAL4V096 DEFAULT(Uп)
  Serial.begin(9600);
  pinMode(7,INPUT);        // SW ENCODER
  pinMode(4,INPUT_PULLUP); // OUT_ON_OFF
  MsTimer2::set(3, to_Timer);MsTimer2::start();
  if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении  
// TIMER_1 D9 OUTPUT
  DDRB = 1 << PB1;
  noInterrupts();
  TCCR1A=0;TCCR1B=0;
  TCCR1A = 1 << COM1A1 | 1 << WGM11;
  TCCR1B = 1 << WGM13 | 1 << WGM12 | 1 << CS10;
  OCR1A = 0;
  ICR1 = 10500;
// TIMER_3 D2 OUTPUT
  TCCR3A=0;TCCR3B=0;
  DDRF |= (1<<PF2);
  HDR = 1 << HDR3;
  TCCR3A = 1 << COM3B1 | 1 << WGM31;
  TCCR3B = 1 << WGM33 | 1 << WGM32 | 1 << CS30;
  OCR3B = 0;
  ICR3 = 2500;
  interrupts();
  lcd.setCursor(3, 0);lcd.print(F("Power unit"));
  lcd.setCursor(3, 1);lcd.print(F("0-25V 0-2A"));
  delay(1000);lcd.clear();
  u_out = EEPROM.read(0);i_stab = EEPROM.read(1);
  OCR1A = float(u_out)/10.00*U_OUT_K;
  OCR3B = I_STAB_K*float(i_stab)/100;
}
 
void loop() {
  if(digitalRead(7)==LOW){menu++;delay(300);times0=millis();w=1;w2=1;if(menu>1){menu=0;}}
  if(digitalRead(4)==LOW && out==1){out=0;;delay(300);OCR1A=0;OCR3B = 0;}
  if(digitalRead(4)==LOW && out==0){out=1;;delay(300);w=1;}
/////////////////////////////////////////////////////////////////////////////////////////////  
  if(millis()-times>100){times=millis();ads_i++;i_sum = i_sum + analogRead(ANALOG_I);u_sum = u_sum + analogRead(ANALOG_U);}
  if(ads_i>9){ads_i=0;i_ = i_sum/10;i_sum=0; u_ = u_sum/10;u_sum=0;
    Serial.print("I_out = ");Serial.println(abs(float(i_)/I_OUT_K),2);
    Serial.print("I_dig = ");Serial.println(analogRead(ANALOG_I));
    Serial.print("U_out = ");Serial.println(abs(float(u_)/U_OUT_IND),2);
    Serial.print("U_dig = ");Serial.println(analogRead(ANALOG_U));
    Serial.println(OCR1A);
    w=1;}
/////////////////////////////////////////////////////////////////////////////////////////////
if(menu==0){
  if(newPosition != oldPosition){oldPosition = newPosition;u_out=u_out+newPosition;myEnc.write(0);newPosition=0;
  if(u_out<0){u_out=0;}if(u_out>250){u_out=250;}times0=millis();w=1;w2=1;}
  if(u_out>200&&i_stab>100){i_stab=100;}}
/////////////////////////////////////////////////////////////////////////////////////////////
if(menu==1){
  if(newPosition != oldPosition){oldPosition = newPosition;i_stab=i_stab+newPosition;myEnc.write(0);newPosition=0;
  if(i_stab<10){i_stab=10;}
  if(u_out>200&&i_stab>100){i_stab=100;}
  if(i_stab>200){i_stab=200;}times0=millis();w=1;w2=1;}}
/////////////////////////////////////////////////////////////////////////////////////////////
 
 
  if(w==1){w=0; 
  if(out==1){
  OCR1A = float(u_out)/10.00*U_OUT_K;
  OCR3B = I_STAB_K*float(i_stab)/100;
  }
  // U /////////
  lcd.setCursor(1, 0);lcd.print(float(u_out)/10,1);lcd.print("V  ");
  if(menu==0){lcd.setCursor(0, 0);lcd.print(F("*"));}else{lcd.setCursor(0, 0);lcd.print(F(" "));}
  lcd.setCursor(7, 0);lcd.print(F("> "));
  if(out==1){
  u_iz = (abs(long(u_))*10)/U_OUT_IND;
  lcd.setCursor(9, 0);lcd.print(float(u_iz)/10,1);lcd.print("V  ");}
  else{lcd.setCursor(7, 0);lcd.print(" OUT_OFF");}
  
  // I //////////
  lcd.setCursor(1, 1);lcd.print(float(i_stab)/100,2);lcd.print("A ");
  if(menu==1){lcd.setCursor(0, 1);lcd.print(F("*"));}else{lcd.setCursor(0, 1);lcd.print(F(" "));}
  long i_iz = (abs(long(i_))*100)/I_OUT_K;
  lcd.setCursor(7, 1);lcd.print(F(">"));
  //if(i_iz<=5){i_iz=0;}
  lcd.setCursor(9, 1);lcd.print(float(i_iz)/100,2);lcd.print("A ");

  }
//////////////////////////////////////////////////////////////////////////////////
 if(millis()-times0>10000 && w2==1){EEPROM.update(0,u_out);EEPROM.update(1,i_stab);menu=0;w2=0;w=1;}   
}
 
void to_Timer(){newPosition = myEnc.read()/4;}

http://forum.rcl-radio.ru/uploads/images/2023/03/9d87e7417bede1f8179925aba40c487f.png

http://forum.rcl-radio.ru/uploads/images/2023/03/9f25f5e01d37483423233bbcfd2461a6.png

http://forum.rcl-radio.ru/uploads/images/2023/03/2b69e9c13d7de1407897708703d919c8.png

http://forum.rcl-radio.ru/uploads/images/2023/03/98e0468b56fd246584aaa7557070c811.png

http://forum.rcl-radio.ru/uploads/images/2023/03/b917421c81b9667a93ca995f45cf5e5d.png

http://forum.rcl-radio.ru/uploads/images/2023/03/0f16c3790bbfa1c622741f33a141ef7f.png

Схема источника питания

Описание - http://rcl-radio.ru/?p=130314

http://forum.rcl-radio.ru/uploads/images/2023/03/c2a9d4cb73b8d57cfb4169ca91447966.gif

Данный контент доступен только зарегистрированным пользователям.

16

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

[Почему не магу загрузит скеча - STK 500 no synk.?

17

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Один раз загрузил,второй раз не получается!

18

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Опубликуйте текст ошибок название платы с микроконтроллером, и скриншот настроек платы

19

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

de]Arduino: 1.8.16 (Windows 10), Board: "LGT8F328, Default (64), External (assumes 32MHz crystal), 32 MHz, 328P-LQFP32 (e.g. MiniEVB nano-style or WAVGAT)"





         Using Port                    : COM12

         Using Programmer              : arduino

         Overriding Baud Rate          : 57600

         AVR Part                      : ATmega328P

         Chip Erase delay              : 9000 us

         PAGEL                         : PD7

         BS2                           : PC2

         RESET disposition             : dedicated

         RETRY pulse                   : SCK

         serial program mode           : yes

         parallel program mode         : yes

         Timeout                       : 200

         StabDelay                     : 100

         CmdexeDelay                   : 25

         SyncLoops                     : 32

         ByteDelay                     : 0

         PollIndex                     : 3

         PollValue                     : 0x53

         Memory Detail                 :



                                  Block Poll               Page                       Polled

           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack

           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------

           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff

           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff

           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00

           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00

           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00



         Programmer Type : Arduino

         Description     : Arduino

         Hardware Version: 3

         Firmware Version: 5.0

         Vtarget         : 0.3 V

         Varef           : 0.3 V

         Oscillator      : 28.800 kHz

         SCK period      : 3.3 us

avrd


avrdude: AVR device initialized and ready to accept instructions



Reading | ################################################## | 100% 0.00s



avrdude: Device signature = 0x1e950f (probably m328p)

avrdude: reading input file "C:\Users\RR\AppData\Local\Temp\arduino_build_487281/Power_Unit.ino.hex"

avrdude: writing flash (14878 bytes):



Writing | 

avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x00

avrdude: stk500_cmd(): programmer is out of syncude: stk500_cmd(): programmer is out of synce: stk500_cmd(): programmer is out of sync

20

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

AVR Part                      : ATmega328P

У Вас не ATmega328P, а LGT8F328, через что прошиваете микроконтроллер?

21

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Да, LGT8F328,Arduino Ide 1.8

22

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Вы добавили поддержку платы в ARDUINO IDE - http://rcl-radio.ru/?p=129966 ?

23

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

Да- на первом строке  code error написано

24

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

У Вас плата LGT8F328P-LQFP32 MiniEVB?

Да- на первом строке  code error написано

???

25

Re: ИП 0-25B 0-2A | СТАБИЛИЗАЦИЯ ПО ТОКУ

de]Arduino: 1.8.16 (Windows 10), Board: "LGT8F328, Default (64), External (assumes 32MHz crystal), 32 MHz, 328P-LQFP32 (e.g. MiniEVB nano-style or WAVGAT)"