Подключение pic18f4520 к ацп AD7706.

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср янв 18, 2023 13:01:27

Сообщение Hailmary »

Доброе время суток, уважаемые форумчане! У меня есть какой-то измерительный прибор с МК pic18f4520 и ацп AD7706. Я хотел его запрограммировать под свои нужды, но столкнулся с проблемой. Поначалу думал, что они подключены по spi интерфейсу, но когда стал прозванивать дорожки, понял, что ошибался. Распайка такая:
МК - ацп
SDI/SDA - SCLK
VCC - REFIN-
RA0/AN0 - CS
RA1/AN1- RESET
TOCKI/C1OUT - DRDY
CCP1/P1A - DOUT, DIN (причём они закорочены)
Не пойму, что это за распайка и как с ней работать. Помогите, пожалуйста, кто чем может.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 158
Зарегистрирован: Сб апр 24, 2021 18:42:11

Сообщение phalanx »

Возможно на PIC реализован программный SPI. TOCKI - это RA4, CCP1 - это RC2, развели исходя из удобства трассировки ПП. Х.з для чего закоротили DOUT и DIN, может, чтобы DOUT в воздухе не оставлять ( на резисторе сэкономили :-D ). С интересом почитаю, какие будут еще мнения. :-)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="phalanx",url="/forum/viewtopic.php?p=4383666#p4383666"]Х.з для чего закоротили DOUT и DIN, может, чтобы[/uquote]
Это ШТАТНОЕ подключение. В даташите обозначен как 8051-интерфейс. Обычный двунаправленный двухпроводный SPI.
PS. Резистор подтяжки там должен быть. Работать с этим АЦП без входа нельзя. Там конфигурирование входного мультиплексора и усиления PGA.
Нашел транзистор. Понюхал.
Сообщения: 158
Зарегистрирован: Сб апр 24, 2021 18:42:11

Сообщение phalanx »

В смысле, если нужно прочитать регистр, просто подкидываешь clock и читаешь биты на той-же ноге МК, только настроенной на вход? Я как-то не встречался ранее с такой схемой включения, сам всегда эти линии разделял и не знал, что это распространенная практика.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 25560
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="phalanx",url="/forum/viewtopic.php?p=4383705#p4383705"]не знал, что это распространенная практика.[/uquote]
Распространенная. Например, цифровые потенциометры Микрочипа в корпусах SOIC8 (MCP41x1) тоже совмещают вход и выход.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 158
Зарегистрирован: Сб апр 24, 2021 18:42:11

Сообщение phalanx »

Спасибо. Век живи, век учись. :-)
Последний раз редактировалось phalanx Пт мар 10, 2023 15:10:28, всего редактировалось 1 раз.
Реклама
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср янв 18, 2023 13:01:27

Сообщение Hailmary »

Мне нужно вначале настроить ацп, отправить туда байты, а потом считывать. Нужно настроить ножку МК RC3/SCK/SCL на 1, потом на 0. Дальше програмируем эту ногу как выход, отправляем байт и опять в конце включаем выключаем её, настраиваем на вход и принимаем байт? Так?
Нашел транзистор. Понюхал.
Сообщения: 158
Зарегистрирован: Сб апр 24, 2021 18:42:11

Сообщение phalanx »

SPI - самый простой протокол, реализуется на любом МК. Раз аппаратный SPI не используется, значит нужно организовать обычный "ногодрыг". Посмотрите datasheet на АЦП, там все, что нужно для управления нарисовано.
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Ср янв 18, 2023 13:01:27

Сообщение Hailmary »

Работу ацп я так понимаю:
1. Нужно вначале поднять и опустить ss
2. Записываем байт в communications register
3. Пункт 1
4. Записываем байт в communications register с последующей записью в setup register.
5. Пункт 1
6. Записываем байт в communications register с последующей записью в clock register
7. Пункт 1
8. Записываем байт в communications register с последующей записью в data register.
И так оставшиеся три регистра.
Т. к. dout и din закорочены и spi программный запись в регистры делаю так:
1. Записываю во временный регистр сколько бит передать
2. Обнуляю mosi
3. Сдвигаю влево байт
4. Проверяю бит С: если он = 1, то устанавливаем 1 на mosi, если = 0, то sck на 1.
5. Отнимает из временного регистра 1 с проверкой на 0.
6. Если вр. регистр = 0, то переходим на пункт 2.

Поправьте, пожалуйста кто может. И ещё вопрос: как считать с ацп?
Ответить

Вернуться в «PIC»