I2c Slave vs CodeVisionAVR

В разделе рассматриваются вопросы информационного обмена в робототехнике.
Аппаратный уровень, протоколы.

I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 05 июл 2012, 12:22

Доброе время суток.
Проведя несколько суток (5-6), в поисках исходников I2c slave для CodeVision'a, для использования ATMega16 в качестве ведомого, решил все таки попросить помощи.

Имеется:
*ATmega16 - 6 штук, однотипный программный код (ведомые)
*ATMega32 - 1 штука (ведущий)

Цель:
1.Передать от ведущего к ведомым по очереди, массив (x,y,z)
2.следовательно, его принять ведомыми.

Прошу поделиться у кого есть исходником работы I2c в качестве ведомого и ведущего (если возможно "пакетную")

P.S. просьба в 311 и в 315 не отсылать, своими силами под CodeVision не смог завести.
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 06 июл 2012, 15:35

Хотя бы, просто исходник Ведомого.
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение dccharacter » 06 июл 2012, 15:45

Не знаю чем, но, может, поможет:
http://www.microchip.su/showthread.php?t=11961

Добавлено спустя 5 минут 3 секунды:
Т.е. тебе надо расписать возможные варианты - события. Их, кажется, шесть:
STATE 1: MASTER WRITE, LAST BYTE WAS AN ADDRESS
STATE 2: MASTER WRITE, LAST BYTE WAS DATA
STATE 3: MASTER READ, LAST BYTE WAS AN ADDRESS
STATE 4: MASTER READ, LAST BYTE WAS DATA
STATE 5: MASTER NACK
STATE 6: если сюда попали, то ошибка, тушим свет, сливаем воду.

Надо четко определить комбинации флагов, которые определяют то или иное состояние. Потом надо правильно обработать буфер (снятие флагов чтением из буфера, например) и отпустить клок-линию, если мы ее держали.

Потом берешь и прогоняешь с сигнализатором (светодиодом, например), все события. И дальше тупо дописываешь обработчики. Всего-то дней на пять гемороя.

Кстати, странно - слейв реально намного сложнее в i2c, но никто его не расписывает, аппнотов нет, примеров нет.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 07 июл 2012, 08:47

Вот как раз мне ведомый(Slave) и нужен:(
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение HarryStar » 08 июл 2012, 22:54

http://easyelectronics.ru/avr-uchebnyj- ... c-i2c.html
Одна из лучших реализаций I2C. Переделывается под свои нужды без проблем. Реализован мастер и слейв одновременно, со всеми вариантами ситуаций.
В свое время переделал себе (без использования ОС и т.д.), с тех пор пользую во всех своих проектах.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 09 июл 2012, 12:19

Туда я раз если не 100 но 50 точно смотрел, не работает у меня то что я оттуда позаимствовал, еще и свой код испохабил, хорошо сохранил перед этим.
Говорю же, поиском пользоваться умею.
+ меня слайв интересует, а не кучу лишних функций! (получил байты и дальше основным кодом занялся)
и еще эти прихибеточные издевки в место приличного описания, нереально бесят.

P.S. Если жалко то лучше так и сказать, чтобы я зря не терял тут время.
P.S.S. если бы я знал как переделать, поверь я бы не спрашивал.
Интересует именно лаконичный код работы в Slave режиме, и только slave без "ботвы" и "ОС"
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение Romikgy » 09 июл 2012, 14:06

это называется "сделайте за меня , то что нужно мне"... такими весчами занимаются студенты , когда им делать нечего .... есть много кода , но как правило он рассчитан на все случаи жизни...если не желаете разбираться, зачем беретесь ? если есть желание разобраться , тогда копайте код которых есть ....
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 09 июл 2012, 17:24

Копать код который простите не работает в CodeVision нереально, если учесть с AVR начал общаться совсем недавно, и проблем не было не решаемых.
Но столкнувшись с i2c с лету перебрал Мастер код. И уже 2-3 недели не могу не чего со Slave сделать.

Чтобы разобраться в нем, его надо иметь хотя бы какой то, способный принять от мастера байты, уж лишнее убрать смогу.
Но когда код не работает в компиляторе, описание приводит в ужас(туча грамматических ошибок и лексикон как у подзаборного пьяницы) и в коде месиво с ОС уже слишком.

Да и зачем изобретать велосипед? если у кого то есть отлаженный код под режим slave и компилятор CVAVR.

Добавлено спустя 54 минуты 25 секунд:
Romikgy писал(а):это называется "сделайте за меня , то что нужно мне"...

Похоже вы не утруждали себя прочтением 1 поста. Я не прошу сделать за меня, интересует пример работы Slava'а работающий и компилируемый в CVAVR.
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение Scorpio » 10 июл 2012, 03:56

Вот программный slave делал. Может пригодится.
Аватара пользователя
Scorpio
 
Сообщения: 2681
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 10 июл 2012, 18:33

Спасибо конечно, я пробовал так. Но к сожалению оказалось что Атюни не справляется с основной задачей=//
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 11 июл 2012, 23:24

В общем я так понимаю, что зря потерял свое время. У кого есть тот зажили или не смотрит, один человек подкинул подсказку но к сожалению она не подходит именно под этот проект, остальные только умничают...
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение SkyZi » 25 авг 2012, 13:12

В общем то справился...
Но интересует вопрос, битрейт на слейве не должен же указываться?
ЗЫ и еще вопрос, реально ли чтобы Мастер работал на 16мГц, а слейвы на 8мГц и битрейт был 400кГц, или будет не успевать слейв?
Project "Hexxx" (in progress...)
Аватара пользователя
SkyZi
 
Сообщения: 133
Зарегистрирован: 27 окт 2011, 22:32
Откуда: Ростов-на-Дону
Skype: skyzi007
прог. языки: Python, Си (МК)
ФИО: Святослав Игоревич

Re: I2c Slave vs CodeVisionAVR

Сообщение Romikgy » 25 авг 2012, 18:43

для слейва любой битрейт ставь , ему побоку , ибо тактируется от мастера !
PS а что так и не осилил слейв?
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: I2c Slave vs CodeVisionAVR

Сообщение dccharacter » 25 авг 2012, 18:51

Romikgy писал(а):для слейва любой битрейт ставь , ему побоку , ибо тактируется от мастера !
PS а что так и не осилил слейв?

В PIC-ах адрес битрейта по-моему шарится с адресом. Т.е. в слей-режиме адрес пишется в этот регистр.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: I2c Slave vs CodeVisionAVR

Сообщение Romikgy » 25 авг 2012, 18:52

а разве речь о пиках?
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

След.

Вернуться в Коммуникации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18