АвторСообщение
постоянный участник




Пост N: 39
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 14:49. Заголовок: Вопросы по интерфейсу I2C


Народ! Прочитал раздел 1 практикума части 1.1-1.4. Возникла куча вопросов!
1) Цитата из раздела 1.1 на стр. 19 "После "ревизии" содержимого рис. 7, сразу же "вскакивает" вопрос: "Rн (нагрузка выходного каскада защелки)" и стр. 22 "Tуманность" ситуации усугубляется тем, что, в случаях подобных рассматриваемому, совершенно лишний, внешний, подтягивающий резистор линии SCL, как говорится, "общей погоды не портит", так как его номинал значительно превышает номинал нагрузки оконечного каскада защелки, выход которой подключен к линии SCL со стороны м/контроллера.". По моему это полная чушь! Т.к. выходные порты PIC-контроллеров симметричные (за редким исключением некоторых выводов портов), т.е. содержат два транзистора (p- и n-канальные полевики) для создания на выходе порта соответственно высокого и низкого уровня выходных напряжений. Об этом говорится в фирменной документации Microchip DS33023A "Справочник по среднему семейству микроконтроллеров PICMicro" на стр. 4 раздела 9 "Порты ввода-вывода" имеется рисунок 9-1 "Типовая структурная схема одного канала порта ввода-вывода". Так вот, я в упор не вижу на этом рисунке как нагрузка оконечного каскада защелки подключается к выводу порта (к линии SCL). На рисунке имеется защелка данных, вентиль ИЛИ для управления "верхним" p-канальным транзистором и вентиль И для управления "нижним" n-канальным транзистором. Отсюда вывод - никакого резистора нагрузки нет, а отсюда следует, что контроллер не сможет полноценно работать с шиной I2C (синхронизация и арбитраж при работе с двумя мастерами на шине). В случае программного сбоя или короткого замыкания на любой из шин данная аппаратная реализация скорее всего выведет "мастера" на основе PIC из строя, что указано на стр. 16 раздела 9 "Порты ввода-вывода" цитата "На активный вывод порта не должны подключаться нагрузки, включенные по схемам "Монтажное И" или "Монтажное ИЛИ". Возможные большие токи могут повредить микроконтроллер." Получается автор дезинформирует читателей или предлагает урезанный вариант шины, применимый только для 24C64A и подобных микросхем, которые по описанию на 100% аппаратные и не вызовут конфликта на шине. Кто что думает?!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 60 , стр: 1 2 All [только новые]


постоянный участник




Пост N: 40
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 14:52. Заголовок: Контроллер полноценн..


Контроллер полноценно сможет работать только в случае если управлять не регистром "PORT X", а регистром "TRIS X", предварительно записав в требуемый порт нуль. Правда в данном случае, перед обменом данными по шине I2C в начале подпрограмм необходимо будет записывать нули в защелки выводов SDA и SCL, т.к. любые команды обращения типа "чтение-модификация-запись" к порту, где подключена данная шина вне подпрограмм обмена данными вызовут изменение содержимого защелки SDA и SCL, т.к. в пассивном состоянии на данных выводах будет единица!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 53
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 15:10. Заголовок: Лог. "1" в I..


Лог. "1" в I2C - это настроеная на вход нога МК. Саму, физическую, еденицу делает PU, висящий на шине. Естественно, нельзя коммутировать шину на + питания.
Ну и о ЧМЗ, естественно, не нужно забывать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 41
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 15:49. Заголовок: Alex, получается авт..


