Технический форум по робототехнике.
dmq » 01 июн 2009, 11:33
galex1981 писал(а):Значит что то не правильно, если содержимое не меняется. Попробуй все таки еще и в AVR - дебаггером проверить, я понимаю что долго но он 100% верные результаты выдает (не доверяю я Протеусу)
Попробую, но если не слишком сложно, все же гляньте вечером тоже пожалуйста.
DI HALT » 01 июн 2009, 16:15
Digit писал(а):ну да, посетил
а ты думаешь остался незамеченным наплыв посетителей с робофорума, когда шел разбор ошибок сайта DiHalt'a?
Честно говоря, остался незамеченым. +/-200 человек на фоне общей посещаемости даже не выделяются.
Нашел случайно - периодически шерстю яндексом по слову easyelectronics.ru, ищу ссылки на себя. Нашел в подвале сайта, а потом уже по форуму решил пробежаться. Тут отметился, гляжу тема про пайку. Думал может какую интересную фичу кто посоветует, а там такая прелесть
dmq » 01 июн 2009, 16:15
Долго колупал код, сломал голову. В итоге наткнулся в даташите на атмегу на прямой пример работы с тви... Стало стыдно (и ясно почему в начале темы надо мной посмеялись)
В итоге решено с нуля все переписать, исключив возможные ошибки переноса с С на асм и другие недочеты (и почему во второй раз обыно получается лучше?)
DI HALT » 01 июн 2009, 16:35
Код там элементарный, если не пытаться все сделать аппаратно (а кто нибудь вообще пытался?) на прерываниях. Послал байт - ждешь флаг, послал второй байт, ждешь флаг и так далее. Не забывай проверять коды которые тебе Twi возвращает, чтобы знать что все идет как положено.
blindman » 01 июн 2009, 18:30
DI HALT писал(а):Код там элементарный, если не пытаться все сделать аппаратно (а кто нибудь вообще пытался?) на прерываниях
Пытались, и вполне успешно.
DI HALT » 01 июн 2009, 19:46
Во, только готовый образец кода такого типа ни разу не встречался. Пришлось самому писать Тоже почти дописал аппаратный отсыл по ииц. Передаешь кому, откуда и сколько байт. Запускаешь и отдаешь управление диспетчеру задач, а отсылка данных пройдет фоном. Надо только отладить чуток.
contr » 01 июн 2009, 20:01
Послал байт - ждешь флаг, послал второй байт, ждешь флаг и так далее.
У меня станок с ЧПУ так с компом общается, только флаг выставляет не сразу, а после исполнения.
blindman » 01 июн 2009, 20:14
Если не встречался, значит плохо искал. Есть даже апноут AVR315. Да и на робофорум надо бы почаще заходить
здесь выкладывались как минимум 2 реализации работы с I2C, моя по прерываниям работает, другая - уже не помню, и кто ее выкладывал
Добавлено спустя 1 минуту 23 секунды:contr писал(а):У меня станок с ЧПУ так с компом общается, только флаг выставляет не сразу, а после исполнения.
Хоть на название темы посмотрел бы, прежде чем писать
galex1981 » 01 июн 2009, 22:07
Я тоже пример выкладывал работы с Eeprom на C
contr » 01 июн 2009, 23:03
Хоть на название темы посмотрел бы, прежде чем писать
Если речь о классической реализации I2C, то там ведомый по ASK откликается, на 9 бите CLK. Флага можно не ждать.
DI HALT » 02 июн 2009, 00:41
blindman писал(а):Есть даже апноут AVR315. Да и на робофорум надо бы почаще заходить
здесь выкладывались как минимум 2 реализации работы с I2C, моя по прерываниям работает, другая - уже не помню, и кто ее выкладывал
Спасибо за наводку, как погляжу, то же самое только на асме, а посему почти в два раза короче, ну и в диспетчер задач проще интегрировать, чтобы прерывание не задерживать надолго.
Добавлено спустя 1 минуту 14 секунд:contr писал(а):Хоть на название темы посмотрел бы, прежде чем писать
Если речь о классической реализации I2C, то там ведомый по ASK откликается, на 9 бите CLK. Флага можно не ждать.
О классической это какой? Софтверной чтоль? Тут то речь идет о флаге готовности тви, уже после него можно читать статус и смотреть был там аск или нет.
slavaslx » 02 июн 2009, 02:22
Писали:"Долго колупал код, сломал голову...."
Если библиотеку брали с ветки "исходники"? и переделывали под асемб. то там написано что она работает только с 24с01(02), те до 256 байт адресация происходит.
Для больших объемов (04 08 16) адресащия к памяти другая (но я например с ней использую еепром 24с16 всего 256байт). (и адреса устройств) и используется дополнительные 3 бита с адреса устройсва. Где А0-А2 адресные лапы, Р0-Р2 дополнительные биты для адресаций к памяти(в зависимости от объема.).
А с адресом устройсва все в порядке (на запись и чтение)?
- Вложения
-
- at24c02.JPG (13.71 КиБ) Просмотров: 2397
dmq » 02 июн 2009, 09:38
slavaslx,
На данный момент нашел краткое описание принципов работы конкретно с нужным мне чипом, где белым по русскому написано что А0-А2 вообще не важны (для симуляции в протеусе не пройдет) и чип читает-пишет при всех возможных значениях, то что пишут в даташитах, особенно Microchip, можно даже не читать и т.п. радости.
В итоге стараюсь свести в кучу всю информацию, опираясь на даташит от атмела.
А вообще это планируетя банальный автономный перепрограмматор чипов от картриджей лазерного МФУ Samsung SCX-4200. Предвидя следующий "хихик", да я знаю что все давно сделано до нас и есть в свободном доступе. Работаю за интерес
Вобщем когда "рожу", если не забуду - поделюсь с общественностью и своей поделкой.
slavaslx » 02 июн 2009, 11:01
dmq писал(а):На данный момент нашел краткое описание принципов работы конкретно с нужным мне чипом, где белым по русскому написано что А0-А2 вообще не важны.
Неважны для 24с(ХХ) 16к (у нее всегда адрес на запись 0хА0) а для всех остальных они важны и опредиляют адрес устройства. Т,е у 8к может быть два адреса, у 4к 4адреса у 1и 2к по 8адресов.
Понятно что они при любых значениях адресных лап будут работать, но адреса утройств на шине то будут другие.
Незнаю как у вас протеус 24с.. моделирует, но у меня 7.4сп3 пишет в нее что угодно, кроме того что надо
.
contr » 02 июн 2009, 14:34
Тут то речь идет о флаге готовности тви
Действительно cпутал. Не сообразил сразу, что речь о внутреннем флаге одного из модулей МК.