Jump to content
Vermona

Нужен Микроконтроллер Под 9 В Питания Со Входом Ацп И Выходами На Жки

Recommended Posts

Поскольку с микроконтроллерами вплотную дел никогда раньше не имела, а поиск в Гугле дал столько вариантов, что разбираться с ними не один день, а время уже поджимает, прошу совета в выборе микроконтроллера, способного питаться от 9 В, с одним, а лучше двумя входами АЦП (10...12 разрядов - не критично) и выходами на ЖКИ (3,5 разряда, можно 3 разряда). Он должен тупо оцифровывать подаваемый на него аналоговый сигнал относительно опорного напряжения, т.е., фактически иметь дифференциальный аналоговый вход и выводить полученное значение на ЖКИ.

Нужно для курсового проекта, который был сделан под АЦП ICL7106 имеющий как раз дифференциальный вход и выход на ЖК. Для поставленной перед проектом задачи вроде ничего круче не надо, но препод уперся, что микросхема устаревшая и нужен именно микроконтроллер. Теперь приходится все переделывать на скорую руку.

Поскольку реально прибор делаться не будет и программа под него тоже писаться не будет, то сгодится любой МК, подходящий под указанные выше требования.

Буду очень благодарна за быстрый совет.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Марки (типа) МК в Вашем посте я не увидела. Что хотелось бы в первую очередь.

И совет Ваш не совсем годится. Прибор будет с батарейным питанием и потребление тока критично. Переделывать аналоговую часть под 4,5-вольтовое или 6-вольтовое питание сейчас уже некогда. АЦП ICL7106 подходил под все требования в самый раз, но препод решил иначе. Теперь приходится резать по живому и тачать тоже на живую нитку.

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

А нет такого. Берите какой-нибудь модный STM и ставьте на вход (о ужас, как сложно) делитель.

Share this post


Link to post
Share on other sites

Я ожидала конкретного ответа. А "Какой-нибудь" - и сама могу написать. ВОт только препод этого не поймет.

Share this post


Link to post
Share on other sites
                     

Контроль в спящем режиме: повышение КПД батарейного питания с помощью DC/DC MAX17225 nanoPower

В статье описан практический опыт разработчика, применившего повышающий DC/DC-преобразователь MAX17225. В результате ряда практических экспериментов, потребовавших существенного обновления технической базы компании-разработчика, автор убедительно доказывает преимущества выбранного компонента и схемотехнической реализации. Увеличенное на 50% время автономной работы лучше других аргументов говорит об эффективности конвертеров MAX17225, а также о важности предварительной оценки элементной базы.

Подробнее

Спасибо! Это уже совсем тепло. Правда, он намного мощнее, чем мне надо, но главное, что не слабее. И по потреблению (0,33 мА) тоже подойдет, даже при его 5-вольтовом питании. Если не будет других, более простых вариантов, то воспользуюсь Вашим.

Еще раз большое спасибо!

Share this post


Link to post
Share on other sites

Посмотрите на

ATmega8HVA, Vcc 1.8 - 9.0, 6 ADC,

ATmega16HVA, Vcc 1.8 - 9.0, 8 ADC,

ATmega16HVB, Vcc 4.0 - 25, 8 ADC,

ATmega32HVB, Vcc 4.0 - 25, 8 ADC.

Edited by dead_rat

Share this post


Link to post
Share on other sites

Спасибо, конечно, но он будет похуже, чем первый рекомендованный Вами вариант из-за максимального напряжения питания всего 3 В. При том, что опорное напряжение = 2,5 В, а полезный сигнал - еще сверх этого уровня. Делитель ставить - в точности терять. Вроде бы 48 линий входа/выхода и позволили бы подключать ЖКИ напрямую, но для тех матриц, что я нашла, требуются 5-вольтовый размах сигналов. Будет сложновато согласовывать.

Поэтому я сейчас рассматриваю либо Ваш 1-й вариант (его плюс - готовый интерфейс выхода на ЖКИ), либо ATmega8HVA (его плюс - 9-вольтовое питание, а ток потребления 2,5 мА сопоставим с потреблением аналоговой части, даже меньше). Конечно, придется что-то колхозить по выходу, но у одногруппников вроде есть готовые схемы подобных интерфейсов, правда, для светодиодных матриц. Переделать их под ЖКИ недолго.

12-битной разрядности АЦП и двух коммутируемых входов ATmega8HVA мне за глаза хватает. В одном такте я измеряю опорное напряжение, а во втором - выходной сигнал. Вычитаю первое из второго и получаю нужное мне значение. Всё в шоколаде.

Edited by Vermona

Share this post


Link to post
Share on other sites
В одном такте я измеряю опорное напряжение, а во втором - выходной сигнал. Вычитаю первое из второго и получаю нужное мне значение. Всё в шоколаде.

Ну, здорово, блин ! А зачем вычитать-то? Если уже измерили сигнал ...

Share this post


Link to post
Share on other sites

выходами на ЖКИ (3,5 разряда, можно 3 разряда).

К стати определитесь с индикатором. Они в частности бывают со встроенным контроллером. тогда вам проще. Ну а так вот статейка по индикатору

http://radiokot.ru/articles/26/

Share this post


Link to post
Share on other sites

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

2 musa56: нельзя. Это же курсовой. Собирать надо из отдельных "кирпичиков". Да и не будет это собираться в реальности. Но написать и рассчитать всё надо, как будто бы действительно проектировалось.

Edited by Vermona

Share this post


Link to post
Share on other sites

А у АЦП есть опорное напряжение? Оно какое-то другое? А чему оно равно? Кстати, это важные вопросы и преподаватель может их задать ...

Share this post


Link to post
Share on other sites

Собирать надо из отдельных "кирпичиков".

Вы не поняли. Это и будет отдельным кирпичиком. Просто индикаторы бывают разные. И со встроенным контроллером такой же индикатор только отображением в нем занимается внутренняя схема и вы в него просто передаете информацию которую нужно отобразить. Большинство подобных индикаторов именно такие.

И по АЦП. У него всегда есть вход опорного напряжения. На него подаётся напряжение со специальной микросхемы источника опорного напряжения. Но если особая точность не нужна (это не ваш случай) то используют напряжение питания.

Share this post


Link to post
Share on other sites

2 musa56: Да, Вы правы. Это здорово упростило бы соединение МК ATmega8HVA с ЖКИ. Спрошу в среду на консультации, можно ли такое применить.

2 Yurkin2015: Все то же опорное напряжение + масштабирующий усилитель. Одно и то же опорное поступает на все узлы и его нестабильность автоматически компенсируется.

Edited by Vermona

Share this post


Link to post
Share on other sites

Одно и то же опорное поступает на все узлы и его нестабильность автоматически компенсируется.

Это вы о чем? И куда еще вы хотите его подавать и что компенсировать? Это напряжение подается на специальный вход АЦП и является образцовым. И фактически оно внутри сравнивается с измеряемым напряжением.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Спрошу в среду на консультации, можно ли такое применить.

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

Edited by musa56

Share this post


Link to post
Share on other sites

Большое спасибо всем за внимание к моей задаче. Папе - особенно. Курсовой сдала, получила "С" (4 балла). Микроконтроллер был использован PIC18F65K90 (АЦП с дифференциальным входом + непосредственное управление ЖКИ).

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Jesterary
      Здравствуйте. Подскажите, был ли у кого-то опыт отправки изображений с камеры (подключенной через UART или bluetooth-камеры) через GPRS (у меня модуль SIM800L, но в целом это не принципиально) на удаленный сервер? Средствами управляющего микроконтроллера, пусть даже ардуины какой-нибудь, но не малины. Возможно ли это вообще? Хотелось бы, конечно, использовать в проекте беспроводную камеру и общаться с ней, ибо камеры, подключаемые напрямую так себе качество дают. 
      Сразу скажу, что важна именно такая связь. Микроконтроллер + модуль связи + камера находятся в коробке и путешествуют по городу, в это время человек сидя дома на диване может смотреть фото с этой камеры. Смартфон для моих целей не подойдет, суть именно в микроконтроллере с модулями.
      Если у кого-то такое получалось - поделитесь, пожалуйста :)
      А то нахожусь в некоторой прострации и даже не знаю, в какую сторону думать.
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<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: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // 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); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
  • Сообщения

    • поставить получится, места хватает. но вот тут подумал, возможно занкомый поедет в выходные в питер. Хочу его попросить купить подстроечники нужные, что бы и не выпаивать ничего и сделать все по человечески. Какие лучше всего ставить емкости по вольтажу? или все же не имеет значения? что бы все было как надо)   вот примерно такой набор подойдет? 
    • Про диаметр не забудьте. Чтобы влез. Лучше прикупите ещё такой полярный. Они маленькие. Вдруг ваш не удастся нормально поставить.
    • понял. неполярник 47мкФ 50в и полярник 1000мкФ 6.3-16 в. второй завтра докуплю.
    • Тогда лучше пока не трогайте. Поменяйте конденсаторы и погоняйте на сигнале полчасика. Потом уберите сигнал и замерьте ТП. Осторожно, чтобы не задеть ничего.
    • постоял, нагрелся и второй. но температура слега на ощуп разница. ток покоя 14.3 стал
    • Повлияет. Лучше потом подстроить немного, чем спалить сразу по неосторожности. Вдруг подстроечник не так впаяете. Или ещё что.
    • понял вас, лампа в разрыв ноля или фазы из розетки. на ТП покоя при замере никак не повлияет?   
×
×
  • Create New...