Заголовок сообщения: Помогите с библиотекой TWI для Attiny85
Добавлено: Ср сен 13, 2017 05:56:55
Первый раз сказал Мяу!
Зарегистрирован: Ср сен 13, 2017 05:53:24 Сообщений: 31
Рейтинг сообщения:0
Первая моя тема В общем я ещё новичек, поигрался с ардуиной и для себя решил начать изучать МК с самого младшего семейства аттини, установил AVR studio 6, ну и как любой новичек сразу уперся в камень)) не могу найти готовую библиотеку для attiny85 для работы с шиной I2C (он же TWI) в режиме мастера. МК мне нужно связать с PCF8574 к которой в свою очередь подключен 7-сегментный индикатор. Знаю что в данном МК нет аппаратной реализации этого интерфейса, поэтому ищу программную, т.e. готовую библиотеку. Нашел либу для ардуины https://github.com/adafruit/TinyWireM , но столкнулся с проблемой компиляции
Error 3 unknown type name 'USI_TWI' Error 1 unknown type name 'class' Error 2 expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
я так понимаю эта проблема связана с языками C и С++. т.к. в архиве исходники идут с разрешением .cpp. а в самой avr studio компилируется на С.
есть ли у кого готовая библиотека? или пример реализации подключения по i2c.
З.Ы. Литературы массы перечитал в т.ч. и на данном сайте по данному вопросу, но ещё по уровню не дотягиваю
Пользуюсь сам и могу рекомендовать вам библиотеки Peter Fleury: http://homepage.hispeed.ch/peterfleury/ ... tware.html Имейте ввиду, что его библиотеки не содержат таймаутов ожидания, поэтому в случае проблем с аппаратурой (неисправность чипов, обрыв проводников и т.п.) могут зависать. В 99.9% случаев это не критично, но иметь ввиду стоит. Да и доделать таймауты не сложно - не так много там циклов "тупого" оджидания битика...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: Помогите с библиотекой TWI для Attiny85
Добавлено: Ср сен 13, 2017 08:02:27
Первый раз сказал Мяу!
Зарегистрирован: Ср сен 13, 2017 05:53:24 Сообщений: 31
Рейтинг сообщения:0
ARV писал(а):
Пользуюсь сам и могу рекомендовать вам библиотеки Peter Fleury: http://homepage.hispeed.ch/peterfleury/ ... tware.html Имейте ввиду, что его библиотеки не содержат таймаутов ожидания, поэтому в случае проблем с аппаратурой (неисправность чипов, обрыв проводников и т.п.) могут зависать. В 99.9% случаев это не критично, но иметь ввиду стоит. Да и доделать таймауты не сложно - не так много там циклов "тупого" оджидания битика...
Там в описании написано
This I2c library is implemented as a compact assembler software implementation of the I2C protocol which runs on any AVR (i2cmaster.S) and as a TWI hardware interface for all AVR with built-in TWI hardware (twimaster.c).
В аттини85 ток USI есть с помощью которого можно реализовать TWI, аппаратного TWI в нем нету.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Заголовок сообщения: Re: Помогите с библиотекой TWI для Attiny85
Добавлено: Чт сен 14, 2017 10:53:59
Первый раз сказал Мяу!
Зарегистрирован: Ср сен 13, 2017 05:53:24 Сообщений: 31
Рейтинг сообщения:0
В общем недолго я радовался. в протеусе с микросхемой памяти 24c02 все четко работает, посмотрел как ячейки перезаписваются. А вот с PCF8574 никак не могу заставить работать.A0, A1, A2 подтянуты к земле, адрес микрухи 0х20 получается, но такое ощущение что МК не видит её. На осцилографе все как надо выдается. В чем может быть подвох, никак не могу понять?
Почитайте в инете внимательно, что такое TWI (она же I2C) шина. После этого отпадут многие вопросы. Какой адрес у микросхемы, как шина вообще работает.
Почитайте в инете внимательно, что такое TWI (она же I2C) шина. После этого отпадут многие вопросы. Какой адрес у микросхемы, как шина вообще работает.
Да я её уже на сто рядов всю перечитал. Товарищ ARV рабочую бибилиотеку посоветовал, она на ассемблере написана, в котором я не особо силен. Так вот там пример есть с микросхемой памяти 24с02, с ней все работает, но на этот же адрес вешаю PCF8574 и тишина.
Неважно, ассемблер или какой другой язык, когда обращаешься к устройству на TWI шине, в функции обращения к устройству как параметр задание адреса устройства. И он задается как есть, то есть, если по даташиту адрес 0b01000000, 0x40, он не может быть другим.
Вам же русским языком сказали: адрес микросхемы 0x40, а не 0x20 в вашем коде неверно
Код:
#define PCF8574 0x20 // адрес PCF8574 00100000
с этим разобрался, но в протеусе диаграмма не верная получается
Код:
#include <avr/io.h> #include "i2cmaster.h"
#define PCF8574 0x40 // адрес PCF8574 01000000
int main(void) { unsigned char ret;
DDRB = 0xff; // PORTB на выход
i2c_init(); //Инициализируем I2C
ret = i2c_start(PCF8574+I2C_WRITE); // отправляем побитно в SDA 0b01000000+1 режим записи if ( ret ) { i2c_stop(); /* не удалось запустить условие запуска, возможно, не найдено ни одного устройства */ }else { i2c_write(0x46); i2c_stop();
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения