Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работает ЦАП
Не работает ЦАП
vladh Дата: Пн, 24.05.2021, 02:53  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Уважаемые форумчане возникла срочная необходимость заставить работать имеющийся на готовой плате ЦАП. Этот ЦАП сделан н основе микросхемы mcp4921. Эта микросхема "сидит" на порту А. Если её подцепить к любому другому порту она работает, а здесь не получается. Прикладываю пример, в котором взята за основу реальная плата. Пример же сильно упрощен. Причем при тех настройках, которые приведены в примере не работает и свой АЦП. Выручайте. Как заставить здесь работать АЦП и ЦАП?

Добавлено (24.05.2021, 08:24)
---------------------------------------------
И еще. Почему, когда я конфигурирую выводы МК в регистре ADCON1 таким образом ADCON1 = %10001101, что согласно руководству означает, что в качестве АЦП работают только первые два вывода. Все остальные - цифровые. А опорные напряжения берутся с выводов питания (vdd, gnd). В Протеусе не работает АЦП для этой настройки.

Прикрепления: Primer.rar(67.6 Kb)
ЯНДЕКС Дата: 24.05.2021
xvovanx Дата: Пн, 24.05.2021, 08:52  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 460
Репутация: 55   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Регистром ADCON0 (бит 0 =1) не пробовали АЦП включать?
Сделайте скрин схемы из протеуса (а то у меня протеус более старой версии и не хочет открывать)

Сообщение отредактировал xvovanx - Пн, 24.05.2021, 08:59
vladh Дата: Пн, 24.05.2021, 09:51  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Насколько я понимаю эту операцию (установка регистра ADCON0) проделывает сам Протон, когда выполняет команду ADIn 1. Скан приложил.
Прикрепления: 7913980.png(51.8 Kb)
xvovanx Дата: Пн, 24.05.2021, 10:34  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 460
Репутация: 55   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата vladh ()
Насколько я понимаю эту операцию (установка регистра ADCON0) проделывает сам Протон

Не думаю, что сам. Я всегда стараюсь вручную регистры прописывать, чтоб проблем не возникало.
Попробуйте в регистре ADCON0 указать нужный вам вход AN1, включить и запустить работу АЦП.
Прикрепления: 5558255.png(135.4 Kb)

Сообщение отредактировал xvovanx - Пн, 24.05.2021, 10:45
vladh Дата: Пн, 24.05.2021, 11:46  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Попробовал. Результат = 0

Добавлено (24.05.2021, 14:03)
---------------------------------------------
Кстати, у меня есть программа на СИ для такой конфигурации, и там правда еще много чего и она работает. Если кто с СИ дружит могу исходник от неё приложить

dimvad Дата: Пн, 24.05.2021, 14:45  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 108
Репутация: 52   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

Найдите десять отличий! wink
Прикрепления: 6844944.rar(93.8 Kb)
vladh Дата: Пн, 24.05.2021, 15:09  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата dimvad ()
Найдите десять отличий!
И что? ЦАП как не работал так и не работает. А АЦП я знаю как сделать работающим, но просто в моем случае непонятно почему не работает так как я указал.
xvovanx Дата: Пн, 24.05.2021, 15:12  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 460
Репутация: 55   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата dimvad ()
Найдите десять отличий!

Все как обычно - невнимательно читаем даташит dry , касаемо регистра ADCON1 (опорные питания).

П.С. я вот не понял для чего в схеме, имея аналог.сигнал от переменника, переделывать его с АЦП в SPI, а потом с ЦАП обратно в аналог..

Сообщение отредактировал xvovanx - Пн, 24.05.2021, 15:22
dimvad Дата: Пн, 24.05.2021, 15:17  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Продвинутый
Сообщений: 108
Репутация: 52   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

Цитата
И что? ЦАП как не работал так и не работает.
Вы модель протеуса открывали? Все работает.
vladh Дата: Пн, 24.05.2021, 15:30  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 351
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата dimvad ()
Вы модель протеуса открывали? Все работает.
Я поначалу подцепил ваш код к моей модели и ничего. Но вот после вашего замечания я увидел, что у вас тоже есть и модель. Тогда я открыл вашу модель и все действительно работает! Огромное спасибо за помощь. И прошу прощения за недоверие. СПАСИБО.

Добавлено (24.05.2021, 15:40)
---------------------------------------------

Цитата xvovanx ()
Все как обычно - невнимательно читаем даташит , касаемо регистра ADCON1 (опорные питания).П.С. я вот не понял для чего в схеме, имея аналог.сигнал от переменника, переделывать его с АЦП в SPI, а потом с ЦАП обратно в аналог..
1. В жизни всякое бывает. Так например требуется измерить некоторый аналоговый сигнал, проанализировать его и затем передать также аналоговый сигнал после анализа, т.е. преобразовав его соответствующим образом.
2. В инете ходят разные руководства. В одном из них я видел, что биты с 0 по 3 указывают МК какие выводы отдать под АЦП, а какие под цифровые. Биты 4 и 5 указывают на то откуда брать опорные сигналы. Т.е. с указанных выводов, либо с vdd и GND.

Добавлено (25.05.2021, 06:09)
---------------------------------------------
Сегодня утром поигравшись с настройками меня удивило вот что. Если регистр ADCON1 мы настраиваем так, чтобы все выводы порта были аналоговыми (ADCON1 = %10000000), то работа по SPI интерфейсу идет. Но если мы устанавливаем так чтобы аналоговыми входами были только первые два вывода, что ближе к моей задаче, SPI интерфейс не работает (ADCON1 = %10001101).

Добавлено (25.05.2021, 06:15)
---------------------------------------------
Причем установка этого регистра в состояние, когда одна из ножек задействуется под ввод опорного напряжения Протон не может её задействовать для нужд интерфейса SPI.

Форум Picbasic.ru » Программирование МК » Proton PicBasic » Не работает ЦАП
  • Страница 1 из 1
  • 1
Поиск: