Измеритель всего, что попадется под руку (RLC-метр)

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

и еще по поводу схемы.
у меня все резисторы в RC фильтрах 150 Ом.
С11, С12 вообще выкинул, с ними вроде хуже
а если их нет, то и R4, R5 как-бы ни к селу ни к городу.
ohmycode!
primuss3.com
sergey777.68
Потрогал лапой паяльник
Сообщения: 355
Зарегистрирован: Вс ноя 16, 2008 08:45:46
Откуда: Вологда

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение sergey777.68 »

я тут немного исходник поковырял, собрал прошивку что изменилось. :shock:
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

попробуй, проверь
ohmycode!
primuss3.com
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Neekeetos »

slav0n писал(а):проверь

Надпись на заставке поменяна и нифига не меряет. Вполне по пионерски :), в планах наверно вообще все надписи переделать?
Информация по RLC mini находится >тут<
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):и нифига не меряет
странно... а у меня меряет...
может я не ту прошивку выложил

ты кондеры пробовал удалять?
ohmycode!
primuss3.com
Аватара пользователя
Alex62
Мучитель микросхем
Сообщения: 454
Зарегистрирован: Чт ноя 19, 2009 13:37:21
Откуда: Минск

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Alex62 »

Ну а после кондеров надо попробовать резисторы поудалять. Ну и дальше по схеме...... Неимоверный простор для творчества. :))
Общаюсь на ТЫ. Без расшаркиваний.
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):в планах наверно вообще все надписи переделать?

хм... с таким подходом нафига же тогда вообще было сорцы выкладывать?

вот правленый мной кусок.
и я думаю его еще можно оптимизировать в лучшую сторону

Код: Выделить всё

   GPIOA->BSRR = GPIO_Pin_15; // BACKLIGHT ON

   lcd_init();
   lcd_clear();

   lcd_gotoxy(0,0);lcd_putstr("  RLC ver 6.03  ");
   lcd_gotoxy(0,2);lcd_putstr("   Neekeetos    ");
   lcd_gotoxy(0,3);lcd_putstr("   @yahoo.com   ");
   lcd_gotoxy(0,4);lcd_putstr(" big thanks to  ");
   lcd_gotoxy(0,5);lcd_putstr(" TESLight, Link ");
   lcd_gotoxy(0,7);lcd_putstr(" play by slav0n");

