Не работает I2c в attiny25

AVR версия программы

Не работает I2c в attiny25

Сообщение Yushik (Андрей) » 25 мар 2020, 16:17

Здравствуйте коллеги понадобилась мне шина I2C на младших МК семейства Attiny в ФК-5.5.2.1, после испытаний в протеусе обнаружил что она не работает как надо. Было проверено (в протеусе) на Attiny25, Attiny24, Attiny2313 в частности не генерируется должным образом условие START первый байт не вываливается в шину, на осциллографе видно. Если сделать проект на Atmega8 например, тогда всё команды выполняются нормально. Как я понял почти во всех МК Attiny нет полноценного интерфейса TWI, вместо него стоит USI. Собственно вопрос может уже кто решал эту проблему, поиск по форуму мне ничего не дал. При проверке компонента I2C в ФК выяснил что данные операции склоняются к функциям определяемые пользователем типа %a_I2C_Master_Init();. Но вот где они находятся в ФК я понять не могу, направьте меня хотя-бы на те файлы которые которые нужно исправить в ФК.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Разработчик
Разработчик
Информация о пользователе

Re: Не работает I2c в attiny25

Сообщение andrewproffi (Андрей) » 25 мар 2020, 16:55

Здравствуйте.
Файлы лежат либо здесь
C:\Program Files (x86)\Flowcode(AVR)\v5\CAL\AVR
либо здесь
C:\Program Files (x86)\Flowcode(AVR)\v5\Components
либо в кастом коде компонента в программе.
а вообще очень удобная функция поиска в 10 винде (как в других не помню) с поиском по содержимому файлов, позволяет найти конретное слово
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе

Re: Не работает I2c в attiny25

Сообщение Yushik (Андрей) » 25 мар 2020, 17:50

Да спасибо Андрей про эти файлы я знал хотел как раз уточнить может ещё где-то подводные камни есть. Скорее всего надо копать в файле c:\Program Files (x86)\Flowcode(AVR)\v5\CAL\AVR\AVR_CAL_I2C т.к в файле C:\Program Files (x86)\Flowcode(AVR)\v5\Components\FC5_AVR_I2C_Master.c ничего похожего на работу с регистрами USI нет. Но для меня поломать голову в СИ придётся хорошо, буду благодарен если ещё кто ни будь подключится к решению проблемы.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение Yushik (Андрей) » 25 мар 2020, 22:20

Здравствуйте ещё раз коллеги кое какие сдвиги у меня получились поковырялся я в файле AVR_CAL_I2C.c мои исправления закоментированы на русском. Теперь условие старт отрабатывается но с одним не понятным приколом, в папке два проекта на Atmega8 и Attiny25, если сравнить осциллограммы обоих проектов то они идентичны (не считая паразитных выбросов после бита ASK) разница в том что на Atmega8 ЦАП работает а на Attiny25 нет. В папке есть правленый и оригинальный AVR_CAL_I2C.c подскажите где я мог что-то не учесть.
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Андрей 26 мар 2020, 06:46, всего редактировалось 1 раз.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение andrewproffi (Андрей) » 26 мар 2020, 03:16

А вы в железе проверяли? чтото у меня сомнения что аналог аттини85 может не работать с i2c
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение Yushik (Андрей) » 26 мар 2020, 06:44

andrewproffi писал(а):А вы в железе проверяли? чтото у меня сомнения что аналог аттини85 может не работать с i2c

Приветствую Андрей, нет в железе я пока не проверял у меня и нет этого МК в наличии, после выходных смогу проверить. Если смотреть даташиты то у Attiny13 аппаратного I2C нет, у Attiny24, Attiny25/45/85, Attiny26/261 и др. он есть, только реализован он через интерфейс USI. Который может настраиваться под I2C и SPI.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение mim (mim) » 26 мар 2020, 08:32

Yushik писал(а): подскажите где я мог что-то не учесть.
Резисторы подтяжки сделай "цифровыми"...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение Yushik (Андрей) » 26 мар 2020, 15:54

Спасибо МИМ поменял на цифровые заработало, дурацкий протеус со своими детскими болячками. На следующей неделе постараюсь в железе испытать, отпишусь. Последний вопрос к тебе по спецификациям шины I2C максимальный период сигнала CLK должен быть 10 мкс для fust_mode, если выставить в компоненте I2C 100 кгц. (для Atmega8 например, ФК-5.5.2.1_AVR) то период будет составлять 40 мкс., если поставить 1 мгц. тогда он станет 20 мкс. Мне пока не доводилось мерять эти интервалы в железе, возможно это опять детский глюк Протеуса. В том случае если это глюк ФК то получается что возможно все скорости I2C в ФК в 2 раза ниже, для тех же МК Attiny пауза MX_I2C_DELAY в файле AVR_CAL_I2C.c вообще фиксированная и скорость I2C для этих МК не регулируется. Следующий вопрос где в ФК это лечится в том же AVR_CAL_I2C.c или где-то ещё, хочется ФК максимально возможно допилить. И последнее пожелание не в твой адрес конечно к Админу мы с этим вопросом уже обращались, было бы не плохо если на форуме была отдельная рубрика с исправлениями для ФК, написанная красными буквами прямо по центру сайта "Если в ФК что-то не работает читать здесь". А то новички постоянно создают темы с граблями на которые мы уже наступали согласись тебе работы меньше будет.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Разработчик
Разработчик
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение mim (mim) » 26 мар 2020, 16:43

Yushik писал(а): хочется ФК максимально возможно допилить.
Зачем?

ЗЫ В самой ФК неправильно рассчитывается скорость I2C для файла компонента. %c частота шины...
Код: выделить все
#define MX_I2C_BAUD_1      %c

Должно быть
Код: выделить все
#define MX_I2C_BAUD_1      ((F_CPU / %c) - 16) / 2

Куда вставлять? Туда где будет удобно...
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Не работает I2c в attiny25

Сообщение щербатый (щербатый) » 26 мар 2020, 23:56

mim писал(а):
Yushik писал(а): хочется ФК максимально возможно допилить.
Зачем?

Ну как это зачем. Это как в поговорке. Пить буду, но курить не брошу. ФК, это вещь. Работаю в нем каждый божий день. Более того, его наглядность. Стараюсь применять во всем остальном чем в жизни занимаюсь. То есть стараюсь даже мыслить алгоримически. Как по мне, пятерка ФК будет жить вечно. В том числе и благодаря твоим стараниям.
И вообще. МИМ, ты в этот проект вложил свою душу и много вагонов времени. Может оно и не видно со стороны. Но ты, как великий Мастер, оставил за собой массу учеников. Что далеко не каждому дано в этой жизни.
Ник: щербатый
Имя: щербатый
Гуру
Гуру
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode AVR

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей