Jump to content
Zombie47

DAC модуль на PIC16f1847. Выходное аналоговое напряжение с МК. ЦАП.

Recommended Posts

Помогите разобраться с модулем ЦАП на PIC16f1847.
Вот я смотрю 5 страницу даташита и вижу там что вроде как модуль DAC доступен только на ноге RA2.
Дальше еще будут вопросы про конфигурацию и тд.
Я хочу получить на выходе вольтаж от 0 до 5 вольт. Вольтаж будет зависеть от переменной. Переменная это будет температура которая получается с термопары. от 0 до 1024
соответственно при 512 температуре у меня должно быть 2.5вольта
Дискретность сигнала (то-есть как быстро будет меняться вольтаж на выходе) она же температура. От 0.5 до 1 сек.
Я могу просто получать напряжение с ноги и все? или же надо повесить на выход ноги какие нить резисторы кондерчики и тд?
 

2017-12-31_17-43-21.jpg

2017-12-31_17-44-43.jpg

2017-12-31_17-48-28.jpg

2017-12-31_17-49-06.jpg

2017-12-31_17-49-29.jpg

Share this post


Link to post
Share on other sites
7 минут назад, Zombie47 сказал:

Я могу просто получать напряжение с ноги и все? или же надо повесить на выход ноги какие нить резисторы кондерчики и тд?

напряжение вы получите , вне зависимости от наличия/отсутствия кондерчиков :) , другое дело что выход ЦАП высокоомный и требует наличия повторителя для дальнейшего использования

 

12 минуты назад, Zombie47 сказал:

Я хочу получить на выходе вольтаж от 0 до 5 вольт. Вольтаж будет зависеть от переменной. Переменная это будет температура которая получается с термопары. от 0 до 1024

а накой это нужно? сразу использовать сигнал с усилителя термопары религия не позволяет?

Share this post


Link to post
Share on other sites
5 часов назад, IMXO сказал:

напряжение вы получите , вне зависимости от наличия/отсутствия кондерчиков :) , другое дело что выход ЦАП высокоомный и требует наличия повторителя для дальнейшего использования

Например я это напряжение буду замерять мультиметром что в таком случае будет? оно просядет? насколько?
 

Цитата

а накой это нужно? сразу использовать сигнал с усилителя термопары религия не позволяет?

не религия а скорее знания не позволяют )
вообще сигнал с термопары у меня идет на MAX6675 и им обрабатывается считывается МК и выводиться на дисплей и еще планирую делать выход с МК чтобы заслать эту инфу в мозг ДВС

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

15 часов назад, IMXO сказал:

таблица 30-11 ДШ поможет ответить на вопрос.

эмм.... вообще не понял к чему тут эта таблица

2018-01-01_17-27-53.jpg

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

4 часа назад, Zombie47 сказал:

Так и что мне с этой информацией делать не понимаю

Это ответ на Ваш вопрос :

В 01.01.2018 в 00:45, Zombie47 сказал:

что в таком случае будет? оно просядет? насколько?

 

Share this post


Link to post
Share on other sites
В 02.01.2018 в 06:12, Alex сказал:

Это ответ на Ваш вопрос :

 

там 5000 ом ? где? на выходе? тоесть если выход ЦАП подключу к земле через  1 ком то что я получу? делитель 5 и 1 ком?

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...

  • Similar Content

    • By Bortsov
      Забрал на производстве генераторы (22,5792МГц/24,576МГц). Заказывал с запасом. Резервных осталось три комплекта.
      Стоимость комплекта 800 рублей + почта (если будет) до покупателя.
       
       
       
       
      pdf-cppl.pdf
    • 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 German Churilin
      Добрый день всем! Столкнулся с проблемой, над решением которой бьюсь уже месяц - суть в том, что при пересылке аудио данных с контроллера в внешний цап на выходе цапа звучит белый шум(именно когда летят данные). Уже перепробовал разные конфигурации и параметры, да даже другой цап ставил - всё равно та же самая проблема. Может кто сталкивался, или у кого есть идеи почему так происходит?
      Контроллер stm32f407ve китайский, но вроде как рабочий, цап - pcm1606, вытащенный из двд-плеера.

      код инициализации i2s
      RCC_PLLI2SCmd(DISABLE); RCC_I2SCLKConfig(RCC_I2S2CLKSource_PLLI2S); RCC_PLLI2SConfig(200,5); RCC_PLLI2SCmd(ENABLE); while(RCC_GetFlagStatus(RCC_FLAG_PLLI2SRDY) == RESET){}; //WS - word clock output GPIO_PinAFConfig(GPIOB, GPIO_PinSource9, GPIO_AF_SPI2); GPIO_StructInit(&gpioInit); gpioInit.GPIO_Pin = GPIO_Pin_9; gpioInit.GPIO_Mode = GPIO_Mode_AF; gpioInit.GPIO_OType = GPIO_OType_PP; gpioInit.GPIO_PuPd = GPIO_PuPd_NOPULL; gpioInit.GPIO_Speed = GPIO_Speed_100MHz; GPIO_Init(GPIOB, &gpioInit); //BCLK - shift clock output GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_10; GPIO_Init(GPIOB, &gpioInit); //SD - serial audio data GPIO_PinAFConfig(GPIOC, GPIO_PinSource3, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_3; GPIO_Init(GPIOC, &gpioInit); //MCO - master clock output GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_SPI2); gpioInit.GPIO_Pin = GPIO_Pin_6; GPIO_Init(GPIOC, &gpioInit); I2S_StructInit(&i2sInit); i2sInit.I2S_CPOL = I2S_CPOL_Low; i2sInit.I2S_Mode = I2S_Mode_MasterTx; i2sInit.I2S_MCLKOutput = I2S_MCLKOutput_Enable; i2sInit.I2S_Standard = I2S_Standard_Phillips; i2sInit.I2S_AudioFreq = I2S_AudioFreq_48k; i2sInit.I2S_DataFormat = I2S_DataFormat_24b; I2S_Init(SPI2, &i2sInit); SPI2->I2SPR = (uint16_t)((uint16_t)512 | (uint16_t)12 | (uint16_t)1); //for 48k Fs SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, ENABLE); I2S_Cmd(SPI2, ENABLE);  
      код инициализации dma
      DMA_InitTypeDef dmaInit; NVIC_InitTypeDef nvicInit; DMA_DeInit(DMA1_Stream4); DMA_Cmd(DMA1_Stream4, DISABLE); while(DMA_GetCmdStatus(DMA1_Stream4) == ENABLE){}; __ISB(); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1, ENABLE); //To dmaInit.DMA_PeripheralBaseAddr = (uint32_t) &(SPI2->DR); //From dmaInit.DMA_Memory0BaseAddr = (uint32_t)&AUDIO_SAMPLE; dmaInit.DMA_BufferSize = 20480; dmaInit.DMA_Channel = DMA_Channel_0; dmaInit.DMA_DIR = DMA_DIR_MemoryToPeripheral; dmaInit.DMA_PeripheralInc = DMA_PeripheralInc_Disable; dmaInit.DMA_MemoryInc = DMA_MemoryInc_Enable; dmaInit.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; dmaInit.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; dmaInit.DMA_Mode = DMA_Mode_Circular; dmaInit.DMA_Priority = DMA_Priority_High; dmaInit.DMA_FIFOMode = DMA_FIFOMode_Enable; dmaInit.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; dmaInit.DMA_MemoryBurst = DMA_MemoryBurst_Single; dmaInit.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; while(DMA_GetCmdStatus(DMA1_Stream4) == ENABLE); DMA_Init(DMA1_Stream4, &dmaInit); DMA_ITConfig(DMA1_Stream4, DMA_IT_TC | DMA_IT_HT, ENABLE); //configure interrupt nvicInit.NVIC_IRQChannel = DMA1_Stream4_IRQn; nvicInit.NVIC_IRQChannelPreemptionPriority = 0; nvicInit.NVIC_IRQChannelSubPriority = 0; nvicInit.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&nvicInit); DMA_Cmd(DMA1_Stream4, ENABLE); while(DMA_GetCmdStatus(DMA1_Stream4) != ENABLE){}; AUDIO_SAMPLE просто wav скопированный через hex редактор и живущий в памяти контроллера, крутиться по кругу. Вроде как, в теории всё должно работать(снизу скрин из pulseview - снято логическим анализатором), к сожалению осциллограф пока что не приобрёл, так что проверить правильность частот не представляется возможнымб но всё же всё вроде как красиво.
      Формат i2s на контроллере совпадает с форматом на цапе - первый бит передаётся через 1 тик sck после смены ws
       
      П.С. подозреваю сразу вопросы про MSB/LSB - wav файл сам по себе little-endian, собственно как и контроллер, то есть тут не должно быть проблем, а i2s стандарт передаёт MSB первым, соответственно если у меня в памяти записано 0x64, 0x61, 0x61, 0x66, 0x02, 0x00, 0x85... то, судя по скрину всё передаётся правильно? или я что то не понимаю в этом всём? Но не в этом суть - в один момент тоже подумал что порядок не тот, но, к сожалению, попытки свапать байты местами(и побайтово, и по словам) не дали ни какого результата

    • By maxssau
      Продам адаптеры USB-I2S. 

       
      Возможности:
       
      стерео ввод/вывод PCM 16-32 бита, 44.1-384 кГц. Ввода DSD нет, как и драйверов для ввода DSD.
      вывод DSD в режиме DoP 64-128, в режиме Native 64-256. Native доступен в Linux без "хитрых" драйверов.
      Тактирование от платы ЦАП/АЦП, частоты 512 fs (22.5792/24.576 МГц). Теоретически возможно и 1024fs(скорости 768кГц и DSD512 Native), но это не опробовано.
      Гальваническая изоляция на Si8662/Si8640.
      Питание возможно как Self так и Bus Powered. В режиме Bus Powered необходимо самостоятельно позаботиться о мастерклоке, т.к. возможны сильные глюки при выключенном генераторе мастерклока.
       
      Тема: 
      срок изготовления 3-5 недель (сильно зависит от поставок процессоров).
      На данный момент полностью реализован интерфейс Legacy. Для отладки Native режима пока нет платы ЦАП, в процессе разработки, будет не раньше осени.
      Цена 6000 + пересылка (в среднем 250 р.).
    • By Trisector
      Простой USB ЦАП на PCM2706 и ES9023. Покупал себе, но пока слушать с компьютера оказывается удобнее.

      1200 руб.
      Питер, Ленобласть.
      Перешлю по России.
       
  • Сообщения

    • Это точно... Зря Таньку забанили, козлы ... Щас бы она тебе яйца-то пощекотала... А теперь только *****ь... поговорить-то не с кем.
    • Вот негодяй,а,подумала жена,и объявила бойкот месяца на два.Нойз потихоньку вздрачивает на свежескачанные фотки целок-фанатичек,при этом вспоминая "добрым" словом Серегу.
    • Ну... эта веточка о Худе и для любителей Худа... Кто придерживается иной религии... есть много иных решений... Так что сегодня о нем... о Джонни... А 40 ватт не совсем милли :))) посмотри параметры заводских в продаже сонек, и подобных... неужели не глядел...
    • Котёнок Майкл (порода бобтейл) охлаждается на моих двух стереостоунколдах, пока я слушаю металл... На время съёмки их выключил, чтобы Майкл совсем не замёрз.
    • Да не так всё... Жена стоит у меня за спиной,  смотрит в монитор и твердит одно и тоже - Нойзик... любимый... ну пожалуйста,  оторвись от компа и от этих  дурацких фоток... кинь мне палочку... Засади хотя бы  на полкончика...  А я ей -  дорогая ну отстань ты пожалуйста...не до тебя сейчас... Моему другу, Серёге с форума, подроч_ть не на что. 
    • Резистор первички заменить на керамику 1 мкф, резисторы последовательно ёмкостям - уменьшить.
    • При его милли*****рической выходной мощности,для 16 Ом наушников сойдет.
  • Покупай!

×
×
  • Create New...