roboforum.ru

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

AVR + I2C

Re: AVR + I2C

dmq » 01 июн 2009, 11:33

galex1981 писал(а):Значит что то не правильно, если содержимое не меняется. Попробуй все таки еще и в AVR - дебаггером проверить, я понимаю что долго но он 100% верные результаты выдает (не доверяю я Протеусу)

Попробую, но если не слишком сложно, все же гляньте вечером тоже пожалуйста.

Re: AVR + I2C

DI HALT » 01 июн 2009, 16:15

Digit писал(а):ну да, посетил :)
а ты думаешь остался незамеченным наплыв посетителей с робофорума, когда шел разбор ошибок сайта DiHalt'a? :D

Честно говоря, остался незамеченым. +/-200 человек на фоне общей посещаемости даже не выделяются.
Нашел случайно - периодически шерстю яндексом по слову easyelectronics.ru, ищу ссылки на себя. Нашел в подвале сайта, а потом уже по форуму решил пробежаться. Тут отметился, гляжу тема про пайку. Думал может какую интересную фичу кто посоветует, а там такая прелесть :)

Re: AVR + I2C

dmq » 01 июн 2009, 16:15

Долго колупал код, сломал голову. В итоге наткнулся в даташите на атмегу на прямой пример работы с тви... Стало стыдно (и ясно почему в начале темы надо мной посмеялись) :ROFL:
В итоге решено с нуля все переписать, исключив возможные ошибки переноса с С на асм и другие недочеты (и почему во второй раз обыно получается лучше?) :)

Re: AVR + I2C

DI HALT » 01 июн 2009, 16:35

Код там элементарный, если не пытаться все сделать аппаратно (а кто нибудь вообще пытался?) на прерываниях. Послал байт - ждешь флаг, послал второй байт, ждешь флаг и так далее. Не забывай проверять коды которые тебе Twi возвращает, чтобы знать что все идет как положено.

Re: AVR + I2C

blindman » 01 июн 2009, 18:30

DI HALT писал(а):Код там элементарный, если не пытаться все сделать аппаратно (а кто нибудь вообще пытался?) на прерываниях

Пытались, и вполне успешно.

Re: AVR + I2C

DI HALT » 01 июн 2009, 19:46

Во, только готовый образец кода такого типа ни разу не встречался. Пришлось самому писать Тоже почти дописал аппаратный отсыл по ииц. Передаешь кому, откуда и сколько байт. Запускаешь и отдаешь управление диспетчеру задач, а отсылка данных пройдет фоном. Надо только отладить чуток.

Re: AVR + I2C

contr » 01 июн 2009, 20:01

Послал байт - ждешь флаг, послал второй байт, ждешь флаг и так далее.

У меня станок с ЧПУ так с компом общается, только флаг выставляет не сразу, а после исполнения.

Re: AVR + I2C

blindman » 01 июн 2009, 20:14

Если не встречался, значит плохо искал. Есть даже апноут AVR315. Да и на робофорум надо бы почаще заходить ;) здесь выкладывались как минимум 2 реализации работы с I2C, моя по прерываниям работает, другая - уже не помню, и кто ее выкладывал

Добавлено спустя 1 минуту 23 секунды:
contr писал(а):У меня станок с ЧПУ так с компом общается, только флаг выставляет не сразу, а после исполнения.

Хоть на название темы посмотрел бы, прежде чем писать

Re: AVR + I2C

galex1981 » 01 июн 2009, 22:07

Я тоже пример выкладывал работы с Eeprom на C

Re: AVR + I2C

contr » 01 июн 2009, 23:03

Хоть на название темы посмотрел бы, прежде чем писать

Если речь о классической реализации I2C, то там ведомый по ASK откликается, на 9 бите CLK. Флага можно не ждать.

Re: AVR + I2C

DI HALT » 02 июн 2009, 00:41

blindman писал(а):Есть даже апноут AVR315. Да и на робофорум надо бы почаще заходить ;) здесь выкладывались как минимум 2 реализации работы с I2C, моя по прерываниям работает, другая - уже не помню, и кто ее выкладывал

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

Добавлено спустя 1 минуту 14 секунд:
contr писал(а):
Хоть на название темы посмотрел бы, прежде чем писать

Если речь о классической реализации I2C, то там ведомый по ASK откликается, на 9 бите CLK. Флага можно не ждать.


О классической это какой? Софтверной чтоль? Тут то речь идет о флаге готовности тви, уже после него можно читать статус и смотреть был там аск или нет.

Re: AVR + I2C

slavaslx » 02 июн 2009, 02:22

Писали:"Долго колупал код, сломал голову...."
Если библиотеку брали с ветки "исходники"? и переделывали под асемб. то там написано что она работает только с 24с01(02), те до 256 байт адресация происходит.
Для больших объемов (04 08 16) адресащия к памяти другая (но я например с ней использую еепром 24с16 всего 256байт). (и адреса устройств) и используется дополнительные 3 бита с адреса устройсва. Где А0-А2 адресные лапы, Р0-Р2 дополнительные биты для адресаций к памяти(в зависимости от объема.).
А с адресом устройсва все в порядке (на запись и чтение)?
Вложения
at24c02.JPG
at24c02.JPG (13.71 КиБ) Просмотров: 2397

Re: AVR + I2C

dmq » 02 июн 2009, 09:38

slavaslx,

На данный момент нашел краткое описание принципов работы конкретно с нужным мне чипом, где белым по русскому написано что А0-А2 вообще не важны (для симуляции в протеусе не пройдет) и чип читает-пишет при всех возможных значениях, то что пишут в даташитах, особенно Microchip, можно даже не читать и т.п. радости.
В итоге стараюсь свести в кучу всю информацию, опираясь на даташит от атмела.

А вообще это планируетя банальный автономный перепрограмматор чипов от картриджей лазерного МФУ Samsung SCX-4200. Предвидя следующий "хихик", да я знаю что все давно сделано до нас и есть в свободном доступе. Работаю за интерес :)

Вобщем когда "рожу", если не забуду - поделюсь с общественностью и своей поделкой.

Re: AVR + I2C

slavaslx » 02 июн 2009, 11:01

dmq писал(а):На данный момент нашел краткое описание принципов работы конкретно с нужным мне чипом, где белым по русскому написано что А0-А2 вообще не важны.

Неважны для 24с(ХХ) 16к (у нее всегда адрес на запись 0хА0) а для всех остальных они важны и опредиляют адрес устройства. Т,е у 8к может быть два адреса, у 4к 4адреса у 1и 2к по 8адресов.
Понятно что они при любых значениях адресных лап будут работать, но адреса утройств на шине то будут другие.
Незнаю как у вас протеус 24с.. моделирует, но у меня 7.4сп3 пишет в нее что угодно, кроме того что надо :o .

Re: AVR + I2C

contr » 02 июн 2009, 14:34

Тут то речь идет о флаге готовности тви

Действительно cпутал. Не сообразил сразу, что речь о внутреннем флаге одного из модулей МК. :sorry:


Rambler\'s Top100 Mail.ru counter