roboforum.ru

Технический форум по робототехнике.

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 не смог завести.

Re: I2c Slave vs CodeVisionAVR

SkyZi » 06 июл 2012, 15:35

Хотя бы, просто исходник Ведомого.

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, но никто его не расписывает, аппнотов нет, примеров нет.

Re: I2c Slave vs CodeVisionAVR

SkyZi » 07 июл 2012, 08:47

Вот как раз мне ведомый(Slave) и нужен:(

Re: I2c Slave vs CodeVisionAVR

HarryStar » 08 июл 2012, 22:54

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

Re: I2c Slave vs CodeVisionAVR

SkyZi » 09 июл 2012, 12:19

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

P.S. Если жалко то лучше так и сказать, чтобы я зря не терял тут время.
P.S.S. если бы я знал как переделать, поверь я бы не спрашивал.
Интересует именно лаконичный код работы в Slave режиме, и только slave без "ботвы" и "ОС"

Re: I2c Slave vs CodeVisionAVR

Romikgy » 09 июл 2012, 14:06

это называется "сделайте за меня , то что нужно мне"... такими весчами занимаются студенты , когда им делать нечего .... есть много кода , но как правило он рассчитан на все случаи жизни...если не желаете разбираться, зачем беретесь ? если есть желание разобраться , тогда копайте код которых есть ....

Re: I2c Slave vs CodeVisionAVR

SkyZi » 09 июл 2012, 17:24

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

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

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

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

Похоже вы не утруждали себя прочтением 1 поста. Я не прошу сделать за меня, интересует пример работы Slava'а работающий и компилируемый в CVAVR.

Re: I2c Slave vs CodeVisionAVR

Scorpio » 10 июл 2012, 03:56

Вот программный slave делал. Может пригодится.

Re: I2c Slave vs CodeVisionAVR

SkyZi » 10 июл 2012, 18:33

Спасибо конечно, я пробовал так. Но к сожалению оказалось что Атюни не справляется с основной задачей=//

Re: I2c Slave vs CodeVisionAVR

SkyZi » 11 июл 2012, 23:24

В общем я так понимаю, что зря потерял свое время. У кого есть тот зажили или не смотрит, один человек подкинул подсказку но к сожалению она не подходит именно под этот проект, остальные только умничают...

Re: I2c Slave vs CodeVisionAVR

SkyZi » 25 авг 2012, 13:12

В общем то справился...
Но интересует вопрос, битрейт на слейве не должен же указываться?
ЗЫ и еще вопрос, реально ли чтобы Мастер работал на 16мГц, а слейвы на 8мГц и битрейт был 400кГц, или будет не успевать слейв?

Re: I2c Slave vs CodeVisionAVR

Romikgy » 25 авг 2012, 18:43

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

Re: I2c Slave vs CodeVisionAVR

dccharacter » 25 авг 2012, 18:51

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

В PIC-ах адрес битрейта по-моему шарится с адресом. Т.е. в слей-режиме адрес пишется в этот регистр.

Re: I2c Slave vs CodeVisionAVR

Romikgy » 25 авг 2012, 18:52

а разве речь о пиках?


Rambler\'s Top100 Mail.ru counter