Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 27.10.2021, 14:29  
Alcest
Прописка
 
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
Alcest на пути к лучшему
Вопрос PIC16F1829 не работает DAC

Прошу подсказать по ЦАП микроконтроллера PIC16F1829. Нет напряжения на выходе DAC, хотя вроде все по даташиту сделано. Может упустил чего?

В коде всего шесть строчек не считая инициализации микроконтроллера. Казалось бы, что тут может не работать? Но не работает, как ни странно.

В регистре DACCON0 ЦАП включен. В качестве DAC Positive Source выбран плюс питания Vdd. DAC Positive Source, это Vss. Бит DACOE установлен. Как утверждает даташит, при установке DACOE вывод порта A0 автоматически становится выходом ЦАП. Вот перевод этого момента из даташита:
Цитата:
Выбор опорного напряжения ЦАП для вывода на вывод DACOUT автоматически отменяет функции буфера цифрового выхода и порогового детектора цифрового входа этого вывода. Чтение вывода DACOUT, когда он настроен на вывод опорного напряжения ЦАП, всегда будет возвращать '0'.
То есть от настроек порта A зависимости не должно быть.

Казалось бы все необходимое сделал, но DAC не включается.

void main(void) {

//---Настройка порта A---
TRISA = 0b11111111;
ANSELA = 0b00000000;
WPUA = 0b00000000;

//---Настройка ЦАП---
DACCON0 = 0b11100000;
DACCON1 = 15; // Начальное значение udac

while(1);

}

Что самое обидное, в Proteus все нормально, ЦАП включается и выдает на выводе 19 (RA0/DACOUT) некоторое напряжение, которое меняется с изменением значений в регистра DACCON1. А в железе все глухо.

Вообще не представляю что тут еще можно сделать. За ЦАП в PIC16F1829 отвечают всего три регистра: DACCON0, DACCON1 и FVRCON. Последний я не трогал, поскольку беру питание DAC (или опорное, не знаю как точно назвать) непосредственно от источника питания. Тут больше настраивать нечего. В чем может быть косяк?
Реклама:
Alcest вне форума  
Непрочитано 27.10.2021, 14:54  
Alcest
Прописка
 
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
Alcest на пути к лучшему
По умолчанию Re: PIC16F1829 не работает DAC

Предупреждая вопросы по поводу нагрузки выхода ЦАП добавлю, что выход нагружен только вольтметром. Линия порта RA0 на которой висит DACOUT служит линией ICSPDAT/ICDDAT при программировании МК. Но я отключаю МК от pickit после программирования и все равно результат отрицательный. Нет напруги на выходе.
Alcest вне форума  
Непрочитано 27.10.2021, 17:54  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 679
Сказал спасибо: 362
Сказали Спасибо 753 раз(а) в 358 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: PIC16F1829 не работает DAC

Alcest, осталось попробовать с нулём в нужном бите TRISA.
У меня сохранился такой кусок кода от PIC16F1824, там вывод настроен на выход:

PHP код:
...
#ifdef LOGIC_ANALYZER
    
LATAbits.LATA2 0// logic analyzer
    
TRISA 0xFF & ~((1‹‹ PIN_LA) | (1‹‹ PIN_DACOUT));
#else
    
TRISA 0xFF & (~(1‹‹ PIN_DACOUT));
#endif
... 
Вроде как и настраивать больше нечего..
j-Roger вне форума  
Сказали "Спасибо" j-Roger
Alcest (27.10.2021)
Непрочитано 27.10.2021, 18:34  
Alcest
Прописка
 
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
Alcest на пути к лучшему
По умолчанию Re: PIC16F1829 не работает DAC

Сбросил нулевой бит в TRISA, попробовал в разных комбинациях с нулевым битом в ANSELA. К сожалению не помогло. Устанавливал-сбрасывал бит DACLPS (с которым не все понятно), тоже без результата. Начинаю сомневаться, что работа АЦП зависит только от регистров DACCON0 и DACCON1. По-видимому, нужно еще где-то что-то отключить или включить. Но где? Поиском в гугле и яндексе нашел, что когда PIC16F18xx только появились, было много вопросов к их АЦП. Не у всех и не всегда DAC работал. К сожалению, это было много лет назад, примеров и исходников почти не сохранилось, а то и самих сайтов и форумов уже нет, только упоминания о сабжевой проблеме. Чего же ему не хватает???
Alcest вне форума  
Непрочитано 27.10.2021, 18:54  
Alcest
Прописка
 
Регистрация: 27.01.2015
Сообщений: 247
Сказал спасибо: 48
Сказали Спасибо 24 раз(а) в 23 сообщении(ях)
Alcest на пути к лучшему
По умолчанию Re: PIC16F1829 не работает DAC

Господа, прошу прощения за панику. Дело оказалось в дрянной беспаечной макетной плате. Выдернул из нее переходную плату с микроконтроллером, припаял провод прямо к выводу микросхемы, перепрошил и вольтметр тут же показал напругу на DACOUT.
j-Roger , спасибо.
Alcest вне форума  
 

Закладки

Метки
dac, pic16, цап
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32G431 DAC средствами HAL DanilinSA ARM 10 12.10.2021 22:24
PIC12F1840 Использование UART совместно с DAC kib12 PIC 2 11.12.2019 03:00
STM32, DAC + RESET Nik_UFO Микроконтроллеры, АЦП, память и т.д 4 18.05.2012 19:35
Не работает PD4 в ATTINY 4313 HeatSink Микроконтроллеры, АЦП, память и т.д 37 14.06.2011 17:46
Объясните, как работает микросхема El-Shang Источники питания и свет 1 30.07.2010 17:33


Часовой пояс GMT +4, время: 00:14.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot