Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос по ацп
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 22:49:09

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вопрос по ацп
СообщениеДобавлено: Чт апр 25, 2019 21:59:15 
Открыл глаза

Зарегистрирован: Пн сен 11, 2017 10:49:54
Сообщений: 53
Рейтинг сообщения: 0
Здравствуйте! Имею чип attiny2313. Хочу сделать на нем датчик освещенности. Но встроенного ацп в attiny нет. Вопрос такой: как можно реализовать программный ацп? Желательно на си! Про точность понимаю, но высокая и не нужна. Пожалуйста, не надо предлагать взять другой чип или использовать внешний ацп!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Чт апр 25, 2019 22:15:03 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5954
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6638
Откуда: Ливны
Рейтинг сообщения: 0
kot2004 писал(а):
как можно реализовать программный ацп?
Как вариант - одним каналом ШИМ шимить сигнал с линейно меняющейся скважностью, отфильтровать его, и подать на один из входов встроенного аналогового компаратора. На второй вход компаратора подать измеряемое напряжение. При "срабатывании" компаратора из текущего значения скважности ШИМ вычислить напряжение. :roll:

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Чт апр 25, 2019 22:30:11 
Здравствуйте! Имею чип attiny2313. Хочу сделать на нем датчик освещенности. Но встроенного ацп в attiny нет.

У тини2313 есть аналоговый компаратор, вот на нём и организуй. :write: И ничего мудрить не придётся. :)


Вернуться наверх
   
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Чт апр 25, 2019 23:42:47 
Открыл глаза

Зарегистрирован: Пн сен 11, 2017 10:49:54
Сообщений: 53
Рейтинг сообщения: 0
Про аналоговый компаратор я знаю! А как это программно в си организовать? Можно небольшой пример кода?


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Пт апр 26, 2019 00:14:43 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 2
Медали: 1
Получил миской по аватаре (1)
kot2004, причём тут Си ? Доку нужно курить на камушек в первую очередь.
Во вторых - нужно схемное решение. Оно есть у Вас ?
А язык - дело тридесятое. Если Вы так хорошо знаете Си, то написать программу, зная железо, не составит никакого труда ...


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Пт апр 26, 2019 06:40:56 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 390
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7010
Откуда: Ижевск
Рейтинг сообщения: 0
Код:
if(comparator) svet= 1;
else svet= 0;

В чём проблема?

_________________
Docendo discimus


Вернуться наверх
 
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Пт апр 26, 2019 08:20:23 
А как это программно в си организовать? Можно небольшой пример кода?

На Си не могу… ещё не изучал его. Пишу на непопулярном АВ (Algorithm Builder)… :)


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Сб апр 27, 2019 13:33:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
Идея использования компаратора разжевана ДиХальтом - вот http://easyelectronics.ru/avr-uchebnyj- ... atora.html
Там даже уже тня2313 - единственное, ДиХальт там писал на асме.
Но асм с комментариями, так что ничего не стоит переписать на сях...

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Сб апр 27, 2019 17:40:47 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 1
Три строчки кода
Спойлер
Код:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

volatile uint8_t a,f;

// Analog Comparator interrupt service routine
ISR(ANA_COMP_vect)
{
// Place your code here
f=1;
 ACSR |=(1<<ACI); 
   
}

int main()
{
// Declare your local variables here

// Crystal Oscillator division factor: 1

CLKPR=(1<<CLKPCE);
CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);

// Input/Output Ports initialization
// Port A initialization
// Function: Bit2=In Bit1=In Bit0=In
DDRA=(0<<DDRA2) | (0<<DDRA1) | (0<<DDRA0);
// State: Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

// Port B initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=Out Bit1=In Bit0=In
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=0 Bit1=T Bit0=T
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port D initialization
// Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Disconnected
TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00);
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Disconnected
// OC1B output: Disconnected
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<TOIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<ICIE1) | (0<<OCIE0B) | (0<<TOIE0) | (0<<OCIE0A);

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=(0<<INT1) | (0<<INT0) | (0<<PCIE);
MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

// USI initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC);

// USART initialization
// USART disabled
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization
// Analog Comparator: On
// The Analog Comparator's positive input is
// connected to the AIN0 pin
// The Analog Comparator's negative input is
// connected to the AIN1 pin
// Interrupt on Falling Output Edge
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=(0<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (1<<ACIE) | (0<<ACIC) | (1<<ACIS1) | (0<<ACIS0);
// Digital input buffer on AIN0: Off
// Digital input buffer on AIN1: Off
DIDR=(1<<AIN0D) | (1<<AIN1D);


// Global enable interrupts
sei();
f=0; a=0;
while (1)
      {
      // Place your code here
   OCR0A++;
   _delay_ms(10);
   
   if (f){
    a=OCR0A;
      f=0;
   }
      }
 return 0;     
     
}

ИзображениеНа частоте 1Мгц частота ШИМ 31кГц, двойной rc-фильтр иначе здорово шумит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Сб апр 27, 2019 21:21:20 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
тут еще следует учесть, что компаратор в тиньке врядли рельс-ту-рельс... Соответственно, вблизи нля и вблизи питания могут быть нюансы...

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Чт май 02, 2019 04:05:52 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
если скорость не важна, но нужно поточней, то ШИМ + интегрирующая цепочка + компаратор, если точность не важна, но нужно побыстрее, то можно замерить время заряда конденсатора...
я пробовал примерно таким образом питание мерять - замерял время заряжания конденсатора, всё работает, но ТКС многих конденсаторов оставляет желать лучшего... (при изменении температуры показания плывут)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос по ацп
СообщениеДобавлено: Чт май 02, 2019 09:51:14 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 63
Рейтинг сообщений: 536
Зарегистрирован: Чт июл 28, 2016 07:58:37
Сообщений: 1925
Откуда: Kyiv, UA
Рейтинг сообщения: 0
Ivanoff-iv, тут еще хуже.
Кроме ТКЕ (не ТКС) конденсатора, тут еще есть засада в том, что при изменении температуры хорошо так гуляет и опорник внутри меги/тиньки.
А еще и частота встроенного "калиброванного" RC-генератора, если тактирование не от кварца.

_________________
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y