Отговори на тема  [ 14 мнения ] 
Намаляване на консумацията на контролер 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Намаляване на консумацията на контролер
Привет,
От доста време се каня да чопля по една платка която правя, но днес от скоро ми остана време,
та проблема е:

не мога да сведа консумацията на PIC 18F6722 до приемливи за мен стойностти когато е в sleep режим.
Доста мъчих но, не съм много в час с тази посока и може да бъркам тотално нещата :(
Минимума който успях е 24 mA в приспано състояние.
Мислех че имам утечка някъде по платката, но сега разкачих процесора и има свързан само захранване и кварц. Но няма промяна.

Предната платка беше с PIC18F458 - там нямах проблем, в sleep си държеше 1-2 mA , ама тук нещо ме озадачава.

Ето кода който е за проба, ако може да дадете съвети как да действам че запецнах. :?
CCS compilator

Пробвах и двата варианта да задавам на изходящите портове и високо и ниско ниво, и съвсем малка е разликата в консумацията. Иначе си влиза в sleep режим, и си излиза ако е разрешено прекъсване.

Не гоня постижения , 2-3 mA ми е супер.

Код:
#include <18F6722.h>

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOPUT
#FUSES hs
#FUSES NOXINST                  //Extended set extension and Indexed
#use delay(clock=10M )
//**************************************************
#byte pA   =0xF80   //port a   //
#byte pB   =0xF81   //b         //
#byte pC   =0xF82   //c         //
#byte pD   =0xF83   //d         // 
#byte pE   =0xF84   //port e   //
#byte pF   =0xF85   //port e   //
#byte pG   =0xF86   //port e   //
// *********************************
//*********  ************
#Define  SetConfigPortA     192
#Define  SetConfigPortB    0
#Define  SetConfigPortC   0
#Define  SetConfigPortD     0
#Define  SetConfigPortE     0
#Define  SetConfigPortF     0
#Define  SetConfigPortG     0

/*/*********   ************
#Define  SetConfigPortA     255
#Define  SetConfigPortB    255
#Define  SetConfigPortC    255
#Define  SetConfigPortD     255
#Define  SetConfigPortE     255
#Define  SetConfigPortF     255
#Define  SetConfigPortG     23
//**************************************************/

Void MAIN (){
     
     set_tris_b(SetConfigPortB);
     set_tris_a(SetConfigPortA)
     set_tris_c(SetConfigPortC);
     set_tris_d(SetConfigPortD);
     set_tris_e(SetConfigPortE);
     set_tris_f(SetConfigPortF);
     set_tris_g(SetConfigPortG);

      disable_interrupts(INT_RB);// turn on interrupts
      disable_interrupts(INT_RDA);// turn on interrupts 

      ext_int_edge(H_TO_L);
      disable_interrupts(INT_CCP1);
      disable_interrupts(INT_CCP2);
      disable_interrupts( INT_TIMER0);
      disable_interrupts( INT_TIMER1);
      disable_interrupts( INT_TIMER2);
      disable_interrupts( INT_TIMER3);
      disable_interrupts(GLOBAL);
            /********ADC SETUP*******************/       
     setup_adc(ADC_OFF); // Internal 2-6us
     setup_timer_0(RTCC_OFF );
     setup_ccp1(CCP_OFF);
     setup_timer_1( T1_DISABLED );
     setup_timer_2( T2_DISABLED, 0xc0, 2 );
     setup_timer_3( T3_DISABLED );
       
delay_ms(1000);

While(true)
   {
   sleep();
    }
}

   


Съб Фев 08, 2014 10:06 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение Re: Намаляване на консумацията на контролер
Сигурен ли си че си откачил всички пинове . При тази ти конфигурация на трисовете почти всичко ти е изход и подозирам че има товар някъде .... Пробвай да сетнеш всичко като вход както ти е втората поредица #Define SetConfigPortХ 255.
Този пикльо е нановат така че и 1ма му е много в просъница.
Тествай и с вътрешния осцилатор дали ще има промяна ....
Но ми мирише на натоварен пин-изход.

_________________
Код:
while(true);


Нед Фев 09, 2014 12:31 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
Да всичко е откачено, от пиновете, сигурен съм защото, пик-а е на преходна платка и от нея със 'жици' към другата част от схемата. Та тия жици сега висят свободно. кварца съм го запоил директно на преходната платка, Напрежение (+5V ) подавам направо на една от 'жиците', и друго .... ми няма друго.
Точно за това ми е чудно и на мен, защо така става?!

Да и това което спомена съм го пробвал
#Define SetConfigPortХ 255. ( споменах го във поста си горе ) и промяната е минимална : 1-2 mA.
Почвам да се съмнявам вече: възможно ли е ПИК-а да е сдал багажа и нещо вътрешно късо да дърпа ток. Ама пък всичко по него си работи перфектно ?!
Преди да 'заспи' дърпа 40-50 mA и после пада на 24.
Ампермера е сравнително добър за любителски така че отпада като причина за грешка в меренето:
http://www.google.bg/url?q=http://www.l ... 1IUEIBz6NQ


Нед Фев 09, 2014 12:48 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Намаляване на консумацията на контролер
Значи 25ma му дават на 40MHz работещ. Това че ти пада с толкова горе долу, значи че ядрото явно си заспива обаче остават други неща дето да работят. Сега не ми се гледа дали тая серия имаха възможност за тотално изключване на периферии. Обаче не знам коя периферия може да дърпа толкова много ток... Напълно е възможно да имаш някаква неразбория с входове/изходи - обърни внимание на аналогови/цифрови периферии - по принцип по даташитовете пишат да се внимава аналоговите пинове как точно се ползват и че може при определени условия да се получи увеличена консумация.


Нед Фев 09, 2014 10:21 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
В реалната програма наистина работи на 40 МХз = PLL + 10 Mhz кварц.
Но сега за теста съм го сетнал на 10 Мхз.
Продължавам с опитите за сега, пробвам различни конфигурации за пиновете , но все още резултата е отрицателен от към намаляне на тока :)


Нед Фев 09, 2014 2:18 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Май 01, 2009 4:01 pm
Мнения: 1438
Мнение Re: Намаляване на консумацията на контролер
Тоя пик е много далече от нановат. За ниска консумация ти трябва ниско захранващо напрежение и ниска честота. С тия 10 мХз въобще не си в ниските граници. Свободните пинове ги направи входове и ги дай на маса!


Нед Фев 09, 2014 3:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Намаляване на консумацията на контролер
То не е въпроса в нановата - въпроса е, че 50ма на 10MHz са му множко сякаш. Или нещо чипа е оакан или нещо тотално е омазано с конфигурацията на пиновете.


Нед Фев 09, 2014 5:20 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
Все още няма напредък, пробвах различни варианти: с вътрешен осцилатор, с външен, изходите на 0 , на '1' - ца.... ама пак дърпа ток.
Накрая викам да премеря съпротивлението м/у Захранващите пинове и ... опаа дава ми твърдо 220 Ома.
И като смятам
I=5V/220 = 22-23 mA.

Това м/у всички VDD и VSS пинове ,
На АVdd и AVss дава 7-8 kOм.
Честно казано не знам дали е нормално 220 ома, на мен ми се струва че НЕ, ?
Мерих на 'диод' с мултицета и дава 0.15V м/ у VDD и VSS, също и м/у VSS и VDD .
Не знам каква е вътрешната схема, но нормално ли е това?


Съб Фев 15, 2014 9:32 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение Re: Намаляване на консумацията на контролер
Ми не е нормално - какво е преживяло пикчето?


Съб Фев 15, 2014 11:57 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
Там е работата, че нищо не му се е случвало, поне не съм забелязал.
Пък си работи нормално: CCP, UART, Timer, ADC, управляава си дисплей 128х64, бутони - всичко на 40 mhz.
Май ще се търси нов :( , ако не открия някое странно късо, м/у пътечките на преходната платка ( самоделка е )


Нед Фев 16, 2014 12:31 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пон Авг 15, 2011 5:37 pm
Мнения: 12
Мнение Re: Намаляване на консумацията на контролер
Ако държиш консумацията на пика да е ниска трябва да се съобразиш с няколко неща.

1. Вътрешен осцилатор 31kHz.
2. Sleep mode когато е възможно
3. Използвай ниско активно ниво на пиновете. Т.е. Ако захранваш светодиод, анода на +5V резистор и катода на изход на контролера. По този начин тока не към диода не преминава през Vdd на контролера.
4. Дефинирай всички пинове които не използваш на изходи с ниско ниво, а не входове. Човече висящите входове са си "антени" за смущения за контролера.

Успех!


Чет Мар 06, 2014 10:41 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
Благодаря за съветите :)
Взех си нов процесор, и като го лепна за платката ще продължа с тестовете.


Пон Мар 10, 2014 12:43 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Фев 13, 2013 3:35 pm
Мнения: 1803
Мнение Re: Намаляване на консумацията на контролер
Имам същият проблем с Атмелски процесор. И това ни е 2-ра платка. Първата я здадохме и нямаше проблеми, втората я налепих на бързо, понеже уж всичко трябваше да си тръгне- върви но консумацията не пада под 40мА. Сменихме процесора, откачихме ацп-то, не помогна. При резетиран процесор и с тристейтови входове качва над 50мА. Направо съм в ужас ;)


Пон Мар 10, 2014 10:52 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Чет Мар 19, 2009 8:33 pm
Мнения: 804
Мнение Re: Намаляване на консумацията на контролер
Да завърша темета.

След като ми остана време и за тая платка, най после лепнах нов процесор за нова подложка и чудото стана, всичко си дойде на място.
Даже без някакво старание да изключвам периферии и неизползвани пинове ПИК-а си дърпа 60-70 uA , цялата схема заедно с стабилизатора 1.3 mA.
Явно предния ПИК беше заминал от към захранване.


Пон Май 05, 2014 9:59 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 14 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни