16+
Понедельник
15 июля
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры MSP430

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
Гудвин  (27.03.2019 17:47 - 27.03.2019 23:08, файл(ы)) , в ответ на Что то тихо тут совсем стало. Вбрасываю: К одному из входов компаратора MSP через резистор 20 кОм подключена емкость 2200 пФ на землю (так уж вышло неудачно. Изменить невозможно). Второй вход компаратора можно подключить внутри к встроенному автор: Гудвин
В общем, "высокоточный программно-емкостный реостат" тупо не уместился в отведенные на все-про все 2.5 кБ flash :) Посему применил способ для определения "конченности" батареи в пределах 2В (манипуляция с делителем 0.25Vcc и опорой. Зависит только 
от их точности). Ну и добавил довесок, позволяющий при тактовой 800 кГц на "излете экспоненты" таки замерить несколько градаций выше этих 2В. Уже трудится, если чО ;) На картинке внизу справа девайс 10-летней давности, залитый компаундом . Наконец удалось подлезть к нему и полностью диагностировать. Имхо, передатчик скопытился еще после заливки - ПАВ резонатор не силах "захватить" сильно ушедшую при этом вниз частоту трехточки. Кстати, частоту замеряю "анализатором спектра", етить. На плате ридера имеется радиомодуль CC1101 на 868 Мгц. Он прекрасно чувствует расположенный поблизости передатчик на 434 и с откушенной антенной(чтобы не лезли помехи). 40 каналов с шагом 25 кГц с центральной частотой 433.92.
char tst_bat(unsigned char t)
{
   char i;
   WDTCTL = WDT_ADLY_250;  // отменим WDT прерывания на 250 мс
   CS_ON;                  // отключим выход DATA MCP2030A (порт 2.4 DATA)
   DATA_0;                 // разрядим емкость в RC цепочке, чтобы заряд происходил всегда от Vss  
   DATA_OUT;               // порт 2.4 DATA в 0  
   delay(40);              // достаточное время разряда 
   DATA_IN;                // порт 2.4 DATA на вход  
   CAPD=CAPD4;             // вообще отключим "цифру" от порта 2.4 "DATA"
   
   CACTL2 = P2CA1;                        // P2.4 подцепим к CA1
   CACTL1 = CAREF_1 + CAON + CARSEL;      // подадим на  P2.4 0.25*Vcc,  включим компаратор
   delay(t);                              // заряжаем RC цепь от  0.25*Vcc в течении времени "t"
   CACTL1 = CAREF_2 + CAREF_1 + CAON;     // подключим ref 0.5V к входу CA0, включим компаратор
   i = CACTL2 & CAOUT;                    // запомним состояние выхода компаратора   

   CACTL1 = 0;             // выключим компаратор
   CAPD=0;                 // вернем на родину "цифру" 
   CS_OFF;                 // вернем на родину выход DATA MCP2030A (порт 2.4 DATA)
   return(i);              // вернем результат замера 
}
void check_batt(void)
{
  if (tst_bat(150)) {Vbat=20; return;} // "Приплыли". Здесь самое точное измерение, зависящее только от точности REF и делителя
0.25Vcc MSP.
  if (tst_bat(40))  {Vbat=21; return;} // Здесь и ниже +- лапоть, но устраивает для диагноза
  if (tst_bat(35))  {Vbat=22; return;}
  if (tst_bat(30))  {Vbat=23; return;}
  if (tst_bat(27))  {Vbat=24; return;}
  if (tst_bat(23))  {Vbat=25; return;}
  Vbat=30;          // напряжение в норме (выше 2.5В)...
  // RF_OFF;           // выключим передатчик (нагрузка 2 мА), если он был включен для теста
  // с выключеним  лопухнулся, посему закомментарил. ON/OFF изображу в main()
  // осталось еще пара десятков байтиков во flash ;)
}
Прикреплённые файлы:
Безымянный.PNG:50 K

Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX