Jump to content
Sign in to follow this  
razor1703

Ацп-Цап В Микроконтроллерах Pic16Cxx. Выбор Мк Для Курсовой (Mplab)

Recommended Posts

Здравствуйте, господа. Без лишней лирики перейду сразу к делу.

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

Имеется также ряд вопросов:

1. Скольки разрядный АЦП стоит использовать (а соответственно и МК)? Какая точность в данной ситуации не покажется абсурдно низкой?

2. Можете привести пример использования ЦАП в одном из МК вышеуказанной серии? В гугле достаточно много информации по АЦП, а вот по ЦАПу я так и не смог найти ничего. Нужно принимать во внимание то, что среди операций

есть взятие корня, возведение в степень и деление, то есть, если отбрасывание дробной части результата не вариант, то нужно преобразование выполнять с числом немалой разрядности (кстати, как организована работа в МК с "дробными" числами).

3. Как организовать параллельный ввод двух сигналов и, соответственно, вывод?

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

Спасибо.

Edited by razor1703

Share this post


Link to post
Share on other sites

1 смотря какая точность и разрядность нужна.

2 ЦАП в 16 ПИКах по моему отсутствует. Использовать нужно ШИМ и потом фильтровать.

3 Использовать два входа АЦП и по очереди опрашивать. По сути, АЦП один , но имеет мультиплексор.

Если знания слабоваты - советую почитать литературу по микроконтроллерам.

Share this post


Link to post
Share on other sites

Высококачественные конденсаторы Panasonic для надежности вашей электроники!

Электролитические алюминиевые конденсаторы Panasonic отличаются повышенной надежностью, длительным сроком службы, низким импедансом и выдерживают большой ток пульсаций, в то время как семейства полимерных конденсаторов Panasonic SP-CAP, POSCAP, OS-CON и HYBRID характеризуют сверхнизкий ESR и увеличенная емкость, работа при высоких напряжениях и в расширенном температурном диапазоне. Приобретая продукцию Panasonic, вы гарантированно получаете самое передовое решение для ваших задач. Для облегчения вашего выбора, мы подготовили подборку полезных материалов.

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

Зачем городить мешок резисторов , если лучше использовать ШИМ ?

Share this post


Link to post
Share on other sites
                     

Вебинар "Как создать BLE-устройство на базе новейшего беспроводного микроконтроллера STM32WB55"

27 ноября 2019 года компания КОМПЭЛ приглашает разработчиков, технических руководителей и энтузиастов беспроводной связи на вебинар, посвященный новинке 2019 года – мультипротокольному беспроводному микроконтроллеру STM32WB55, который позволяет создавать устройства на базе стандартов BLE 5.0; BLE Mesh; 802.15.4/ZigBee и Thread. На вебинаре мы покажем, как с помощью привычных инструментов STM32Cube и STM32CubeMX можно создать свое первое, надежно работающее BLE-приложение.

Зарегистрироваться на вебинар

Все в пиках есть и ЦАП и АЦП и в 16 серии, смотрите типа 15хх, где есть 4 последние цифры после F. А принципе простой ЦАП можно на любом ШИМ организовать.

Share this post


Link to post
Share on other sites

Судя по тому что топикстартер в теме не появляется неделю - ему уже наши советы не нужны .

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. 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...
Sign in to follow this  

  • Similar Content

    • By tishkanexx
      Продаю корпус для ЦАП (DAC) AK4490 / усилителя для наушников. Саму плату, если её нет, то можно купить на али ($36), фото платы прикладываю, могу дать ссылку на покупку.
      Корпус заказывал с завода breeze audio, минимально можно было заказать 2 корпуса ($30 два корпуса с доставкой), поэтому один продаю. Отдаю за $15, без наценки как есть. Если брать плату ЦАП-а и корпус, то получается $51, что дешевле, чем брать готовый ЦАП на том же ali за $60. Об этом писал здесь:
      На корпусе надпись: AKMDAC - HEADPHONE AMP (сделана по заказу вместо надписи breeze audio)
      Комплект: 4 силиконовые ножки, саморез для крепления "тюльпанов", 8 винтов для корпуса, сами части корпуса.
      Стоимость: 1000р или 15$. Пишите в лс.



    • By duty
      Привет, участникам форума! Подскажите, пожалуйста, как можно реализовать связь микроконтроллера pic с адресным ключом (ds2405 или ds2408) по 1-wire (на шине будут висеть несколько ключей)  для считывания pio ключа, во входном режиме, т.е на pio поступает сигнал  с магнитоконтактного датчика о срабатывание его или нет.    Datasheet читал, но мало чего понял.  Тестирование произвожу в proteus 8.6
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By n_angelo
      Привет, знатоки. Написал свою первую программу для контроллера STM8L152C6T6 (STM8L-Discovery). Это, собственно, моя первая программа для контроллеров вообще. Я многого не знаю и не понимаю. Возможно ваш ответ на мой вопрос будет банален.
      Используемая периферия: DAC, DMA, TIM4, CLK, GPIO
      Задача у программы такая:
      В EEPROM зашит один период синусоиды с дискретизацией 44100Гц. Период занимает ровно 101 байт, что по сути должно быть равно 2,29мс (1/44100*101). В коде программы только конфигурация периферии, одно прерывание на кнопке и пустой бесконечный цикл, который ничего не делает. Всю работу выполняет таймер, который настроен выдавать запрос к DMA на каждые 1/44100 (ядро тактируется 2мГц, таймер считает до 45). В свою очередь DMA забирает из EEPROM по одному байту на каждый запрос от таймера и передаёт его в DAC. Далее DAC выводит бесконечную синусоиду на ногу PF0. Прерывание на кнопке запускает весь этот механизм и зажигает светодиод.
      Проблема:
      Измеряя ногу PF0 осциллографом было замечено, что период синусоиды занимает около ≈4мс. Фото под катом.
      Меня это расстроило. Экспериментально выяснилось, что стоит только вписать в бесконечный цикл какую-нибудь проверку, например, [если значение текущего байта синусоиды = 0xFF, то зажечь светодиод, если 0x00, то потушить], то осциллограф показывает правильный тайминг в 2(с копейками)мс. В принципе в теле цикла может быть что угодно, кроме пустоты, и тайминг налаживается.
      Я не могу отдебажить дизассемблер, т.к. его не знаю. Это у меня в планах. Но я очень хочу понять, что происходит и почему пустой цикл рушит тайминг.
      Спасибо.
       
       
       
       
    • By artos5
      Приветствую всех на этом форуме!
      Есть необходимость измерять сигнал при помощи данного АЦП. С помощью этого АЦП можно измерять 4 аналоговых не дифференциальных сигнала . Схема следующая:
      Schematic_Temp_opto_sens_V2_20190817124112.pdf
      Картинками с более низким разрешением:
      библиотеку за основу взял эту:
      https://github.com/nsaspook/nidaq700/blob/master/supermoon/example/ADS1220.c
      Путем незначительного допиливания, получилась такая библиотека:
       
      Поправил только эти функции:
      void ADS1220SendByte(unsigned char Byte) { unsigned char Result = 0x01, i=0, flg=0; MOSI_LO; Delay_us(1); for(i=0;i<8;i++) { SCK_LO; //ADC_CLK=0 Delay_us(4); if (flg) MOSI_LO; Delay_us(1); SCK_HI; //ADC_CLK=1 Delay_us(1); if (Byte&Result){ MOSI_HI; flg=1; } else MOSI_LO; Delay_us(4); Result<<=1; } SCK_LO; //ADC_CLK=0 } unsigned char ADS1220ReceiveByte(void) { unsigned char Result = 0, i=0; for(i=0;i<8;i++) { Result<<=1; SCK_LO; //ADC_CLK=0 Delay_us(5); //Delay_us(5); SCK_HI; //ADC_CLK=1 Delay_us(3); if (MISO) Result++; Delay_us(2); } SCK_LO; //ADC_CLK=0 return Result; } И добавил эту функцию:
      void ADS1220Config_MUX_GAIN(uint8_t mux, uint8_t gain) { unsigned Temp; ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp); // clear prev value; Temp &= 0x0f; Temp |= gain; Temp |= mux; // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp); ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp); // clear prev DataRate code; Temp &= 0x1f; Temp |= (ADS1220_DR_600 + ADS1220_CC); // Set default start mode to 600sps and continuous conversions // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp); } ADS1220.h :
      в результате получаю такую осциллограмму :

      То есть , постоянно считывается 0.
      А вот регистры конфигурации:
      Задаю номер входа MUX и усиление :
       

       
      Читаю данные так:
      ADS1220Config_MUX_GAIN(ADS1220_MUX_0_G, ADS1220_GAIN_1); HAL_Delay(10); temp_[0] = ADS1220ReadData(); Это для 0 канала. 
      Пробовал и так:
      ADS1220SetChannel(ADS1220_MUX_0_G); ADS1220SetGain(ADS1220_GAIN_1); temp_[0] = ADS1220ReadData(); Результат аналогичный. Кто что подскажет? Может кто заметит какой косяк в коде? Уже голова дымит ..
  • Сообщения

    • и еще момент - на заметку - ес кому пригодится, ИИП для умзч нужно в любом случае экранировать - мой ослик - *чувствовал* работающий бп - шуп лежал рядом ,имхо
    • а теперь - итог моего опыта) отмыл плату - поднялось напряжение) просадки в 1.5 вольта от запланированного при 150 ваттах - что более чем,похоже и вырубался бп из-за этого на более высокой частоте - не знаю . вторичку трансформатора не проверял на пульсации - на фото -ослик-одно плечо -выход- частоту вообще не показывает ,Рк-Рк - размах пульсаций - 800 мА - это норм ? или может не то смотрю , позже с электронной нагрузкой еще посмотрю - решить со снабером , на мою ВЫСОКО профессиональную пайку ) не обращайте внимание - мне его позже переделывать под усилитель . для-новичков - ес будете повторять - советую перечитать ветку - я постарался разобраться в ключевых моментах - не влезая в дикие дебри теории - так как сам неуч и в свой наступающий 4 десяток лет- не готов садится за парту) это хобби , многое из ветки для себя возьмете - поможет собрать,имхо.
    • И опять ошибаетесь. Это новые дины так сказать, не устаканились, т.е подвесная система ещё не разработана под нагрузкой (на поточном производстве дины не "тренируют", полагась, что со временем наработки птс придут в "рабочий режим", что и наблюдается на практике)и птс не соответствуют паспортным. А по прошествии большого количества времени механические детали "прирабатываются" и птс уже не изменяется, разве что кроме магнита. Стабильность его параметров зависит от качества материала и технологии изготовления. Феррит хоть и размагничивается дольше и медленнее ниодима/алнико но тоже боится нагрева и ударов. Так что нынешнее состояние птс ваших динов будет стабильным очень долго, на ваш век хватит. Поэтому есть смысл их снять вместе с афчх самих ас. Я вам уверенно могу заявить, что при Qts0.6 в данном объёме фи линейности афчх не будет. А что касаемо двух катушек, то всё просто. Нафига мотать новые когда есть готовые от других моделей. Вот и поставили последовательно две маленьких, суммарной ёмкостью равной одной большой. Кстати, сможете измерить их сопротивление постоянному току Rg? Ссогласно теории оно не должно превышать 5%Re дина. Идеально когда Rg ближе к нулю, но медь не сверхпроводник... поэтому чем ниже тем для дина самый ништяк. Ведь любое сопротивление это потери полезного сигнала. И первыми теряются самые низкоамплитудные = тихие звуки, которых в любой музыке как пчёл в улье. Претензий нет тому как вам сравнить не с чем, плюс привычка=адаптация мозга. Стоит сделать Qtc близким к 0.707 и сразу услышите разницу, словно акустика приобрела второе дыхание. Вот попробуйте намотать одну катушку той же индуктивности но с сопротивлением Rg хотя бы 0.4ома и сравните звучание. Такая же песня с катушкой фвч твитера. 
    • Кто подскажет, где можно купить по нормальной цене, верхний нагреватель такой, ELSTEIN SHTS/100 800W и ELSTEIN SHTS/4 300W.? 
    • А почему "каноническая" от TI а не от бывшего National Semiconductor?) Графики от on semi. Как определить каноничность 1117 интересно?) Может AMS1117? Есть мнение что первые буквы внутреннюю структуру 1117 не изменяют иначе последующие цифры стали бы другие.
    • Давайте по другому. Уровень тестового сигнала по осциллографу соответствует примерно 6 ваттам вых. мощности и  0,7%  ТНD       Шмелева  -  Спектраплюса. Тесты проводились в моно режиме для каждого канала отдельно. Результаты тестов: Шумы левого канала: Шумы правого канала: Что скажете? Решил замерить характеристики звуковой карты при том же уровне тестового сигнала (-5,4 дБ) Шумы звуковухи: Сравнение: То есть, получается, что фактически мы замеряли звуковую карту, а реальные  шумовые и динамические характеристики усилителя намного выше? Возможно ли в этой программе учесть влияние звуковой карты на результат измерений?
×
×
  • Create New...