РадиоКот :: Библиотека МСР4725 под ATMEGA8
Например TDA7294

РадиоКот >Статьи >

Теги статьи: Добавить тег

Библиотека МСР4725 под ATMEGA8

Автор: N.D.A
Опубликовано 01.09.2021
Создано при помощи КотоРед.

 

Здравствуйте господа Коты.
Решил поделиться с Вами информацией которая возможно будет кому-то полезна.

И облегчит процедуру написания программы для управления ЦАПом МСР 4725.

Друг попросил соорудить для него зарядное устройство (+регулируемый источник питания).
Решено было сделать его с цифровым управлением и отображением на индикаторе напряжения и тока.
В качестве АЦП применили МСР 4725, а в качестве управляющего контроллера Atmega 8a.
Начались поиски библиотек для работы этого цапа с атмега 8.

В процессе стало понятно, что в основном. этот цап используют с ардуино и все библиотеки, написаны именно под эту платформу.
Попытки выдернуть что-то из ардуиновских библиотек успехом не увенчались.
Как оказалось там одно цепляется за другое и так до бесконечности))).
К тому же я железячник а не программист.....
Через некоторое время удалось-таки найти библиотеку зарубежного автора именно под atmega 8.

Но опять-же из-за нехватки опыта я не смог её собрать.
В итоге не осталось ничего кроме как на основе найденной отрывочной информации написать "своё".

Собственно, библиотека зарубежного автора, которая послужила основой.
http://davidgironi.b-logspot.com/2018/09/mcp4725-dac-avr-atmega-library.html#.YR6nuvlR1hE

Адресация, подключение, ссылка на даташит и пример для ардуино взяты отсюда.
https://micro-pi.ru/mcp4725-цифро-аналоговый-преобразователь/

Надо отдать должное Microchip Technology которые выпустили этот цап.

Дёшево и сердито.

Поскольку код устройства и 2 адресных бита зашиты заводом изготовителем, пользователь изменяет по необходимости только 1 бит адреса и бит чтения/записи.
Это позволяет использовать довольно простую функцию. 

 

 

 

 

 

 

 

 

 

 

Самым простым режимом является Fast Mode Command.
Опишу работу ЦАПа в этом режиме.
И так, после передачи адреса и получения подтверждения от устройства, передаём 2 байта данных.
Вот что из себя представляет первый байт данных.

 

 

 

 

 

 

 

 

 

 

 

 

Картинку второго байта данных приводить нет смысла, там 8 младших бит.

Они передаются вслед за вторым байтом.

Отсюда кстати и 12 бит ЦАП, (4 старших в первом байте данных и 8 во втором).

Процедуру сдвига для получения четырёх старших бит данных можно увидеть полистав исходки.

Передача по шине I2C (TWI), реализованна отдельной библиотекой.

При необходимости её можно использовать отдельно для обмена с другими устройствами по данной шине.

Там всё с коментариями.

Создание собственных библиотек черпанул тут.

https://narodstream.ru/programmirovanie-mk-avr/

Интерфейс TWI с этого сайта + опять же зарубежный автор. Имени извините не помню.

Проект создавался в Microchip Studio v. 7.0.2542.

Когда-то во время учёбы пользовался их средой MPLAB IDE для pic микроконтроллеров.
И при написании диплома, пророчил им большое будущее))).
Как оказалось не зря. Они все-таки поглотили AVR.

Проект с множеством комментариев. И примером работы в одном из режимов.
Вот скрин работы ЦАПа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ну и собственно сама библиотека, вместе с библиотекой TWI (она же шина I2C, по которой мы и общаемся с mcp4725).

 


Файлы:
Библиотека mcp4725 для Atmega8


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

9 3 3