• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!

Поиск по сайту

Результаты поиска по тегам 'ацп'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
    • МК для начинающих
    • AVR
    • PIC
    • STM32
    • Arduino и Raspberry Pi
    • ПЛИС
    • Другие микроконтроллеры и семейства
    • Алгоритмы
    • Программаторы и отладочные модули
    • Периферия и внешние устройства
    • Разное
  • Товары и услуги
    • Коммерческие предложения
    • Продам-Отдам, Услуги
    • Куплю
    • Уголок потребителя
    • Вакансии и разовая работа
    • Наши обзоры и тесты
  • Разное
    • Конкурсы сайта с призами
    • Сайт Паяльник и форум
    • Курилка
    • Технический английский (English)
    • Наши проекты для Android и Web
    • FAQ (Архив)
    • Личные блоги
    • Корзина
    • Вопросы с VK
  • ATX->ЛБП Переделки
  • Юмор в youtube Киловольты юмора
  • Надежность и группы продавцов Радиолюбительская доска объявлений exDIY
  • разные темы Переделки

Блоги

Нет результатов для отображения.

Нет результатов для отображения.

Местоположения

  • Пользователи форума

Группа


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Найдено 44 результата

  1. Друзья, в 2016 году уже обращался с просьбой, однако тогда все подзаглохло, потом необходимость отпала. Сейчас вот опять возникла, ниже привел кусок технического задания, чтобы было понятно, какое устройство мне нужно. Сделать нужно в разумные сроки и само собой за деньги. Сразу оговорюсь (обычно с подобных вопросов начинается общение): я знаю о существовании аудио-интерфейсов, всяких дешевых приблуд с алиэкспресса и даже о кабелях для роксмит. Нужда в описываемом устройстве именно в том виде, о котором идет речь, продиктована рабочей необходимостью: я часто езжу, нужно что-то ультра-миниатюрное и т.п. Вот выдержка из ТЗ: ОПИСАНИЕ УСТРОЙСТВА Принцип действия Устройство предназначено для подключения к нему аналоговых монофонических музыкальных инструментов посредством разъема стандарта 1/4'' TRS. Сигнал, поступающий на вход устройства, разветвляется для получения двух идентичных ему сигналов. Один из полученных сигналов подается на выход устройства, также предназначенный для подключения к нему посредством монофонического разъема стандарта 1/4'' TRS. Второй из полученных сигналов необходимо перевести в цифровую форму, предназначенную для передачу в персональный компьютер через подключение к нему посредством USB через имеющийся на устройстве разъем. Устройство получает питание через разъем USB. ТРЕБОВАНИЯ К УСТРОЙСТВУ Сигнал, передаваемых на выход устройства, должен максимально точно повторять сигнал, поступивший на вход устройства: не содержать слышимых искажений, не иметь явных отличий амплитудно-частотной характеристики, громкости и соотношению сигнал/шум. Сигнал, передаваемый на вход персонального компьютера, должен соответствовать по характеристикам (АЧХ, соотношение сигнал-шум, уровень искажений) сигналу, полученному при аналого-цифровом преобразовании с помощью современных компьютерных аудио-интерфейсов уровня Realtek ALC1150 или выше. Устройство не должно требовать установки дополнительных драйверов и ПО для подключения и функционирования с персональным компьютером под управлением операционных систем семейств Windows и macOS, для чего разработчику предлагается использовать соответствующий кодек (к примеру, Texas Instruments 27**, 29** и др.). ТРЕБОВАНИЯ К ИЗГОТОВЛЕННЫМ ОБРАЗЦАМ Образцы устройства необходимо выполнить на печатных платах с размещенными на них электрическими компонентами, в пластиковом корпусе. На корпусе устройств необходимо разместить монофонические гнездовые разъемы входа-выхода, а также гнездовой разъем USB. Тип разъема USB (Type A/B/Mini A/B/Micro A/B) выбирается разработчиком исходя из удобства компоновки схемы и размещения разъема на корпусе. Печатная плата разрабатывается с учетом простоты и дешевизны изготовления и монтажа элементов, и минимизации размеров устройства и корпуса. Качество печатной платы, монтаж элементов, качество корпуса и сборки устройства соответствует требованиям, предъявляемым к электронным общего назначения, функционирующим в стандартных бытовых условиях по температуре, влажности, вибрационным, ударным и прочим механическим нагрузкам. Пишите, на любые вопросы по мере своих знаний отвечу.
  2. Всем привет. Собираю вольтамперметр на микроконтроллере. Снимаю напряжение с шунта и усиливаю его с помощью ОУ. Развел плату, собрал, но при подключении к плате проводов, измеряющих напряжение самого источника питания и напряжение снятое с шунта, на последнем сильно проседает напряжение. Я понимаю, что ОУ при таком подключении не должен влиять на измеряемое напряжение. Я предполагаю, что проблема может скрываться в разнице потенциалов земель измеряемых напряжений и источника питания вольтамперметра. Вольтамперметр имеет отдельное питание. Если отключить контакты, измеряющие напряжение источника питания, амперметр работает как и задумано и напряжение на шунте падает в соответствии с измеренным при проектировании вольтамперметра. Подскажите пожалуйста, как правильно развести земли или изменить схему подключения.
  3. Модуль АЦП на ADS1115

    Купить ADS1115 за ~2$ Ссылка на datasheet ADS1115 Дополнительные файлы с описанием микросхемы: ADS1115.pdf Библиотека для модуля на микросхеме ADS1115: Adafruit_ADS1X15-master.zip
  4. Собираю устройство, которое на основании измеренного напряжения на резисторе своим АЦП на одном из своих портов выдает импульсы широтой, зависящей от измеренного напряжения. Широтой этого импульса задается ток, который, протекая через вышеупомянуты резистор, формирует вновь измеряемое напряжение. Пока результат такой. Зеленым цветом - сигнал на выходе контроллера, красным - напряжение на резисторе в цепи истока полевого транзистора, оно пропорционально току, протекающему через этот транзистор.Результат такой: Вопрос знатокам: почему это измеренное напряжение всегда застывает на одной и той же величине (0,8В)? Код: #include <mega8.h> #include <delay.h> #include <stdio.h> long result; long n=1; // Voltage Reference: AVCC pin #define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (1<<ADLAR)) unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input | ADC_VREF_TYPE; // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=(1<<ADSC); // Wait for the AD conversion to complete while ((ADCSRA & (1<<ADIF))==0); ADCSRA|=(1<<ADIF); return ADCH; } void main(void) { // Input/Output Ports initialization // Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRC=(0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0); // State: Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTC=(0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // ADC initialization // ADC Clock frequency: 125,000 kHz // ADC Voltage Reference: AVCC pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE; ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0); SFIOR=(0<<ACME); PORTB=0x00; DDRB=0x01; #asm("sei") while (1) { result=((read_adc(0)*5)/256.00); // Тут мы измерили напряжение на резисторе if (result>2) // и сравниваем, например, с 2В. В случае отклонения // измеренной величины от 2В меняем длительнось импульса n. { n=n-1; PORTB.0=1; delay_ms(n); PORTB.0=0; delay_ms(20); } if (result<2) { n=n+1; PORTB.0=1; delay_ms(n); PORTB.0=0; delay_ms(20); } }; }
  5. Пишу программу для датчика освещенности, который должен по нажатию кнопки измерять напряжение на одном из портов своего АЦП и записывать измеренное значение (в вольтах) на SD-карту. При повторном нжатии на кнопку результат измерения должен записываться на карту в тот же файл, но на новую строку. Сопротивление фоторезистора в зависимости от освещенности изменяется пимерно от 0,5 до 25 кОм, поэтому в качестве второго резистора делителя напряжения, результат деления которого и замеряем, выбран 27 кОм, чтобы не перегружать вход АЦП. Собственно, а куда по схеме эту кнопку лучше ставить? На питание или на какой-нибудь порт? В коде отталкиваюсь от такого: #include <mega8.h> #include <stdio.h> #include <stdlib.h> #define ADC_VREF_TYPE 0x00 unsigned int result; unsigned int read_adc(unsigned char adc_input); // volatile unsigned int count; //счетчик скопированных данных { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } #asm("sei") ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x81; while (1) { result=read_adc(0); result=(result*500L)/1024; // Тут мы измерили напряжение на резисторе if(disk_initialize()==0) //инициализируем флешку { FILE *file; //Открываем текстовый файл с правами на запись file = fopen("light.txt", "w+t"); //Пишем в файл fprintf(file, result); //Закрываем файл fclose(file); getch(); pf_mount(0x00); //демонтируем фат } }
  6. Добрый день всем. Недавно начал изучать ардуино и основы работы с ним. Вообщем в справочнике по работе с ним дошёл до работы с АЦП и тут возник вопрос, на который я пока не понимаю ответа. Когда я измеряю напряжение с входа, т.е подаю 5 В, все хорошо он их определяет и пишет 5 В соответственно, но когда я снимаю напряжение со входа, т.е ничего не подумаю, всё равно есть какие то измерения? Для себя я выделил 2 варианта ответа. 1) Это случайные наводки, которые ловит вывод. 2) Это из-за того, что измерение всегда производится относительно опорного напряжения, что вносит свои погрешности. Можете сказать, я думаю в правильном направлении?
  7. Здравствуйте. Купил АЦП для ардуино ADS1115 by Adafruit. И столкнулся с такой проблемой АЦП нормально работает с сигналом 110 Гц ниже данного выдает какую-то мешанину. Спасибо.
  8. В данной теме обсуждаем АЦП серии КР572 и их аналоги ICL71 Микросхемы КР572ПВ2, КР572ПВ5 представляют собой интегрирующие аналого-цифровые преобразователи на 3,5 десятичных разряда с выводом информации на семисегментные индикаторы, . Аналоги: ICL71G6, ICL7107 фирм INTERSIL и MAXIM (США). Микросхемы предназначены для применения в измерительных приборах напряжения, тока, сопротивления, температуры, массы и других с выводом информации на семисегментный жидкокристаллический (КР572ПВ5) или светодиодный (КР572ПВ2) индикаторы. Конструктивное исполнение - 40-выводной корпус 2123.40-1 или подтипа 45 по ГОСТ 17467-88. Хотелось бы собрать на этой странице схемы, ссылки и т.п. на ПВ2,5,6 и т.д.. Было бы не плохо если бы вы поделились с нами своими рабочими схемами и их печатками.
  9. Требуется высокоскоростной АЦП (80-125МГц) с минимальным потреблением. Вот нашёл такой https://www.maximintegrated.com/en/products/analog/data-converters/analog-to-digital-converters/MAX19516.html MAX19516, двухканальный, 57мВт на канал при 100МГц Есть ли ещё 8-12-битные АЦП с меньшим потреблением?
  10. Нужна помощь. Есть необходимость считывать показания с тензодатчика на частоте больше 1кГц. Сейчас на стенде трудится готовый усилитель (коробка на фото), с которого читает ардуинка своим 10битным АЦП. В итоге вся конструкция подходит максимум для демонстрации принципа, но не для точных измерений. Кроме того данные в виде массива хранятся в памяти МК перед отправкой в сериал, а в ардуино нано влазит этих самых данных достаточно мало(, так что в планах переход на стм32. Посоветуйте пожалуйста связку из усилителя и ацп от 12 бит, способных работать на частоте около 1,5-2 кГц (около 2000 семплов в секунду), по возможности с минимальной внешней обвязкой и простой настройкой. Заранее благодарен.
  11. Привет всем! Спаял внешний АЦП 16бит ADS8321EB/250 к ATmega64A через SPI Но он присылает какой то мусор, замкнул In+ на 4,096В - все равно мусор но значение среднее выросло , не может же он во всех разрядах врать. Провода от АЦП к ATmega64A из витой пары длиной 10 см и всунуты в разъем PLS - не шатаются. Что может быть? (Он необычно меряет - относительно средней точки 2,048, а не от 0.) DDRB = 0b11110111; PORTB = 0b00000001; SPCR = (1<<SPIE) | (1<<SPE) | (1<<MSTR) | (0<<CPOL) | (0<<CPHA) | (1<<SPR1) | (0<<SPR0); ..... через 0.001 c PORTB = 0b00000000; SPDR = 0b00000000; ..... ISR(SPI_STC_vect){ ACP[N] = SPDR; N++; }; Схема как спаял и по 4 байта что он присылает при 1 В на входе - нужные правда первые 3 байта.
  12. Почему входная часть одного из осциллографов найденных в гугле имеет смещение в отрицательную часть? Вверх - выход, вниз - вход
  13. Доброе время суток! В настоящее время стоит задача измерения динамических параметров АЦП AD9225 (спецификацию прилагаю). AD9225.pdf Используем генератор Agilent 81150A, выходной гармонический сигнал амплитудой 1Вп-п и частотой 200 кГц. 81150a.pdf В спектре выходного сигнала после АЦП присутствуют паразитные 2 и 3 гармоники входного сигнала, их уровень выше заявленного в даташите на АЦП (см картинку). Тут вторая на -70, третья на -65 дБ. После подключения спектроанализатора к выходу генератора наблюдаем 2 и 3 гармоники на уровнях около -60 дБ и -70 дБ, соответственно (как и заявлено в даташите) - но тут вторая на -60, третья на -70 дБ. Разумеется, ставим ФНЧ (9 порядок, Чебышев, односторонненагруженный) на выходе генератора, смотрим спектр после ФНЧ на спектроанализаторе - негармонические составляющие сигнала, наводки и шум фильтруются, а гармоники - нет, их уровень практически не меняется. При этом АЧХ фильтра промеряли (измерителя АЧХ нет, промеряли основным тоном и наблюдали на спектроанализаторе - на частотах 400 кГц и 600кГц основной тон давится в шумовую полочку спектроанализатора), всяко подавление на этих частотах не менее 50 дБ есть. Пробовали ставить промышленные ПФ на ПАВ - та же ситуация - наводки и шумы подавляет, 2 и 3 гармоники видны на уровне -60 дБ. Приборы подключены в один сетевой фильтр, он - в розетку с заземлением. Кабели - коаксиалы советские с разъемами СР-50. Фильтры вроде согласовывали на 50 Ом. Может быть, кто-то подскажет, почему фильтр не подавляет 2 и 3 гармоники? Может быть, излучает сам генератор, может быть, оплетка кабеля недостаточно экранирует? Может быть, по питанию пролазят? Что наиболее вероятно? Если информации мало дал, постараюсь полнее обрисовать картину. Спасибо!
  14. Продам некоторые интересные микросхемы из своей коллекции. Микросхемы демонтированы. Рабочие. Продаю за ненадобностью. Цена указана за все сразу, по одной не продаю. Цена за все - 150грн. (AD9051BRSZ; AD9050BRS-60; AD7801BR; AD421BR; CY7C433-30JI; FX614-D4-2шт)
  15. Ads1298

    Гуру, кто пользовал АЦП ADS1298? Насколько с ним сложно работать? Есть ли подводные камни, которые не указаны в PDF? Поделитесь опытом.
  16. Доброго времени суток. В связи с разработкой измерителя Ток/Напряжения для двухполярного ЛБП созрел вопрос : Какую схему Усилителя/Делителя как с инверсией полярности так и без нее применить для обработки входных напряжения и подачи на АЦП. Попробовал в протеусе 2 схемы. 1. Инвертирующий усилитель + разносный(дифференциальный) усилитель (вычитатель) (Ку = 1) Эта схема по задумке инвертирует полярность измеряемой величины (усиливает по напряжению если надо) а затем с помощью вычитателя балансируется выход (подстройка ноля вызванного неидеальностью ОУ) 2 Только вычитаталь но с произвольны Ку. Причем для измерения токов (напряжения с шунтов) вход сигнала и напряжение смещения нуля могут меняться местами в зависимости от необходимости инверсии. В протеусе оба решения работают нормально. Но во втором случае меньше деталей. Вот и возникает вопрос в реальной конструкции обычный разносный усилитель примененный в качестве усилителя с балансировкой выхода (как обычный так и инвертированный) будет работать без всяких там возбудов и прочих неприятностей.
  17. Тема: ДАД, ВК и таблицы УОЗ для разных авто - для обсуждения работы датчика абсолютного давления (далее ДАД), вакуумкорректора (далее ВК), таблиц УОЗ и всё что связано с измерением и обработкой давления для зажигания авто. Предисловие. Тема многократно обсуждалась в спорах и в разных темах этого раздела. Когда начинаешь вникать в работу этих устройств, то немного сложно понять их работу, т.к. в разных источниках описание приборов и замеров в разных единицах, таких как: мм.рт.ст., кПа, гПа, Bar, Hz, вольтах и АЦП (в программах для микроконтроллеров). Так было со мной. Когда купил ДАД, то подсоединял его по разному, чтобы понять его работу через тройник сначала карбюратору, а затем к коллектору, куда подключен эконометр. На торпеду положил вольтметр и наблюдал за его показаниями, сравнивая с показаниями эконометра. Замеры делал за городом, на трассе где вообще редко встретишь автомобиль (дорога на свалку) для безопасности, т.к. смотрел на приборы, а на дорогу краем глаза. Заметил, что при подключению к коллектору напряжение сигнала ДАД повторяет работу эконометра (только слева 0В., а справа 5В.), а если подключить от карбюратора, куда подключен штатный ВК, то отличается только при отпущеной педали и при её начальном нажатии, т.е. при закрытии дросельной заслонки и её открытии, а дальше при нагрузке напряжение синхронно работает с эконометром. После этого отключил вольтметр. С тех пор прошло 2 года и время от времени приходилось дальше разбираться с работой этих приборов. Заново искал информацию и вспоминал, что да как работает. А после последних замеров двух ДАД подключеных в коллектор и в карбюратор с помощью менеджера Вячеслава (donec) и его системы зажигания, опять появилось желание создать для этого отдельную тему. А вчера после беседы с Сергеем (Sergey_L66), вернее его лекцией (ликбез), с приведением графиков, решил всё таки вынести этот вопрос отдельно. Приведу несколько ссылок, чтобы их не дублировать (автор сообщений сам решит и продублирует, если посчитает нужным): Работа двух ДАД от коллектора и карбюратора Перевод значений Sergey_L66 в одной таблице ПЕРЕВОДЧИК Характеристики ВК и центробежного регулятора для КЛАССИКИ и НИВЫ Термины и проверка разряжения во впускном коллекторе Приводить ссылок можно ещё и ещё, но оставлю это уже для авторов сообщений. Вот собрал вместе данные работы ДАД и ВК на одном графике от MPX4115, у него характеристики похожие на ДАД 45.3829. А так же добавил на этот график диагностические значения (надо было наверно отдельно). По ним проверял с помощью ДАД состояние своего двигателя источник - ДИАГНОСТИКА Ну и из вчерашней беседы с Сергеем, пришёл к выводу, что штатный ВК увеличивает УОЗ при открытии ДЗ (нажатии на педаль), в тот момент когда работает ускорительный насос и при нагрузке этот УОЗ остаётся максимальным, а уменьшает его при закрытии ДЗ (отпускании педали) и его диапазон работы: 80-180 мм.рт.ст. / 12-24 кПа / 3,1-3,7В. / 158-190 АЦП - оранжевым цветом. Если смотреть на лог, который я записал 2-х ДАД, то видно, что этот диапазон во время езды при нагрузке не используется, а только при открытии и закрытии ДЗ. Видать вожно ездить без ВК как было в ранних моделях. ВК улучшает переходный процесс при работе ускорительного насоса и всё. Теперь об инжекторных авто: Информации пока мало, но немного порывшись в интернете, в поисках подключения ДАД, нашёл, что подключен он в коллектор, после ДЗ. Встречал информацию, сливают рабочие карты для ДАД с мозгов инжекторных авто и их переносят в такие системы как МПСЗ, СЕКУ и там тоже используют подключение к коллектору и весь диапазон работы ДАД, т.е. тот, что на графике салатовым цветом. Предлагаю в дальнейшем тут делиться ссылками на сообщения в которых, обсуждалось или выкладывались характеристики ВК и ДАД и таблицы для разных авто и всё что с этим связано, а также тем кто программирует делится алгоритмами и кодами программ обработки сигналов ДАД для корректировки УОЗ (если не жалко конечно). Ну и ОГРОМНОЕ СПАСИБО всем участникам обсуждения этой темы ранее, благодаря которым появилось немного понимания по этому вопросу, а именно: Sergey_L66, IGO61, donec, GBV, syma1961, b523pc и тем кого забыл. Желаю всем хорошего зажигания!!!
  18. Здравствуйте! Мне нужно, для одного проекта сделать точный измеритель давления и температуры. ттерморезистор я использую 700-102BAA-B00 , а тензопреобразователь Д 0,1Т-4 (даташит во вложении) Датчики буду оцифровывать с помощью 16 битного АЦП AD7705. он как раз для этих целей. в даташите есть прямые указания как и что подключать.. но тем не-менее остались вопросы, а именно, Сможет ли АЦП в дифференциальном режиме с достаточной точностью оцифровать крошечные напряжения с выхода тензопреобразователя? или лучше поставить инструментальный усилитель, например AD8226? тот же вопрос и для терморезистора. напрямую, или через усилитель... Тензопреобразователи RUS.pdf
  19. Добрый день. Проблема заключается в том, что я осваивал программирование на языке Verilog изначально на ПЛИС Altera DE0 Nano. Заинтересовался данной тематикой и научный ркуоводитель дал задание с применением встроенного АЦП. Только плата теперь Altera SoC FPGA platform (SoCKit) + плата расширения THDB ADA (на которой собственно и установлен сам АЦП). Пример от De0 Nano, как мне сказали, не применим. Необходимо оцифровать аналоговый входной сигнал. При пером разборе задачи выяснилось, что применяется не только Quartus II, но и Qsys (из за встроенного процессора) Кто сталкивался с данной задачей? Что рекоммендуете прочитать? Какие шаги предпринять? P/S В данной тематике абсолютный новичок. Реализовать машину конечных состояний, триггеры, счётчики - пожалуйста. Но тут непроницаемая стена непонимания с моей стороны. Прикрепил фотографию платы на всякий случай. Так же гайд к плате расширения со встроенным АЦП. THDB_ADA_UserGuide_v1.2.2.pdf
  20. Доброе время суток. Имеется микроконтроллер STM32F103VBT6, на нём заведен ADC1 и используются 6 входных каналов на ножках PA0..PA5. Если в конфигурации установить оцифровку сигнала с пина PA0, то оцифровка проходит успешно, то же самое с пином PA1. Ситуация меняется, если пытаюсь оцифровать PA2..PA5. Считываются нули. Ниже привожу код. Просьба подсказать в чём может быть дело и как это исправить. Канал меняю в строчке ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5);. К примеру, ADC_Channel_2. #include "stm32f10x_rcc.h" #include "stm32f10x_adc.h" #include "stm32f10x_gpio.h" #include "stm32f10x_usart.h" #include "misc.h" #include "delay.h" void SetupUSART(void); void send_to_uart(uint8_t data); void ADC1_2_IRQHandler(void); void Get_Temp(void); uint8_t ind1_B; uint8_t ind2_B; uint8_t ind3_B; uint8_t ind4_B; uint8_t ind5_B; uint8_t ind1_C; uint8_t ind2_C; uint8_t ind3_C; uint8_t ind4_C; uint8_t ind5_C; uint8_t ind1_D; uint8_t ind2_D; uint8_t ind3_D; uint8_t ind4_D; uint8_t ind5_D; uint8_t ind_B; static volatile uint16_t temp=0; int main(void) { SysTick_Config(8000); RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN, ENABLE); // ?? GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); //GPIO_PinRemapConfig(GPIO_Remap_USART2, DISABLE); //RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;// ?? //AFIO->MAPR |= AFIO_MAPR_SWJ_CFG_JTAGDISABLE; // ?? disable JTAG GPIO_InitTypeDef GPIO_InitStructure; // PORTA // input RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = /*GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |*/ GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); // alternative GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); // PORTB // input RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); // output GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_4 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); // PORTC // input RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_4; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOC, &GPIO_InitStructure); // output GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); // PORTD // input RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStructure); // alternative GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); // PWM output pins GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); // PORTE // input RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOE, &GPIO_InitStructure); // output GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5 | GPIO_Pin_8 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOE, &GPIO_InitStructure); SetupUSART(); // TIM4 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // Clock to PORTD for TIM4 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); // Clock to TIM4 GPIO_PinRemapConfig(GPIO_Remap_TIM4, ENABLE); TIM4->CCER |= (TIM_CCER_CC1E|TIM_CCER_CC2E|TIM_CCER_CC3E|TIM_CCER_CC4E); // Enable all PWM outputs TIM4->CCMR1|= (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2); //Forward PWM for ch1 TIM4 TIM4->CCMR1|= (TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2); //Forward PWM for ch2 TIM4 TIM4->CCMR2|= (TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2); //Forward PWM for ch3 TIM4 TIM4->CCMR2|= (TIM_CCMR2_OC4M_1 | TIM_CCMR2_OC4M_2); //Forward PWM for ch4 TIM4 TIM4->CR1 |= TIM_CR1_CEN; TIM4->CCR1 = 65536/5; // Duty cycle PWM1 (Avr voltage = 1.65 V) TIM4->CCR2 = 65536/4; // Duty cycle PWM2 TIM4->CCR3 = 65536/3; // Duty cycle PWM3 TIM4->CCR4 = 65536/2; // Duty cycle PWM4 // ADC RCC_ADCCLKConfig(RCC_PCLK2_Div8); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; ADC_DeInit(ADC1); ADC_InitTypeDef ADC_InitStructure; ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE); NVIC_Init(&NVIC_InitStructure); ADC_Cmd(ADC1, ENABLE); //ADC_TempSensorVrefintCmd(ENABLE); ADC_ResetCalibration(ADC1); while (ADC_GetResetCalibrationStatus(ADC1)) { }; ADC_StartCalibration(ADC1); while (ADC_GetCalibrationStatus(ADC1)) { }; GPIO_SetBits(GPIOE,GPIO_Pin_1); while(1) { GPIO_SetBits(GPIOC,GPIO_Pin_6); //uint8_t pa2 = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2); //send_to_uart(pa2); //GPIO_SetBits(GPIOB,GPIO_Pin_4); // always 1 /*/chB GPIO_SetBits(GPIOB,GPIO_Pin_6); GPIO_SetBits(GPIOB,GPIO_Pin_4); GPIO_SetBits(GPIOB,GPIO_Pin_7); GPIO_SetBits(GPIOB,GPIO_Pin_9); GPIO_SetBits(GPIOE,GPIO_Pin_0); */ Delay_ms(500); GPIO_ResetBits(GPIOC,GPIO_Pin_6); //GPIO_ResetBits(GPIOB,GPIO_Pin_4); // always 1 /*/chB GPIO_ResetBits(GPIOB,GPIO_Pin_6); GPIO_ResetBits(GPIOB,GPIO_Pin_4); GPIO_ResetBits(GPIOB,GPIO_Pin_7); GPIO_ResetBits(GPIOB,GPIO_Pin_9); GPIO_ResetBits(GPIOE,GPIO_Pin_0); */ Delay_ms(500); ind1_B = GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_6); // ok ind2_B = GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_7); // ok ind3_B = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3); // ok //(?) always 0 ind4_B = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5); // ok ind5_B = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8); // ok ind1_C = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2); // ok ind2_C = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3); // ok ind3_C = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4); // ok ind4_C = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_6); // ok ind5_C = GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_1); // ok ind1_D = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6); // ok ind2_D = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_7); // ok ind3_D = GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_4); // ok ind4_D = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0); // ok ind5_D = GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7); // ok //send_to_uart(ind1_; //send_to_uart(ind2_; //send_to_uart(ind3_; //send_to_uart(ind4_; //send_to_uart(ind5_; ind_B = 5-(ind1_B+ind2_B+ind3_B+ind4_B+ind5_; switch (ind_ { case 0: GPIO_ResetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_ResetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_ResetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_ResetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_ResetBits(GPIOE,GPIO_Pin_0); // sel5_B break; case 1: GPIO_SetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_ResetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_ResetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_ResetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_ResetBits(GPIOE,GPIO_Pin_0); // sel5_B break; case 2: GPIO_ResetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_SetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_ResetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_ResetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_ResetBits(GPIOE,GPIO_Pin_0); // sel5_B break; case 3: GPIO_ResetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_ResetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_SetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_ResetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_ResetBits(GPIOE,GPIO_Pin_0); // sel5_B break; case 4: GPIO_ResetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_ResetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_ResetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_SetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_ResetBits(GPIOE,GPIO_Pin_0); // sel5_B break; case 5: GPIO_ResetBits(GPIOB,GPIO_Pin_6); // sel1_B GPIO_ResetBits(GPIOB,GPIO_Pin_4); // sel2_B GPIO_ResetBits(GPIOB,GPIO_Pin_7); // sel3_B GPIO_ResetBits(GPIOB,GPIO_Pin_9); // sel4_B GPIO_SetBits(GPIOE,GPIO_Pin_0); // sel5_B break; } Get_Temp(); unsigned char a = temp>>4; send_to_uart(a); send_to_uart(0xFF); } } void ADC1_2_IRQHandler(void) { if (ADC_GetITStatus(ADC1, ADC_IT_EOC)) { ADC_ClearITPendingBit(ADC1, ADC_IT_EOC); temp = ADC_GetConversionValue(ADC1); } } void Get_Temp(void) { ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_1Cycles5); ADC_SoftwareStartConvCmd(ADC1, ENABLE); } void send_to_uart(uint8_t data) { while(!(USART1->SR & USART_SR_TC)); USART1->DR=data; } void SetupUSART() { RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); //RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2,ENABLE); //RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* Configure USART1 Tx (PA.09) as alternate function push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* Configure USART1 Rx (PA.10) as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_DeInit(USART1); USART_Init(USART1, &USART_InitStructure); USART_Cmd(USART1, ENABLE); }
  21. Поступило задание разработать цифровой тахометр с такими параметрами: 1. Диапазон измерений - 0-12000 об.мин. 2. Тип датчика - Герконовый. 3. Разрядность АЦП - 12 разрядов. 4. Напряжение АЦП и микроконтроллера - 5 В. 5. Скорость серийного порта 9600 бит/с. 6. Кол-во импульсов датчика за один оборот - 3. Разработка программы в среде IDE, желательно на C. Разработать алгоритм. Задание завело в тупик. Очень нужна помощь!
  22. Здравствуйте. Помогите, пожалуйста, имеется схема термореле, нужно подключить к ней АЦП(не программируемый), чтобы на выходе, например на светодиоде загорался нужный цвет при определенной температуре( к примеру 40-50C - зеленый, 50-60C желтый, 60-70C красный). Я мало, что понимаю во всем этом, но задали такое задание. П.с. Я - абсолютный чайник, не кидайтесь тапками. Буду очень, очень благодарен вам если поможете, если есть подобные темы, дайте пожалуйста ссылку, или какое нибудь научное пособие. За ранее спасибо.
  23. Добрый день, подскажите как в mikroPascal сделать так чтобы ацп считывало значения с трех разных мест (фаз тока) через конкретные задаваемые промежутки времени (через прерывание функции). Что-то подобное есть здесь, но не понятно как сделать это с ацп. Спасибо.
  24. Доброго времени суток, есть резольвер, на выходе синус по дифф. паре, амплитуда 1В, максимальная частота 12.8кГц. Нужно оцифровывать сигнал примерно ~14 000 000 раз в секунду. находил документацию по решению подобной проблемы, там сигнал с дифф. пары шёл на дифф. усилитель для устранения помех, потом получившийся синус с дифф.усил. с амплитудой 1В поступал на АЦП, напряжение идущее на АЦП варьировалось от 0 до 1В. Но там работа велась с резольвером у которого много периодов на оборот, у меня мало, для высокого разрешения надо оцифровывать сигнал с более высоким разрешением и соответсвенно чаще делать выборку. С АЦП до этого работал только в рамках того, что встроено в МК avr/pic. С сигналами передаваемыми по дифф. парам не работал. Нашёл доступную мне ИМС АЦП LTC2227CUH от LINEAR TECHNOLOGY даташит. Возникло несколько вопросов: 1) На функциональной схеме видно что у этого АЦП вход предполагается дифференциальным, значит ли это то, что можно подать сигнал с дифф.пары резольвера сразу на АПЦ, или всё таки надо пропустить его через внешний дифф.усилитель для устранения синфазных помех, потом сделать ему(сигналу) амплитуду +-0.5В(или +-1В если включить АЦП в этот режим)? 2) Там есть конвейер из 6 блоков для оцифровки сигнала(в первом сразу есть данные из ОУ), значит для 14млн выборок в секунду нужна частота 70МГц(14*5)? 3) Что такое Vcm (common mode bias voltage), для чего этот пин выведен наружу? 4) Each input should swing ±0.5V for the 2V range or ±0.25V for the 1V range, around a common mode voltage of 1.5V. - Можете перевести на русский? Буквально я могу перевести но не понимаю какие именно должны быть сигналы на входах АЦП, просто я думал, что на инвертирующий вход приходит сигнал амплитудой от -0.5В до 0В, а на неинвертирующий от 0В до +0.5В соответственно, а здесь получается надо сделать так, чтобы каждый вход ОУ который внутри АЦП "плавал" возле своего 0 с амплитудой 0.5В(другими словами в диапазоне +-0.25В), если да то как это сделать? 5) Может есть АЦП попроще для этих целей? АЦП нужен 10 битный, но вроде в меньших битах могут быть ошибки и шум, поэтому смотрю 12битные, но не уверен если действительно 12бит нужно...
  25. Здравствуйте, делаю устройство для ЧПУ станка, помогите пожалуйста подобрать модуль АЦП. Входной сигнал идёт с ОУ, могу настроить его на любую амплитуду, изначальный сигнал (до ОУ) это синус с амплитудой 1В, и максимальной частотой 20кГц, передаётся по дифф. паре поэтому стоит ОУ. Нужно оцифровывать сигнал с эффективным разрешением 8бит, можно до 12. передача результатов оцифровки по i2c/spi/пареллельная... Скорость оцифровки от 20 миллионов выборок. Источник опорного напряжения - любой. Источник частоты АЦП - любой. Питание в пределах 3.3В. Корпус - любой. Пока что смотрю в сторону AD9200JRSZ с тактированием от ПЛИС (которая тактируется от FXO-HC536R-60) в которой будут данные обрабатываться, и питанием от внутреннего ИОНа включенного на 2В, соответственно входной ОУ будет иметь такие резисторы чтобы в 2 раза увеличивать амплитуду входного сигнала. Можете посоветовать аналоги АЦП? В ПЛИС есть ФАПЧ, планирую генерировать 20МГц для АЦП, но в даташитах к ним советуют точные источники частоты использовать, вопрос насколько сигнал с ФАПЧ ПЛИСины будет сказываться на повторяемости измерений? Что можно улучшить если использовать внешний ИОН и отдельный источник частоты для АЦП (всмысле нужно ли это для моего случая с низкой частотой входного сигнала)?