//   while( buttons()  != 0 );// wait BUTTON release
/*
   if( (cstatus & 0xFFFFFF00) != 0x80000000 )
   {
      cstatus = 0x80000000;findex = 0;
   }
*/
   if(findex <0 || findex >= FCNT ) findex = 0;
   freq = flist[findex];
   fillSine(freq);

   measure(&Z,16);

   lcd_clear();

   lcd_gotoxy(0,1);lcd_putstr("________________");
   lcd_gotoxy(0,6);lcd_putstr("----------");

   R.Re = SHUNT;
   R.Im = 0;

   while (1)
   {
//----------
      btn = buttons();

      if( btn & PWR_BTN )   bl_status = !bl_status;   //pwr/backligt
      if( btn & SP_BTN )   rsrp = ! rsrp;         //ser/par
      if( btn & REL_BTN )   rel = !rel;

      if( btn & SP_BTNL )
      {
         findex++;
         if(findex>= FCNT ) findex = 0;
         freq = flist[findex];
         fillSine(freq);

         rsrp = ! rsrp;
      }
      if( btn & REL_BTNL )
      {
         calibrate();
         rel =0;
         cstatus |= (1<<findex);
      }
      if( btn & PWR_BTNL )
      {
         lcd_clear();
         lcd_gotoxy(3*6,4);print(" Bye Bye..");
         measure(&Z,10);
         powerOff();
      }

      if(bl_status)GPIOA->BSRR = GPIO_Pin_15; // BACKLIGHT ON
      else      GPIOA->BRR = GPIO_Pin_15; // BACKLIGHT OFF
//----------

      lcd_gotoxy(0,0);lcd_putstr("                ");
      sputdec(s,freq);
      lcd_gotoxy(0,0);lcd_putstr(s);lcd_putstr("k  ");

      lcd_gotoxy(13*6,0);
      if(rsrp)lcd_putstr("PAR");
      else   lcd_putstr("SER");

      lcd_gotoxy(9*6,0);
      if(rel) lcd_putstr(">.<");
      else   lcd_putstr("   ");

      lcd_gotoxy(6*5,0);
      if(cstatus & (1<<findex)) lcd_putstr("CAL");
      else                 lcd_putstr("---");

//----------

      measure(&Z,1);

      // zx = zom * (zsm-zxm)/(zxm-zom)

      if( (cstatus & (1<<findex)))
      {
         cplx tmp1,tmp2;
         tmp1.Re = Zs[findex].Re - Z.Re;
         tmp1.Im = Zs[findex].Im - Z.Im;

         tmp2.Re = Zo[findex].Re;
         tmp2.Im = Zo[findex].Im;

         cplxMul(&tmp2,&tmp1);

         tmp1.Re = Z.Re - Zo[findex].Re;
         tmp1.Im = Z.Im - Zo[findex].Im;

         cplxDiv(&tmp2,&tmp1);

         Z.Re = tmp2.Re;
         Z.Im = tmp2.Im;
      }

      Z.Re = filter(0,Z.Re);
      Z.Im = filter(1,Z.Im);

      if(rel)   {
         Z.Re -= base.Re;
         Z.Im -= base.Im;
      }else{
         base.Re= Z.Re ;
         base.Im = Z.Im;
      }

      float ls = Z.Im/6.283185307/(freq*1000.0);
      float cs = -1/6.283185307/(freq*1000.0)/Z.Im;
      float d = Z.Re/Z.Im;
      float d2 = d*d;
      float q = 1/d;

      if(rsrp)      //PAR
      {
         ls = ls*(1+d2);
         cs = cs/(1+d2);
         Z.Re = Z.Re*(1.0+d2)/d2;
      }

      round++;
      if(round>2)
      {
         round = 0;

         printFloat(12,2,Z.Re,"Ohm");
      //   lcd_gotoxy(0,2);lcd_putstr("  ");
         lcd_gotoxy(0,3);lcd_putstr("R>");

         if(Z.Im > 0)
         {
            printFloat(12,4,ls,"H  ");
         //   lcd_gotoxy(0,4);lcd_putstr("   ");
            lcd_gotoxy(0,5);lcd_putstr("L>");
         }else{
            printFloat(12,4,cs,"F  ");
         //   lcd_gotoxy(0,4);lcd_putstr("   ");
            lcd_gotoxy(0,5);lcd_putstr("C>");
         }

         int qq = 10000*( 1.0+absolute(d));   if(qq >19999) qq = 19999;
         sputdec(s,qq);
         lcd_gotoxy(0,7);lcd_putstr("D .");lcd_putstr(&s[1]);lcd_putstr("    ");

         qq = absolute(q);   if(qq >9999) qq = 9999;
         sputdec(s,qq);
         lcd_gotoxy(8*6,7);lcd_putstr("Q ");lcd_putstr(s);lcd_putstr("    ");

      //   lcd_gotoxy(0,1);lcd_putstr("________________");
      //   lcd_gotoxy(0,6);lcd_putstr("----------");

      }
   }
}
ohmycode!
primuss3.com
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Neekeetos »

slav0n писал(а):ты кондеры пробовал удалять?
Они там с определенной целью стоят, например верхние частоты перестают нормально работать без них.

slav0n писал(а):хм... с таким подходом нафига же тогда вообще было сорцы выкладывать?
А какой подход? Я полагаю если человек вместо ответа на вопрос зачем менял начинает мычать невнятно и выкладывать исходники типа для сравнения, то это не дело и по большому счету не стоило ничего менять если результаты не поддаются описанию. Исходники выложены для тех , кто хочет что то улучшить или добавить, например использовать свой дисплей, сделать более удобный интерфейс ну и все в том же духе.
Информация по RLC mini находится >тут<
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):например верхние частоты перестают нормально работать без них.
возможно, но кто ими пользуется?
Neekeetos писал(а):вместо ответа на вопрос зачем менял начинает мычать невнятно и выкладывать исходники типа для сравнения
именно для сравнения, чтобы без невнятного словоблудия
Neekeetos писал(а):Исходники выложены для тех , кто хочет что то улучшить или добавить, например использовать свой дисплей, сделать более удобный интерфейс ну и все в том же духе.
наивно
ohmycode!
primuss3.com
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Neekeetos »