Alex, так команды bsf PortB,SCL; bsf PortB,SDA как раз и соединяют шину с +5В через открытый p-канальный полевик порта и в случае занятой шины чрезмерный ток потечет через открытый транзистор приемника шины. не трудно догадаться, что произойдет с мастер-передатчиком и приемником шины. Получается автор дает заведомо ложную информацию или недопонимает концепции шины? Кстати, подобные ошибки во многих реализациях различных авторов? Почему в самоучителе нельзя было дать универсальную, а не "кастрированную" подпрограмму обмена данными по I2C? Кстати уменьшилось бы и количество команд в связи с отсутствием необходимости переходов между банками для опроса состояния шины на ACK (разумеется если все рабочие регистры разместить в первом банке или выбрать контроллер, у которого регистры доступны из первого банка, не так ли?

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 54
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:11. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Получается автор дает заведомо ложную информацию или недопонимает концепции шины?

Получается - да

AleksScrewdriver пишет:

 цитата:
Почему в самоучителе нельзя было дать универсальную, а не "кастрированную" подпрограмму обмена данными по I2C?

А вот это Вы и спросите у автора этой писанины на его форуме.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 42
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:18. Заголовок: Alex пишет: А вот эт..


Alex пишет:
 цитата:
А вот это Вы и спросите у автора этой писанины на его форуме.

Кстати в этой писанине возникло много вопросов, которые требуют разрешения и я их задам в этой теме обязательно, но пока хотелось бы услышать мнение и других участников форума, особенно из числа так называемых "изгнанных" (извините меня конечно, но без многих из Вас новый форум КЭА будет не на должном уровне, т.к. многие идеи и статьи обмена написаны именно Вами и в них содержится очень ценная информация). А по сему жду с нетерпением!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 74
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 16:24. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
не сможет полноценно работать с шиной I2C (синхронизация и арбитраж при работе с двумя мастерами на шине).

Не вздумайте использовать программу из самоучителя для этих целей! В лучшем случае ничего не будет работать а то и спалите все к ....! Шина мало того что кастрирована, так еще и работа с ней идет не по стандарту абсолютно... По стандарту лог.1 должна формироваться не самим контроллером, а резистором подтяжки, контроллер может только лог.0 в шину выдать... А если на шине должны присутствовать лог.1 то выводы мастера и ведомого должны работать на вход! Здесь же что лог1 что 0 формирует только контроллер и ни о каком арбитраже на шине даже речи быть не может...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 75
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 16:26. Заголовок: Упс... Опоздал :sm38..


Упс... Опоздал

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 17
Зарегистрирован: 01.03.11
Откуда: Екатеринбург
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:28. Заголовок: Александр, находитьс..


Александр, находиться на этом форуме (а тем более задавать вопросы) для Вас опасно. Чем это грозит надеюсь понимаете.
Можете задать вопрос автору, на его форуме, а мы по возможности, ответим здесь. Тем более будет возможность сравнить ответы и выбрать правильный или наиболее приемлемый для Вас.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 43
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:29. Заголовок: Алексей пишет: Здесь..


Алексей пишет:
 цитата:
Здесь же что лог1 что 0 формирует только контроллер и ни о каком арбитраже на шине даже речи быть не может...

Арбитраж, можно организовать и с помощью PIC, если, повторяю использовать управление защелкой TRIS, тогда все работать будет! Поправьте, если не так!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 44
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:34. Заголовок: medved пишет: Алекса..


medved пишет:
 цитата:
Александр, находиться на этом форуме (а тем более задавать вопросы) для Вас опасно.

medved, если чесно, то это какой-то тоталитаризм! Почему я не могу пользоваться свободой выбора, я не нарушаю никаких авторских прав, а просто пытаюсь выяснить истину!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 18
Зарегистрирован: 01.03.11
Откуда: Екатеринбург
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:40. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Почему я не могу пользоваться свободой выбора


Мне, да и не только мне, это тоже не понятно. Например, за что выгнали Mehanikl?
Спросите это у КЕА.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 76
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 16:45. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Арбитраж, можно организовать и с помощью PIC, если, повторяю использовать управление защелкой TRIS, тогда все работать будет! Поправьте, если не так!

Дык и я о том же ... Имеется ввиду программа, которая дана в самоучителе. С ней и речи быть не может об арбитраже... Лично я уже давно переделал как 1 Wire так и I2C и управляю не портом а направлением порта, особенно класнно это реализуется в 18 и старше пиках. В свое время долго не мог понять почему подпрограмма из самоучителя для 1 wire не всегда работает Оказалось ЧМЗ и некорректная работа с шиной Давно использую уже отрихтованный вариант... Переделки очень простые. Проблем уже не наблюдаю давно

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 77
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 16:51. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
просто пытаюсь выяснить истину!

Чтобы выяснить истину, приходится чем то жертвовать . В данном случае в роли жертвы выступает самоучитель и полностью закрытый форум (Даже правила форума закрыты )...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 19
Зарегистрирован: 01.03.11
Откуда: Екатеринбург
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:55. Заголовок: Алексей пишет: Чтоб..


Алексей пишет:

 цитата:
Чтобы выяснить истину, приходится чем то жертвовать


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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 45
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 16:59. Заголовок: Алексей, просто я на..


Алексей, просто я начинающий и поэтому у меня возникает куча вопросов! Алексей пишет:

 цитата:
Давно использую уже отрихтованный вариант... Переделки очень простые.

Примерно догадываюсь, о чем Вы!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 106
Зарегистрирован: 01.03.11
Откуда: Украина, Киев
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 17:13. Заголовок: Алексей пишет: Давн..


Алексей пишет:

 цитата:
Давно использую уже отрихтованный вариант... Переделки очень простые.


Может "отрихтованный вариант" стоит выложить где-нибудь. Например, здесь. И рекомендовать всем владельцам CD, кроме автора, заменить соответствующие темы или ПП на откорректированные?

«Never attribute to malice that which can be adequately explained by stupidity» («Никогда не приписывайте злонамеренности тому, что вполне может быть объяснено глупостью»)
Бритва Хэнлона
Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 78
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 17:14. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Примерно догадываюсь, о чем Вы

Ага... 0 формируется переключением пина на выход, а все остальное время пин работает исключительно на вход... Ну и о ЧМЗ не забываю, если вывожу что либо в порт, то перед переключением скидываю нужный бит для формирования нуля. В 18 пиках при корректной работе с портом даже о ЧМЗ заботится не надо . У RTF в самоучителе по моему даже этого нет... Так по старинке и работает с портами...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 79
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 17:20. Заголовок: Bigor пишет: Может ..


Bigor пишет:

 цитата:
Может "отрихтованный вариант" стоит выложить где-нибудь.

Чего? I2C, дык там все просто рихтуется, да и программный я делал недавно, но слепил как получилось, лишь бы работало. Отлаживал в протеусе шину, а с аппаратным модулем в протеусе какие то проблемы, поэтому слепил программный и отладил вывод а в железо воткнул аппаратный, а там все просто до не могу А по 1 wire я как то вроде даже в обмен отсылал отрихтованный вариант... Точно! это была моя последняя статья в обмене по поиску rom, правда там вроде были недостатки, но все работало

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 46
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 18:21. Заголовок: Усе понятно! Спасибо..


Усе понятно! Спасибо! Теперь вопрос №2 Сигнал подтверждения ACK или почему у автора объяснение расходится с спецификацией шины I2C. Цитата из текста практикума 1 часть 1.2 стр.6 "Строб 9-го такта запускает процедуру записи текущего байта данных в ранее выбранную ячейку памяти. Это означает что внутренний, тактовый RC генератор ("раздолбай") начал работать, то есть, выдавать внутренний такт, необходимый для осуществления процедуры записи.
Как конкретно происходит запись, знать вовсе не нужно (она займет некоторое время), а нужно знать то, что, по окончании записи (в случае успешной записи байта), автоматика 24Схх запретит работу внутреннего, тактового RC генератора и одновременно с этим, посредством открывания транзистора формирователя сигнала АСК, сформирует 0 на линии SDA (это и есть начало формирования сигнала АСК)". Получается, что линия SDA имеет высокий уровень во время прохождения импульса SCL (это видно и по рис. 3 и 4). Но данное объяснение противоречит спецификации I2C! Цитата из перевода "Подтверждение при передаче данных обязательно. Соответствующий испульс синхронизации генерируется ведущим. Передатчик отпускает (ВЫСОКОЕ) линию SDA в течение синхроимпульса подтверждения. Приёмник должен удерживать линию SDA в течение ВЫСОКОГО состояния синхроимпульса подтверждения в стабильно НИЗКОМ состоянии (рис. 8). Конечно, время установки и удержания также должны быть приняты во внимание." Вот здесь мне становится совсем непонятно кому верить?!!! Книга Б.Ю. Семенова "Шина I2C в радиотехнических конструкциях" говорит в пользу спецификации. Цитата из книги на стр.21: "В момент отрицательного перепада импульса 8 на линии SCL slave-абонент должен выставить на линию SDA нулевой уровень - открыть транзистор. Тем самым приемник подтверждает нормальный прием байта. Передатчик (master-абонент) должен выставлять на линию SDA единичное состояние. Благодаря тому что линия организована по способу "монтажное И", ее состояние будет определяться только slave-абонентом. Передатчик должен проверить состояние линии SDA, затем выдать девятый стробирующий импульс, с которым slave-абонент выставит на линию SDA высокий уровень, проверить выполнение этой операции и лишь после продолжить передачу. В случае неподтверждения нормального приема (сигнал ACK имеет высокий уровень) передатчику желательно выполнить условие Stop и повторить передачу." Короче одни вопросы!


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 202
Зарегистрирован: 01.03.11
Рейтинг: 2
ссылка на сообщение  Отправлено: 10.04.11 18:59. Заголовок: Мне тоже не понравил..


Мне тоже не понравилось в свое время "зависание АСК". Не люблю неопределенности.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 47
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 19:03. Заголовок: Так получается данны..


Так получается данные автора не верны?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 80
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.04.11 19:18. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Так получается данные автора не верны?

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

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 55
Зарегистрирован: 10.02.11
Откуда: Россия
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 19:26. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Так получается данные автора не верны?

Вы до сих пор этому удивляетесь ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 48
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.04.11 19:33. Заголовок: Так объясните, пожал..


Алексей пишет:
 цитата:
Какого автора?

Автора самоучителя. Так объясните, пожалуйста убогому как правильно происходит формирование сигнала ACK и как правильно его программно отслеживать?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 49
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 10:14. Заголовок: Народ! Просмотрел я ..


Народ! Просмотрел я информацию по микросхемам памяти серии 24СХХ и нашел то, что полностью противоречит описанию в самоучителе! Все дело в том, что во всех этих микросхемах памяти существует так называемая процедура поллинга. Т.е. после задания адреса ячейки, куда необходимо записать байт, и передачи байта данных (каждый байт подтверждается сигналом ACK от приемника (т.е. микросхемы памяти) иначе это противоречит условию нормального приема байта и в таком случае "мастер" должен повторить передачу сначала) и подачи со стороны мастера сигнала Stop запускается внутренний процесс записи. Если микросхема адресуется во время внутреннего процесса записи, то она не выдает бит подтверждения. В таком случае мастер периодически повторяет запросы и дожидается момента, когда приемник закончит внутренние процессы и выдаст ACK на запрос! В самоучителе же написано следующее: "Строб 9-го такта запускает процедуру записи текущего байта данных в ранее выбранную ячейку памяти. Это означает что внутренний, тактовый RC генератор ("раздолбай") начал работать, то есть, выдавать внутренний такт, необходимый для осуществления процедуры записи. Как конкретно происходит запись, знать вовсе не нужно (она займет некоторое время), а нужно знать то, что, по окончании записи (в случае успешной записи байта), автоматика 24Схх запретит работу внутреннего, тактового RC генератора и одновременно с этим, посредством открывания транзистора формирователя сигнала АСК, сформирует 0 на линии SDA (это и есть начало формирования сигнала АСК).
А раз это так, то после начала процедуры записи, "мастер" должен приступить к анализу состояния линии SDA, с целью обнаружения (или нет) нуля сигнала АСК." Получается полная хрень!!! Во всех документациях на микрухи памяти написано, что мастер получив сигнал ACK формирует условие Stop и это запускает внутренний процесс записи (В самоучителе написано строб 9-го такта запускает процесс записи). После условия Stop шина свободна и в случае если на ней висят другие приемники или мастеры, то может продолжаться другие передачи данных. По самоучителю мастер должен постоянно опрашивать шину на сигнал ACK, что как и писал MAZ приводит к зависанию. А если приложение многозадачное, то как быть здесь? Короче я в смятении!!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 50
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 10:24. Заголовок: На новом форуме КЕА ..


На новом форуме КЕА ответа я так и не получил!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 81
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 11:50. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
А если приложение многозадачное, то как быть здесь? Короче я в смятении!!!!

По моему вы разобрались лучше нас всех вместе взятых . Лично я не лез в такие дебри. Но то что вы приводите очень даже логично... В смысле того, что запись запускается только после передачи STOP. Вряд ли запись может длиться несколько микросекунд для одного байта чтобы успеть после передачи 8 бита к 9 такту... ACK действительно свидетельствует только об успешном приеме байта и больше ни о чем. Да и во время записи... Вполне логично что микросхема не будет отвечать на адресацию, она ведь занята записью...
По поводу зависания, тоже бывает такое но выхожу из положения так, если не получил ACK то ухожу на повтор передачи байта и так несколько раз... Если по окончании этого цикла так и не получаю подтверждения то формирую условие STOP... Причем, если все таки хотите делать шину с двумя мастерами, то лучше все таки использовать аппаратный модуль MSSP...
AleksScrewdriver пишет:

 цитата:
А если приложение многозадачное, то как быть здесь?

Тут в любом случае придется писать что то свое... За универсальность придется заплатить объемом кода, для КЕА это не приемлемо, поэтому Вы никогда в самоучителе не найдете ничего универсального, исключительно только то, что заточено под крайне узкую область применения. Примером может служить абонемент 2011 и туева хуча подпрограмм двоично десятичного преобразования... Даже при отладке чтобы перекинуть выводы в его программе, приходится перелопачивать от и до всю программу и менять порты весь день, а потом неделю вылавливать еще и глюки после такой замены. Но с точки зрения МАСТЕРА такой подход рационален ... Несмотря на большие временнЫе затраты повторяем то, что только что написали... Давно пора переопредлять выводы как #define DS PORTB,4... тогда в программе уже можно будет писать вместо PORTB,4 уже просто DS. в этом случае достаточно будет поменять в шапке всего лишь одно определение...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 107
Зарегистрирован: 01.03.11
Откуда: Украина, Киев
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 11:52. Заголовок: AleksScrewdriver, по..

«Never attribute to malice that which can be adequately explained by stupidity» («Никогда не приписывайте злонамеренности тому, что вполне может быть объяснено глупостью»)
Бритва Хэнлона
Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 82
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 12:06. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
А раз это так, то после начала процедуры записи, "мастер" должен приступить к анализу состояния линии SDA, с целью обнаружения (или нет) нуля сигнала АСК.

Зато теперь у меня возникают вопросы Ведь вряд ли только побайтно в память можно записывать, наверняка есть хотя бы постраничная запись в микросхему и вряд ли после передачи каждого байта надо передавать стоп? В этом случае запись будет очень ресурсоемкой для контроллера... хотя бы формирование старт и стоп условия ... А если это так, то должен существовать какой то буфер в микросхеме... размером хотя бы со страницу, куда загружается вся страница или ее часть и по условию стоп запускается внутренний процесс записи, в течении которого устройство не будет отвечать... Как только устройство ответит на адресацию, это будет признаком завершения операции записи...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 108
Зарегистрирован: 01.03.11
Откуда: Украина, Киев
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 12:20. Заголовок: Нашел примечательную..


Нашел примечательную статью по "квадратной" шине, но она ориентирована АВР и СИ . Так, что это не для меня, пока. Я в полной мере не могу оценить степень полезности всего этого:http://avrlab.com/node/84#comments
Алексей, думаю ты в этом разберешься, если будет время и желание.


«Never attribute to malice that which can be adequately explained by stupidity» («Никогда не приписывайте злонамеренности тому, что вполне может быть объяснено глупостью»)
Бритва Хэнлона
Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 83
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 12:35. Заголовок: Bigor пишет: Алексе..


Bigor пишет:

 цитата:
Алексей, думаю ты в этом разберешься, если будет время и желание.

Да ну его нафих... В этой программе возможны зависания если с флагами пошло что то не так Не предусмотрен аварийный выход, на асме есть что поковырять, с MSSP все очень просто делается... А на Си написать недолго...

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 109
Зарегистрирован: 01.03.11
Откуда: Украина, Киев
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 12:35. Заголовок: Алексей пишет: Зато..


Алексей пишет:

 цитата:
Зато теперь у меня возникают вопросы Ведь вряд ли только побайтно в память можно записывать, наверняка есть хотя бы постраничная запись в микросхему


По этому поводу в даташите написано следующее:

PAGE WRITE: The 32K/64K EEPROM is capable of 32-byte page writes.
A page write is initiated the same way as a byte write, but the microcontroller does not
send a stop condition after the first data word is clocked in. Instead, after the EEPROM
acknowledges receipt of the first data word, the microcontroller can transmit up to 31
more data words. The EEPROM will respond with a zero after each data word received.
The microcontroller must terminate the page write sequence with a stop condition (refer
to Figure 3).
The data word address lower 5 bits are internally incremented following the receipt of
each data word. The higher data word address bits are not incremented, retaining the
memory page row location. When the word address, internally generated, reaches the
page boundary, the following byte is placed at the beginning of the same page. If more
than 32 data words are transmitted to the EEPROM, the data word address will “roll
over” and previous data will be overwritten.

Если надо, переведу.

«Never attribute to malice that which can be adequately explained by stupidity» («Никогда не приписывайте злонамеренности тому, что вполне может быть объяснено глупостью»)
Бритва Хэнлона
Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 84
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 12:48. Заголовок: Вобщем понятно... мо..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 51
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 14:31. Заголовок: Алексей пишет: Вобще..


Алексей пишет:
 цитата:
Вобщем понятно... можно сразу писать 32 байта... после передачи последнего не передается подтверждение ведомым и по спецификации мастер должен сформировать условие стоп... после чего и запускается запись..

Алексей, исчерпывающую информацию Вы можете найти в документации на микросхему IN24LC04B фирмы "Интеграл". Из нее я и понял весь принцип работы мастера с памятью! А в самоучителе написана полная чушь!!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 52
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 14:44. Заголовок: Алексей пишет: За ун..


Алексей пишет:
 цитата:
За универсальность придется заплатить объемом кода, для КЕА это не приемлемо

Так почему все владельцы CD получил в данном разделе неверную информацию и кривой код в виде подрограмм обмена с памятью!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 85
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 15:09. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Алексей, исчерпывающую информацию Вы можете найти в документации на микросхему IN24LC04B фирмы "Интеграл".


Неужели на русском? Просто особо не лез в эти дебри... Мне было достаточно знать что код кривой и как работает шина без арбитража... с арбитражем не связывался еще, не приходилось... Еще могу посоветовать разобраться с этой библиотекой, входящей в состав малаб ...\Microchip\MpAM\MpAM. вместо точек, путь куда установлен мплаб... есть примеры и на Си и на асме... Вот только код написан в разы грамотнее чем у КЕА, к тому же код переносимый... Правда за это приходится платить избыточностью и сложно понять как его применить . Зато думаю все это дело в точности соответствует спецификации шины. Есть как программная реализация квадратной шины, так и аппаратная...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 86
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 15:16. Заголовок: AleksScrewdriver пиш..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 87
Зарегистрирован: 01.03.11
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.04.11 15:22. Заголовок: AleksScrewdriver пиш..


AleksScrewdriver пишет:

 цитата:
Так почему все владельцы CD получил в данном разделе неверную информацию и кривой код в виде подрограмм обмена с памятью!

Дык полная реализация требует больших затрат времени и сил, а так как КЕА в упор не признает чужие наработки, то и заморачиваться он не стал с шиной, написал как понимает, кастрировал спецификацию, в железе с памятью заработала и на этом успокоился... А то что могут возникнуть электрические конфликты вплоть до сдыхания микросхем это уже не его проблемы...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 54
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 15:22. Заголовок: В общем, мужики, я р..


В общем, мужики, я разочарован!!! Такого от самоучителя я не ожидал!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 55
Зарегистрирован: 09.02.11
Откуда: Россия, Жигулевск
Рейтинг: 0
ссылка на сообщение  Отправлено: 11.04.11 15:24. Заголовок: AleksScrewdriver пиш..


Алексей пишет:
 цитата:
написал как понимает, кастрировал спецификацию, в железе с памятью заработала

Не то слово кастрировал! Я вообще удивляюсь как там чего заработало!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 60 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия