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-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

Спасибо! Это уже совсем тепло. Правда, он намного мощнее, чем мне надо, но главное, что не слабее. И по потреблению (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; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
  • Сообщения

    • Перепроверил в paintbrush-е - потерял одного керамического товарища C5.  Но, все-равно, это мне не помогает приблизиться к четкому пониманию
    • @Artik999  Конечно остановится. Если такой как вы не будет читать и делать выводов из теории, то пожгёте все свои светодиоды и остановитесь, потому что кончились, но не дошло до вас, что нельзя "напряжение стабилизировать". Потом или ещё купите и продолжите жечь или начнете вопросы уже по делу задавать. 
    • @irokess 1)Вопрос не в этом. 2)А зачем тогда говорить что он остановится...
    • Этот предел обусловлен рабочим ТОКОМ указанным в даташите! Тут Фальконист уже несколько клавиатур сточил давая ссылки на тему где сказано, что на светодиоды нужно подавать не стабильное напряжение а стабильный ТОК. И никакого "саморазгона" не будет потому как ток стабильный и точка, только естественная деградация кристалла, от которой никуда не денешься.
    • @100482ну так а я про что))) Начал Ревича читать) Начинать нужно с малого, ведь так. Потом и до схемы из Радио доберемся. А потом -- и дальше.
    • Выпаял OP3 OPA1641 оказалось он просаживал напряжения. По ходу, я его убил подключив компенсатор на плюсовую клемму АС. Стабилитроны живы. Куплю Opa134 продолжу расследование.
    • и сколько это чудо стоит ?
×
×
  • Create New...