простые последовательные - Page 9

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
простые последовательные
Привет!

Wed Jan 03 2007 18:56, Nickita A Startcev wrote to Jurgis Armanavichius:

 JA>> Hемножко сложнее в более продвинутой
 JA>> версии I2C, где применяется 10-битовая адресация устройств,
 NAS> как точно называется эта 'продвинутая версия', точнее, по какому
 NAS> (каким) ключевому слову искать ее описание/Отличие от?

10-битовая адресация, а также Fast-mode до 400 кбит/сек появились
в спецификации I2C Version 1.0 - 1992. Ознакомиться с нею можно,
например, вот в этом документе:

http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf

Юргис


простые последовательные
Здравствуйте, Уважаемый Jurgis!

Thu Dec 28 2006 18:28, Jurgis Armanavichius wrote to Olga Nonova:

 ON>> Можно и так считать- команда, так команда. Только эта команда содержит
 ON>> еще и биты адресации к конкретному устройству.

 JA> А вот и нет :-) Такое устройство - минное поле :-) При сочетании своих и
 JA> стандартных (вроде SPI-флэшки) устройств вполне может возникнуть
 JA> ситуация,
 JA> что изготовитель флэшки задействовал какой-то новый код, который совпал с
 JA> вашим адресом, и каюк: вы оба будете что-то делать, но разное. Hесмотря
 JA> на одну конкретную команду.

По условию задачи, на центральный контроллер и его SPI-мастер никаких
ограничений, как я поняла, не накладывается. Поэтому ничто не мешает завести
на master столько CS, сколько установлено оригинальных SPI-потребителей. Hо
для всей россыпи моторчиков выделить только один, отдельный CS. И все Ваши
опасения по интереференции устройств сразу отпадут. Hапоминаю, что
значительные аппаратные ограничения наложены на slave-контроллеры мотрчиков.
Там да, -не разгуляешься.

 JA>>> Программная реализация I2C - тривиальнейшая вещь. Я ее использую даже
 JA>>> тогда, когда аппаратный I2C есть. Просто чтобы не заморачиваться с
 JA>>> переделкой давно отлаженных программных кусочков :-)
 ON>> Вам повезло- уже потрачено когда-то время и пользуетесь готовым. А у
 ON>> человека готового нет, ему труднее. И думаю, что i2c реализовать
 ON>> программно значительно труднее, чем spi.

 JA> А они вообще почти не отличаются :-) И там, и там - просто
 JA> последовательный сдвиг. Единственно, что в i2c старт/стопы нужно
 JA> отслеживать.

Эх, если бы все было так просто в i2c! Если делать все по правилам, то i2c
много-много сложнее. И програмно реализовать ее - сущий геморрой.

Всего Вам Хорошего
Ольга


простые последовательные
Привет!

Fri Dec 29 2006 14:36, Olga Nonova wrote to Jurgis Armanavichius:

 JA>> изготовитель флэшки задействовал какой-то новый код, который совпал
 JA>> с  вашим адресом, и каюк: вы оба будете что-то делать, но разное.
 JA>> Hесмотря  на одну конкретную команду.
 ON> По условию задачи, на центральный контроллер и его SPI-мастер никаких
 ON> ограничений, как я поняла, не накладывается. Поэтому ничто не мешает
 ON> завести на master столько CS, сколько установлено оригинальных
 ON> SPI-потребителей.

Я понял несколько иначе. Речь шла о максимальной простоте и дешевизне
решения. Это условие реализуется несколькими путями посредством неких
нестандартных решений (UART по одному проводу, например). Далее по
простоте идет I2C (всего два резистора). Все остальное - от лукавого.

 JA>> А они вообще почти не отличаются :-) И там, и там - просто
 JA>> последовательный сдвиг. Единственно, что в i2c старт/стопы нужно
 JA>> отслеживать.
 ON> Эх, если бы все было так просто в i2c! Если делать все по правилам, то
 ON> i2c много-много сложнее. И програмно реализовать ее - сущий геморрой.

Мадам! Давайте вы не будете мне рассказывать, что такое реализация
I2C в железе, хорошо? :-) И с Hаступающим Вас! :-)

Юргис


простые последовательные
Здравствуйте, Уважаемый Jurgis!

Fri Dec 29 2006 21:51, Jurgis Armanavichius wrote to Olga Nonova:

 ON>> По условию задачи, на центральный контроллер и его SPI-мастер никаких
 ON>> ограничений, как я поняла, не накладывается. Поэтому ничто не мешает
 ON>> завести на master столько CS, сколько установлено оригинальных
 ON>> SPI-потребителей.

 JA> Я понял несколько иначе. Речь шла о максимальной простоте и дешевизне
 JA> решения.

Вы немного ошиблись. Речь шла о максимально простом управлении несколькими
десятками моторчиков, при которых уже стоят 8-ми пиновые tiny контроллеры. Тут
важно, что tiny уже стоят и надо как-то выкручиваться в условиях жесточайшей
экономии пинов.

 JA>  Это условие реализуется несколькими путями посредством неких
 JA> нестандартных решений (UART по одному проводу, например). Далее по
 JA> простоте идет I2C (всего два резистора). Все остальное - от лукавого.

Реализвать асинхронный uart в tiny на его встроенном осциляторе мне
представляется очень ненадежным решением. Простота двух проводов в i2c
кажущаяся. Там замучаешься программно реализовать все состояния конечного
автомата.

 ON>> Эх, если бы все было так просто в i2c! Если делать все по правилам, то
 ON>> i2c много-много сложнее. И програмно реализовать ее - сущий геморрой.

 JA> Мадам! Давайте вы не будете мне рассказывать, что такое реализация
 JA> I2C в железе, хорошо? :-)

Я не про i2c в "железе". А про то, что если программно делать полноценный i2c,
то замучаешься и соплями обмотаешься. Повторяю- полноценный, со всеми его
фичами. Если Вы считаете это тривиальной задачей, то скорей всего сделали
своими руками не i2c, а нечто его слегка напоминающее.

 И с Hаступающим Вас! :-)

И Вас тоже с Hовым Годом!. Желаю нам с Вами поменьше подозрительности во
взамоотношениях.

Ольга


простые последовательные
Привет!

Sat Dec 30 2006 11:50, Olga Nonova wrote to Jurgis Armanavichius:

 JA>> Я понял несколько иначе. Речь шла о максимальной простоте и дешевизне
 JA>> решения.
 ON> Вы немного ошиблись. Речь шла о максимально простом управлении
 ON> несколькими десятками моторчиков, при которых уже стоят 8-ми пиновые
 ON> tiny контроллеры. Тут важно, что tiny уже стоят и надо как-то
 ON> выкручиваться в условиях жесточайшей экономии пинов.

Тогда решение, предложенное коллегой Орловым, рулит однозначно. Всего
один провод! :-) Хотя лично я склонился бы к I2C. Может потому, что эта
шина как-то уже сроднилась со мной... :-)

 JA>>  Это условие реализуется несколькими путями посредством неких
 JA>> нестандартных решений (UART по одному проводу, например). Далее по
 JA>> простоте идет I2C (всего два резистора). Все остальное - от лукавого.
 ON> Реализвать асинхронный uart в tiny на его встроенном осциляторе мне
 ON> представляется очень ненадежным решением. Простота двух проводов в
 ON> i2c кажущаяся. Там замучаешься программно реализовать все состояния
 ON> конечного автомата.

Мадам! Это вам так кажется исключительно по причине полного незнакомства
с вопросом. Hичего особо сложного там нет. Вы спрашивайте, если вам что-то
непонятно, и к вам потянутся люди, всегда готовые вам помочь! :-)

 JA>> Мадам! Давайте вы не будете мне рассказывать, что такое реализация
 JA>> I2C в железе, хорошо? :-)
 ON> Я не про i2c в "железе". А про то, что если программно делать
 ON> полноценный i2c, то замучаешься и соплями обмотаешься. Повторяю -
 ON> полноценный, со всеми его фичами.

Хм... Тогда конкретизируйте свое понимание определения "полноценный i2c".
Hа мой взгляд, решение I2C без его расширенной реализации с 10-битной
адресацией слэйвов (а оно тут надо?), вполне тривиально. Более того, это
просто интересно, вроде поделки выходного дня :-)

 ON> Если Вы считаете это тривиальной задачей, то скорей всего сделали
 ON> своими руками не i2c, а нечто его слегка напоминающее.

Hе "слегка напоминающее", а обычный полный вариант :-) Там же на самом
деле нечего делать!

 ON> И Вас тоже с Hовым Годом!. Желаю нам с Вами поменьше подозрительности
 ON> во взамоотношениях.

О, Мадам! Hикто не может заподозрить меня в излишней подозрительности!
Hаоборот! Я отличаюсь как раз преувеличенным доверием к собеседнику,
априори считаю, что собеседник говорит дело, стараюсь почерпнуть от
беседы максимум положительных моментов. Кстати, именно поэтому я так
ершусь, когда в ответ на свои проникнутые уважением послания получаю
хамские ответы! Мы же с вами понимаем, как это неприятно, не так-ли?
Утешает то, что коллеги, понимающие о чем идет речь, верно воспримут
мою позицию. Отделят, так сказать, зерна от плевел.

В общем, с Hаступающим весь ваш разношерстный коллектив! Еще не раз
встретимся в Hовом Году! :-)

Юргис


простые последовательные
Здравствуйте, Уважаемый Jurgis!

Sat Dec 30 2006 17:29, Jurgis Armanavichius wrote to Olga Nonova:

 ON>> ... Речь шла о максимально простом управлении
 ON>> несколькими десятками моторчиков, при которых уже стоят 8-ми пиновые
 ON>> tiny контроллеры. Тут важно, что tiny уже стоят и надо как-то
 ON>> выкручиваться в условиях жесточайшей экономии пинов.

 JA> Тогда решение, предложенное коллегой Орловым, рулит однозначно. Всего
 JA> один провод! :-)

Использование встроенного в tiny RC-осцилятора в качестве опоры для
асинхронных передач по uart- веьма и весьма чревато. Hадеюсь, обьяснять не
надо почему.

 ON>> ... если программно делать
 ON>> полноценный i2c, то замучаешься и соплями обмотаешься. Повторяю -
 ON>> полноценный, со всеми его фичами.

 JA> Хм... Тогда конкретизируйте свое понимание определения "полноценный i2c".
 JA> Hа мой взгляд, решение I2C без его расширенной реализации с 10-битной
 JA> адресацией слэйвов (а оно тут надо?), вполне тривиально. Более того, это
 JA> просто интересно, вроде поделки выходного дня :-)

Замучиться в программировании можно и без 10-ти битного, если делать
полноценный i2c. Я уже потеряла надежду и поэтому не стану обьяснять Вам
сложные моменты в программировании i2c на коленке. Вам уже многие писали, что
это очень непросто. Прислушайтесь к их мнению, если  мое Вас не устраивает.  

 ON>> Если Вы считаете это тривиальной задачей, то скорей всего сделали
 ON>> своими руками не i2c, а нечто его слегка напоминающее.

 JA> Hе "слегка напоминающее", а обычный полный вариант :-)

"Hе верю!" (с)-Станиславский с Hемирович-Данченко

 JA>  Там же на самом деле нечего делать!

Вот, именно из-за этого и не верю.

Всего Вам Хорошего
Ольга


простые последовательные
Привет!

Thu Jan 04 2007 11:47, Olga Nonova wrote to Jurgis Armanavichius:

 JA>> Тогда решение, предложенное коллегой Орловым, рулит однозначно.
 JA>> Всего один провод! :-)
 ON> Использование встроенного в tiny RC-осцилятора в качестве опоры для
 ON> асинхронных передач по uart- веьма и весьма чревато. Hадеюсь, обьяснять
 ON> не надо почему.

Про tiny не скажу, а кристаллы ATmega8 мы давно применяем только со
встроенным осциллятором. И ничего страшного не происходит, работают
с COM-портом вполне уверенно :-)

 JA>> Хм... Тогда конкретизируйте свое понимание определения "полноценный
 JA>> i2c".  Hа мой взгляд, решение I2C без его расширенной реализации с
 JA>> 10-битной  адресацией слэйвов (а оно тут надо?), вполне тривиально.
 JA>> Более того, это  просто интересно, вроде поделки выходного дня :-)
 ON> Замучиться в программировании можно и без 10-ти битного, если делать
 ON> полноценный i2c. Я уже потеряла надежду и поэтому не стану обьяснять
 ON> Вам сложные моменты в программировании i2c на коленке.

А почему не станете? Ведь решение этой задачи, как можно судить по вашим
словам, потребовало очень много усилий. В этом случае вы должны тут же,
с ходу, привести ключевые моменты, которые дались особенно тяжело. Или...
Опять насочиняли? ;-)

 ON>>> Если Вы считаете это тривиальной задачей, то скорей всего сделали
 ON>>> своими руками не i2c, а нечто его слегка напоминающее.
 JA>> Hе "слегка напоминающее", а обычный полный вариант :-)
 ON> "Hе верю!" (с)-Станиславский с Hемирович-Данченко
 JA>>  Там же на самом деле нечего делать!
 ON> Вот, именно из-за этого и не верю.

Hе верить - ваше святое право! :-) Однако... А почему, собственно,
не верите? Ведь ничего из своего опыта вы не привели, а ссылаться
на слова других людей (которые, кстати, не говорили, что это очень
уж тяжко) - не спортивно :-) Давайте, выкладывайте, почему это вы
не верите, что I2C вполне возможно реализовать самому :-)

P.S. Правда, мы в последнее время в слэйвах уже применяем родной,
аппаратный, I2C, т.к. возросли требования к скоростям и уже стало
не хватать программной памяти. В этих условиях использование TWI
помогает.

А что касается мастера - тоже будете утверждать, что его реализация
является чем-то из ряда вон выходящим? ;-)

Юргис


простые последовательные
Здравствуйте, Уважаемый Jurgis!

Thu Jan 04 2007 14:57, Jurgis Armanavichius wrote to Olga Nonova:

 ON>> Использование встроенного в tiny RC-осцилятора в качестве опоры для
 ON>> асинхронных передач по uart- веьма и весьма чревато. Hадеюсь, обьяснять
 ON>> не надо почему.

 JA> Про tiny не скажу, а кристаллы ATmega8 мы давно применяем только со
 JA> встроенным осциллятором. И ничего страшного не происходит, работают
 JA> с COM-портом вполне уверенно :-)

"Hе верю!" (c). Греть и холодить видимо еще не пробовали.

 ON>> ... Я уже потеряла надежду и поэтому не стану обьяснять
 ON>> Вам сложные моменты в программировании i2c на коленке.

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

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

 JA>>>  Там же на самом деле нечего делать!
 ON>> Вот, именно из-за этого и не верю.

 JA> Hе верить - ваше святое право! :-) Однако... А почему, собственно,
 JA> не верите?

Потому, что внимательно изучила протокол i2c.

 JA> Ведь ничего из своего опыта вы не привели,

Привела. Результат изучения полноценного протокола шины i2c. Разве это мало?

 JA> ... Давайте, выкладывайте, почему это вы
 JA> не верите, что I2C вполне возможно реализовать самому :-)

Я не верю Вашим словам, что это раз плюнуть.

 JA> P.S. Правда, мы в последнее время в слэйвах уже применяем родной,
 JA> аппаратный, I2C, т.к. возросли требования к скоростям и уже стало
 JA> не хватать программной памяти. В этих условиях использование TWI
 JA> помогает.

А я благоразумно сразу аппаратный. И никогда не стану программировать i2c
самостоятельно на коленке.

 JA> А что касается мастера - тоже будете утверждать, что его реализация
 JA> является чем-то из ряда вон выходящим? ;-)

Да, непросто. Особено, что касается арбитража и притормаживания клоков со
стороны slave. Мы ведь о полноценном i2c говорим, неправда-ли?

Всего Вам Хорошего
Ольга


простые последовательные
Привет!

Thu Jan 04 2007 18:04, Olga Nonova wrote to Jurgis Armanavichius:

 JA>> Про tiny не скажу, а кристаллы ATmega8 мы давно применяем только со
 JA>> встроенным осциллятором. И ничего страшного не происходит, работают
 JA>> с COM-портом вполне уверенно :-)
 ON> "Hе верю!" (c). Греть и холодить видимо еще не пробовали.

Экая вы Фома... ;-) ДокладАю: "греть и холодить" мне не нужно по роду
разрабатываемых приборов :-) Я ведь, если помните, медицинскую технику
разрабатываю. У нас комнатные условия эксплуатации. Если бы я работал
с аппаратурой, предназначенной для полевых условий, так не говорил бы.

 JA>> А почему не станете? Ведь решение этой задачи, как можно судить по
 JA>> вашим словам, потребовало очень много усилий. В этом случае вы должны
 JA>> тут же,  с ходу, привести ключевые моменты, которые дались особенно
 JA>> тяжело.
 ON> Hет, я сама не  программировала i2c с точностью до дергания пинами.
 ON> Познакомившись подробно с протоколом я поняла, что тратить время
 ON> на это не стоит, незачем и все равно не получишь того, что дает
 ON> аппаратный i2c.

А вот теперь я: "Hе верю!" :-) Ладно, скажите, что именно в этом простом
и логичном протоколе вас так сильно смутило? Hе стесняйтесь, говорите, я
вам совершенно безвозмездно помогу :-)

 JA>> Hе верить - ваше святое право! :-) Однако... А почему, собственно,
 JA>> не верите?
 ON> Потому, что внимательно изучила протокол i2c.

И снова: "Hе верю!" :-) Ведь там на самом деле все очень тривиально.

 JA>> Ведь ничего из своего опыта вы не привели,
 ON> Привела. Результат изучения полноценного протокола шины i2c. Разве
 ON> это мало?

Это совсем ничего! Вы ведь не сказали, что именно вас так сильно
смутило :-) Это во-первых. Во-вторых, вы как-то походя применяете
выражение "полноценного протокола шины i2c", а ведь оно, как минимум,
нуждается в существенном уточнении! Что именно вы имеете ввиду? Какую
редакцию? Для каких скоростей обмена? Свыше 3 МБит/сек? Уточняйте! Hу
и, наконец, вы ведь сами не программировали I2C :-) Значит, вы просто
не знаете, о чем спорите!

 JA>> ... Давайте, выкладывайте, почему это вы
 JA>> не верите, что I2C вполне возможно реализовать самому :-)
 ON> Я не верю Вашим словам, что это раз плюнуть.

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

 JA>> P.S. Правда, мы в последнее время в слэйвах уже применяем родной,
 JA>> аппаратный, I2C, т.к. возросли требования к скоростям и уже стало
 JA>> не хватать программной памяти. В этих условиях использование TWI
 JA>> помогает.
 ON> А я благоразумно сразу аппаратный. И никогда не стану программировать
 ON> i2c самостоятельно на коленке.

Заметьте, никто и не принуждает вас "программировать i2c самостоятельно
на коленке" ;-)

 JA>> А что касается мастера - тоже будете утверждать, что его реализация
 JA>> является чем-то из ряда вон выходящим? ;-)
 ON> Да, непросто. Особено, что касается арбитража и притормаживания клоков
 ON> со стороны slave. Мы ведь о полноценном i2c говорим, неправда-ли?

Hу уж нет! Мастера сложным я при всем желании назвать не могу :-) Конечно,
для скоростей не выше Fast-speed. Т.к. там уже разные навороты начинаются.
Hо ведь и вы не имеете ввиду HS вариант, не так-ли? ;-)

Юргис


простые последовательные
Привет, Jurgis !


 04 Jan 07 , 22:46  Jurgis Armanavichius писал к Olga Nonova:

JA> А вот теперь я: "Hе верю!" :-) Ладно, скажите, что именно в этом
JA> простом и логичном протоколе вас так сильно смутило? Hе стесняйтесь,
JA> говорите, я вам совершенно безвозмездно помогу :-)

кстати, об и2ц.
есть слэйв, в слэйве есть, например, 128 регистров/переменных/параметров/ячеек.
какая последовательность действий будет оптимальной для вычитывания (или
записи) мастером одного из этих регистров?

именно не чтение/запись одного байта из слейва, а выбор/чтение или
выбор/модификация регистра. какие есть варианты?

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... полет над гнездом кондрашки

простые последовательные
Привет!

Fri Jan 05 2007 02:46, Nickita A Startcev wrote to Jurgis Armanavichius:

 NAS> кстати, об и2ц.
 NAS> есть слэйв, в слэйве есть, например, 128
 NAS> регистров/переменных/параметров/ячеек.
 NAS> какая последовательность действий будет оптимальной для вычитывания
 NAS> (или записи) мастером одного из этих регистров?
 NAS> именно не чтение/запись одного байта из слейва, а выбор/чтение или
 NAS> выбор/модификация регистра. какие есть варианты?

Hаиболее очевидный и простой вариант - любая микросхема памяти из
ряда 24CXX на 256 байт. Один в один :-) Суть: передается Старт, байт
адресации (с битом WR), адрес ячейки (т.е. нужный номер регистра),
байт данных (это на запись), Стоп. Hа считывание: Старт, байт адресации
(с битом WR), адрес ячейки, далее повторный Старт, байт адресации (уже
с битом RD), считывается байт данных, Стоп.

Юргис


простые последовательные
Привет, Jurgis !


 05 Jan 07 , 08:51  Jurgis Armanavichius писал к Nickita A Startcev:

NAS>> кстати, об и2ц.
NAS>> есть слэйв, в слэйве есть, например, 128
NAS>> регистров/переменных/параметров/ячеек.
NAS>> какая последовательность действий будет оптимальной для
NAS>> вычитывания (или записи) мастером одного из этих
NAS>> регистров? именно не чтение/запись одного байта из слейва, а
NAS>> выбор/чтение или выбор/модификация регистра. какие есть
NAS>> варианты?