slav0n писал(а):именно для сравнения, чтобы без невнятного словоблудия
Я сходу вижу только то что там питание теперь не включается нормально поскольку строка нужная закоменчена, остальные "изменения" как то даже и не интересно глядеть. Зачем говнокодить и потом еще и выкладывать исходник на форум?
slav0n писал(а):наивно
А для чего они еще могут понадобиться? заменить надпись на экране на свое имя? Забор для этого есть.
Информация по RLC mini находится >тут<
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):питание теперь не включается нормально поскольку строка нужная закоменчена,

странно... вот сижу уже полдня включаю - всё нормально включается... что не так?
Neekeetos писал(а):остальные "изменения" как то даже и не интересно глядеть.
ну звиняй, если не угодил.
ohmycode!
primuss3.com
Аватара пользователя
ozzy
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вс янв 18, 2009 20:15:27
Откуда: UA ZT

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение ozzy »

о, теперь я понимаю почему большинство отказывается давать исходники, :write:

возможно, но кто ими пользуется?


весь мир пользуется, а тут пуп земли нашелся

и я думаю его еще можно оптимизировать в лучшую сторону


ждем с нетерпением новых перлов
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

ozzy писал(а):о, теперь я понимаю почему
я тоже тебя понял
ohmycode!
primuss3.com
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

и ещё я бы рекомендовал исключить лишнюю обработку в главном цикле
примерно таким способом

Код: Выделить всё

static int oldbtn =-1;
   while (1)
   {
      btn = buttons();

      if(btn == oldbtn)goto M1;
      else          oldbtn = btn;

      if( btn & PWR_BTN )   bl_status = !bl_status;   //pwr/backligt
      if( btn & SP_BTN )   rsrp = ! rsrp;         //ser/par
      if( btn & REL_BTN )   rel = !rel;

      if( btn & SP_BTNL )
      {
               
                 *
                 *
                 *

      M1:
      measure(&Z,1);

      // zx = zom * (zsm-zxm)/(zxm-zom)

      if( (cstatus & (1<<findex)))
      {

                 *
                 *
                 *
ohmycode!
primuss3.com
Scelikr
Встал на лапы
Сообщения: 120
Зарегистрирован: Ср авг 14, 2013 12:35:24

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Scelikr »

А исходники 6.03t можно глянуть?
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):по большому счету не стоило ничего менять если результаты не поддаются описанию.

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

тут ещё обнаружилось что реальные частоты измерения не соответствуют программным
у меня почему-то меряется вот так
1.12
10.1
28.2
55.3
110
Последний раз редактировалось AlekseyEnergo Сб мар 08, 2014 16:35:25, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.2 правил форума. Подредактировал. Предупредил!!
ohmycode!
primuss3.com
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Neekeetos »

Scelikr писал(а):А исходники 6.03t можно глянуть?
Нету их, тестовую прошивку я постоянно меняю, сейчас она вообще без экрана с выводом в компорт сырых данных. Если есть какой то особый интерес именно в этом, напиши в личку. Именно в т версии я переделал прерывание цап и поменял тайминги с тем чтобы он меньше влиял на измерения.
slav0n писал(а):тут ещё обнаружилось что реальные частоты измерения не соответствуют программным
На моей прошивке то? Или вновь приобретенный косяк?
Информация по RLC mini находится >тут<
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):На моей прошивке то? Или вновь приобретенный косяк?
на твоих всё нормально.
Может в выложенных сорцах с тактированием ЦАПа что-то не так?
ohmycode!
primuss3.com
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение Neekeetos »

slav0n писал(а):Может в выложенных сорцах с тактированием ЦАПа что-то не так?
Обрадовать не могу, исходники именно те из которых собрана 603. Может проц неверно тактироваться если ты не смог использовать стартап файл из моего архива, либо из за компилятора обработчики прерываний не успевают, там запас небольшой по времени, процентов 30.
Информация по RLC mini находится >тут<
Аватара пользователя
slav0n
Опытный кот
Сообщения: 882
Зарегистрирован: Ср дек 01, 2010 00:38:15
Откуда: Харьков
Контактная информация:

Re: Измеритель всего, что попадется под руку (RLC-метр)

Сообщение slav0n »

Neekeetos писал(а):либо из за компилятора обработчики прерываний не успевают
но ведь у меня реальная частота выше а не ниже...
Ладно, поиграю с регистрами таймера.

после игр, с такой записью частоты попадают

Код: Выделить всё

TIM2->ARR = 71;///63;
ohmycode!
primuss3.com
Ответить

Вернуться в «Статьи»