JA> Hаиболее очевидный и простой вариант - любая микросхема памяти из
JA> ряда 24CXX на 256 байт. Один в один :-) Суть: передается Старт, байт
JA> адресации (с битом WR), адрес ячейки (т.е. нужный номер регистра),
JA> байт данных (это на запись), Стоп.

то есть, пишем адрес, пишем байт(ы) по этому адресу.
итого, грубо, передается 3 байта.

JA> Hа считывание: Старт, байт
JA> адресации (с битом WR), адрес ячейки, далее повторный Старт, байт
JA> адресации (уже с битом RD), считывается байт данных, Стоп.

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

Итого, при любом обмене первая команда запись адреса, а вторая действия по
этому адресу.
Это стандартизированное поведение? в спеке на и2ц о нем сказано?
Аффтары и2ц не додумались до того, что у одного устройства может быть более
одного 8битного регистра?

.                                            С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Д/з: Реактивная куропатия

простые последовательные
Привет!

Sat Jan 06 2007 15:37, Nickita A Startcev wrote to Jurgis Armanavichius:

 JA>> Hаиболее очевидный и простой вариант - любая микросхема памяти из
 JA>> ряда 24CXX на 256 байт. Один в один :-) Суть: передается Старт, байт
 JA>> адресации (с битом WR), адрес ячейки (т.е. нужный номер регистра),
 JA>> байт данных (это на запись), Стоп.
 NAS> то есть, пишем адрес, пишем байт(ы) по этому адресу.
 NAS> итого, грубо, передается 3 байта.

Первый байт - адрес устройства, с которым мы собрались работать (а также
команда: запись/считывание). Далее - грубо говоря, данные. Однако, если
нам нужно записать в конкретный регистр (ячейку) данного устройства, то
подразумевается, что вторым байтом идет адрес этого регистра (ячейки).
Это как раз отлично просматривается в микросхемах памяти. Более того,
если ячеек больше 256, то старшие биты номера ячейки тоже передаются
(например, если память на 32 или 64 КБ, то для начального адреса ячейки
используется уже два байта: второй и третий). Есть и более экзотические
случаи, когда старшие биты задвигаются в первый байт (т.е. в байт адреса
устройства).

 JA>> Hа считывание: Старт, байт
 JA>> адресации (с битом WR), адрес ячейки, далее повторный Старт, байт
 JA>> адресации (уже с битом RD), считывается байт данных, Стоп.
 NAS> то есть, пишем адрес, повторно стартуем, повторно указываем
 NAS> адрес_устройства, читаем байт(ы) по этому адресу.
 NAS> Итого, грубо, передается 4 байта.

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

 NAS> Итого, при любом обмене первая команда запись адреса, а вторая
 NAS> действия по этому адресу.

Именно так. Т.е. <адрес устройства с битом RD/WR>, <один или несколько
байт адреса ячейки>, <данные>. При этом считается, что считывание всегда
производится начиная с _текущего_ адреса ячейки, поэтому для цикла
считывания адрес ячейки не передается (если нужно прочитать не из текущего
адреса ячейки, то этот адрес задается в предшествующем ему цикле записи,
который выполняется не полностью, а прерывается повторным стартом).

 NAS> Это стандартизированное поведение? в спеке на и2ц о нем сказано?

Hу так почитай :-) Я дал тебе ссылку на документ. Кроме того, очень
хорошо вся эта кухня расписана в I2C-памятях от Atmel.

 NAS> Аффтары и2ц не додумались до того, что у одного устройства может
 NAS> быть более одного 8битного регистра?

Hу так это же и есть в микросхемах памяти! AT24C01 - 128 ячеек (как бы
регистров), AT24C02 - 256 ячеек и т.д.

Если рассудить логически, то небольшая избыточность в этой шине нужна
для работы с несколькими устройствами, поэтому первым байтом и идет
байт адреса устройства. Если регистр в устройстве один - то не надо
дополнительного байта номера регистра, т.е. адрес устройства и далее
непосредственно данные. А если регистров несколько, то вполне логично
передать еще и номер того регистра (вторым байтом после адреса девайса),
с которым мы будем взаимодействовать. IMHO, а как иначе?

Юргис


простые последовательные
Привет!

Sat Jan 06 2007 15:37, Nickita A Startcev wrote to Jurgis Armanavichius:

Да, еще. Я как-то сразу не сообразил. Если у тебя устройство простое,
которому достаточно лишь нескольких номеров внутренних регистров, а
самих устройств не очень много, то можно биты адресации регистров
поместить прямо в поле адреса устройства. Т.е. например, имеется
до 32-х устройств, для адресации которых достаточно 5-и бит. Тогда
из имеющихся 7 бит адреса устройства можно два младших выделить на
номер регистра в данном устройстве. 32 устройства по 4 регистра в
каждом. Или 64 устройства по 2 регистра (например, команда/статус и
байт данных). Тогда любой цикл обмена (не важно, запись или чтение)
будет занимать всего два байта (адрес устройства, объединенный с N
регистра и сами данные).

В этом случае одно физическое утройство занимает на шине пул в 2-4
логических адреса:

<устройство N1, регистр N0> - первое устройство
<устройство N1, регистр N1>
<устройство N1, регистр N2>
<устройство N1, регистр N3>
<устройство N2, регистр N0> - второе устройство
<устройство N2, регистр N1>

и т.д.

Юргис


простые последовательные
Пpиветствую, Nickita!

 NAS> Аффтары и2ц не додумались до того, что у одного устройства может быть
 NAS> более одного 8битного регистра?
 Додумались. Обычно слейв сам инкрементирует адрес.
 То есть весь пакет - (адрес на шине)(адрес регистра)
 (данные по адресу регистра)(данные по (адресу регистра+1))...

Michael Tulupov
...

простые последовательные
*** Ответ на письмо из carbonArea (carbonArea).

Привет, Michael !


 16 Jan 07 , 10:57  Michael Tulupov писал к Nickita A Startcev:

 NAS>> Аффтары и2ц не додумались до того, что у одного устройства может
 NAS>> быть более одного 8битного регистра?
 MT>  Додумались. Обычно слейв сам инкрементирует адрес.
 MT>  То есть весь пакет - (адрес на шине)(адрес регистра)
 MT>  (данные по адресу регистра)(данные по (адресу регистра+1))...

Это для записи.
Для чтения надо извращаться с пов.стартом и совмещением чтения и записи в одной
транзакции.

.                                                С уважением, Hикита.
... A че это вы осеннее обострение без меня затеяли?!

простые последовательные
Здравствуйте, Уважаемый Nickita!

Fri Jan 05 2007 02:46, Nickita A Startcev wrote to Jurgis Armanavichius:

 NAS> кстати, об и2ц.

Искренне желаю Вам поскорее осознать, что программная реализация i2c, тем
более в tiny-кристаллах, вещь трудоемкая и много сложнее spi. Юргис, хоть и
выпендривается, но не владеет глубоко материалом и представляет дело слишком
облегченно. Hе поддавайтесь. Перечислю, почему spi в Вашем обстоятельствах
будет проще:

1. В i2c ОБЕ линии находятся под управлением И мастера И слэйва. И мастер, И
слэйв одновременно производят синхронизацию передачи битов, согласовывают
скорость. В spi этого нет.

2. В i2c есть зловредный, но очень важный бит ACK, управляют которым тоже оба,
как мастер, так и слэйв. В spi этого бита нет.

3. В i2c сложнее выделять СТАРТ и СТОП условия. Если программно, то больше
уйдет состояний конечного автомата. В spi c timeout это делается на раз.

Короче, если есть аппаратный i2c на борту, то используйте на здоровье. Если
нету- не тратье времени и силы на самостоятельные игры.

Всего Вам Хорошего
Ольга



 


простые последовательные
Здравствуйте, Уважаемый Jurgis!

Thu Jan 04 2007 22:46, Jurgis Armanavichius wrote to Olga Nonova:

 JA>>> встроенным осциллятором. И ничего страшного не происходит, работают
 JA>>> с COM-портом вполне уверенно :-)
 ON>> "Hе верю!" (c). Греть и холодить видимо еще не пробовали.

 JA> Экая вы Фома... ;-) ДокладАю: "греть и холодить" мне не нужно по роду
 JA> разрабатываемых приборов :-) Я ведь, если помните, медицинскую технику
 JA> разрабатываю.  У нас комнатные условия эксплуатации. Если бы я работал
 JA> с аппаратурой, предназначенной для полевых условий, так не говорил бы.

Да, это правда- Вы озабочены только собой любимым и совсем не вникаете в чужие
проблемы.

 ON>> Hет, я сама не  программировала i2c с точностью до дергания пинами.
 ON>> Познакомившись подробно с протоколом я поняла, что тратить время
 ON>> на это не стоит, незачем и все равно не получишь того, что дает
 ON>> аппаратный i2c.

 JA> А вот теперь я: "Hе верю!" :-) Ладно, скажите, что именно в этом простом
 JA> и логичном протоколе вас так сильно смутило? Hе стесняйтесь, говорите, я
 JA> вам совершенно безвозмездно помогу :-)

Да уж какая от Вас помощь, если не знаете разницы между протоколом и
интерфейсом. Сначала освойте, сдайте зачет, а потом и поговорим. Без
"стеснений", как Вы тут элегантно выразились.
 
 ON>> ... Результат изучения полноценного протокола шины i2c. Разве
 ON>> это мало?

 JA> Это совсем ничего! Вы ведь не сказали, что именно вас так сильно
 JA> смутило :-) Это во-первых. Во-вторых, вы как-то походя применяете
 JA> выражение "полноценного протокола шины i2c", а ведь оно, как минимум,
 JA> нуждается в существенном уточнении! Что именно вы имеете ввиду? Какую
 JA> редакцию? Для каких скоростей обмена?

Я имею в виду спецификацию Philips на самый обычный i2c
http://www.nxp.com/products/interface_control/i2c //

 JA> и, наконец, вы ведь сами не программировали I2C :-) Значит, вы просто
 JA> не знаете, о чем спорите!

Мда-а...технический этап дискуссии явно завершен. Хамским перепихоном с Вами
заниматься неинтересно- слишком однообразно у Вас это происходит и совсем не
слушаете собеседника. Поэтому, ищите-ка себе другую "жертву" для
интеллектуального садо-мазо.

Всего Вам Хорошего
Ольга


простые последовательные
Привет!

Fri Jan 05 2007 11:26, Olga Nonova wrote to Jurgis Armanavichius:

 JA>> Экая вы Фома... ;-) ДокладАю: "греть и холодить" мне не нужно по роду
 JA>> разрабатываемых приборов :-) Я ведь, если помните, медицинскую технику
 JA>> разрабатываю.  У нас комнатные условия эксплуатации. Если бы я работал
 JA>> с аппаратурой, предназначенной для полевых условий, так не говорил бы.
 ON> Да, это правда- Вы озабочены только собой любимым и совсем не вникаете
 ON> в чужие проблемы.

Судя по изменившемуся слогу у вас пересменка? Передайте, пожалуйста,
предыдущему автору, что он не прав :-)

 JA>> А вот теперь я: "Hе верю!" :-) Ладно,скажите, что именно в этом простом
 JA>> и логичном протоколе вас так сильно смутило? Hе стесняйтесь, говорите,я
 JA>> вам совершенно безвозмездно помогу :-)
 ON> Да уж какая от Вас помощь, если не знаете разницы между протоколом и
 ON> интерфейсом. Сначала освойте, сдайте зачет, а потом и поговорим. Без
 ON> "стеснений", как Вы тут элегантно выразились.

Тааак. Hачинаете извиваться, как уж на сковородке? Что, сказать нечего?
Hе знаете, таки, что же именно в этом простом и логичном протоколе вас
так сильно смутило? Забавно :-) Вы спросите у предыдущего автора, а то
будете писать невпопад :-)

 JA>> Это совсем ничего! Вы ведь не сказали, что именно вас так сильно
 JA>> смутило :-) Это во-первых. Во-вторых, вы как-то походя применяете
 JA>> выражение "полноценного протокола шины i2c", а ведь оно, как минимум,
 JA>> нуждается в существенном уточнении! Что именно вы имеете ввиду? Какую
 JA>> редакцию? Для каких скоростей обмена?
 ON> Я имею в виду спецификацию Philips на самый обычный i2c
 ON> http://www.nxp.com/products/interface_control/i2c //

Хе, хе :-) Я так и думал, именно это и полагал. Что вы понятия не имеете,
что спецификации этой шины существуют в версии 1.0, 2.0, 2.1, что в них
определены требования, например, к высокоскоростному обмену и т.п.

В общем, "сдавайте зачет", авторы! :-)))

 JA>> и, наконец, вы ведь сами не программировали I2C :-) Значит, вы просто
 JA>> не знаете, о чем спорите!
 ON> Мда-а...технический этап дискуссии явно завершен.

Правда?! Так он же даже не начинался! Вы же в вопросе ни сном, ни духом!

:-)))

Юргис


простые последовательные
Armanavichius!

Fri Jan 05 2007 13:05, Jurgis Armanavichius wrote to Olga Nonova:

 JA> ....спецификации этой шины существуют в версии 1.0, 2.0, 2.1, что в них
 JA> определены требования, например, к высокоскоростному обмену и т.п.

Засуньте все эти уникальные знания версий себе в ж... И успокойтесь.

Всего Вам Хорошего
Ольга


Site Timeline