STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3504157#p3504157"]Если у тебя обычный I2C столько эмоций вызвал, боюсь представить что будет после USB и Ethernet.[/uquote]

Ну врать-то зачем? Эмоции не "обычный I2C" вызвал, а косяк в референсе, кривизну которого иные "специалисты" не видят, даже когда покажешь.

Не вам за меня переживать. У меня хотя бы нет таких проблем со зрением и английским и я различаю, в чем написанное не соответствует действительности, а не усираюсь с сочинениями про "разные вещи" даже после того, как пальцем тыкнули, где смотреть.
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="a5021",url="/forum/viewtopic.php?p=3504155#p3504155"]Это тот же "вменяемый", что недавно утверждал, будто "Address и Device Address это разные вещи" или уже др[/uquote]А знаешь, я призову на помощь dosikus. Он любезно дал ссылку на свой труд. Я не поленился и почитал этот пост. Цитата:
Адрес самой микросхемы формируется из старших четырех бит и 3х бит chip select, определяемых пинами A2-A0.
В моем случае A2-A0 висят на GND и базовый адрес в итоге - A0.
Функции чтения/записи определяются битом R/#W, таким образом адрес для записи eeprom - A0, для чтения A1;
dosikus тоже разделил адрес микросхемы и адрес который надо в I2C записать. Ну как же так?

И это общепринятая терминология. Берём первый попавшийся даташит на 24C512, к примеру, и видим 7-битный Device Address c пристёгнутым к нему RW.
Изображение
I2C_3.png
(18.94 КБ) 956 скачиваний
Последний раз редактировалось VladislavS Вт ноя 13, 2018 20:19:10, всего редактировалось 1 раз.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Вам точно зрение лечить надо. Картинка на той же страничке:
Изображение

Ответьте, вы различаете, до каких границ распространяется Slave Address, а где находится Read/Write Bit ? Впрочем, можете не отвечать. Пипец! Про эзернет с юсб оне рассуждають.
Последний раз редактировалось a5021 Вт ноя 13, 2018 20:17:40, всего редактировалось 2 раза.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

VladislavS, без картинко-то как-то некоширно, не находишь? :)))
И все же, прикинь -нубы и интерфейсы изучают по мануалу стм.
Я ни в коем случае не имел ввиду a5021 , он кстати за тех болванов и радеет...

И кстати даже на той картинко ляп , пиасано -control byte format ,хотя сама транзакция i2c 9бит. И как с этим жить? :)))
Последний раз редактировалось dosikus Вт ноя 13, 2018 20:24:25, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Кошерно, не кошерно, но адрес микросхемы и адрес для записи/чтения ты разделил. И это ж не спроста. :)
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

VladislavS, но мы то знаем что не все так просто ,см выше :)))
Говорю же сколько адептов спл и калокубв на сие напоролись и жаловались...
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3504184#p3504184"]Кошерно, не кошерно,[/uquote]

Если вы плохо видите и ни байта не понимаете по английски, вы лучше на это и жалуйтесь, а не придумывайте "дефекты" окружающим. Лично я, вместо чтобы бред от вас слушать, лучше увеличу и переведу для вас персонально. Так, например, фраза из RM0008

In 7-bit addressing mode, to enter Transmitter mode, a master sends the slave address with LSB reset.

в переводе на русский будет звучать так:

В режиме семибитной адресации, чтобы войти в режим передатчика, ведущий шлет адрес ведомого со сброшенным младшим битом.

В режиме семибитной адресации, адрес семибитный, понимаете? У семибитного адреса -- младший бит, понимаете? Этот бит надо сбросить, чтобы стать передатчиком, понимаете? У адреса, семибитность которого четко обозначается в начале предложения, понимаете? По буквам вам объяснять, чтобы и до вас наконец дошло, что это полнейшая лажа?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="a5021",url="/forum/viewtopic.php?p=3504198#p3504198"]У адреса, семибитность которого четко обозначается в начале предложения, понимаете?[/uquote]В начале предложения указана семибитность РЕЖИМА (mode) адресации. А вот разрядность адресного слова указана на странице 757. В режиме 7-битной адресации адрес ведомого передаётся 8 битами (одним байтом), а в режиме 10-битной адресации двумя байтами (16 битами). И это соответствует стандарту.

Если следовать твоей логике и дёргать 7-й бит в качестве r/w, то в 8-м тогда что должно быть?
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Oxford »

a5021, Для тех до кого туго доходит и они фантазируют бурно.
Отправить адрес со сброшенным/установленным LSB.
Изображение
R/W в пакете наименьший значащий? Вы понимаете слова наименьший и наибольший что означают?
Выставлять LSB не у адреса надо, а у пакета. Адрес то при чем тут? Формат пакета смотрите.

Все четко по мануалу.

Книжка для чтения в туалете
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Маразм пошел клубами:

"В режиме 7-битной адресации адрес ведомого передаётся 8 битами"

Стесняюсь спросить, а принимается? Принимается тоже 8-ю битами? Все бы хорошо, но вашу "блестящую" придумку рвет в куски регистр I2C_OAR1, в котором слейву отведено только семь или десять бит на адрес. Че делать будем?

Вы для расширения кругозора хоть мануал на что-нибудь отличное от F103 открыли. Там же вот такое:

I2C2 control register 2 (I2C_CR2)
Address offset: 0x0C4
Reset value: 0x0000 0000
...
Bit 10 RD_WRN: Transfer direction (master mode)
0: Master requests a write transfer.
1: Master requests a read transfer.
Note: Changing this bit when the START bit is set is not allowed
Bits 9:8 SADD[9:8]: Slave address bit 9:8 (master mode)
In 7-bit addressing mode (ADD10 = 0):
These bits are don’t care
In 10-bit addressing mode (ADD10 = 1):
These bits should be written with bits 9:8 of the slave address to be sent
Note: Changing these bits when the START bit is set is not allowed.
Bits 7:1 SADD[7:1]: Slave address bit 7:1 (master mode)
In 7-bit addressing mode (ADD10 = 0):
These bits should be written with the 7-bit slave address to be sent
In 10-bit addressing mode (ADD10 = 1):
These bits should be written with bits 7:1 of the slave address to be sent.
Note: Changing these bits when the START bit is set is not allowed.
Bit 0 SADD0: Slave address bit 0 (master mode)
In 7-bit addressing mode (ADD10 = 0):
This bit is don’t care
In 10-bit addressing mode (ADD10 = 1):
This bit should be written with bit 0 of the slave address to be sent
Note: Changing these bits when the START bit is set is not allowed.


Тот самый LSB "уехал" аж на позицию 10-го бита и стал называться более осмысленно. Ну оно и понятно, все-таки последнее, самое свежее семейство.

Ну и, наконец, не STM32 единым. У тех же nRF52 под адрес отводиться отдельный регистр. В нем только семь бит для записи значений.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Делай вот так и будет тебе счастье.
Изображение
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="Oxford",url="/forum/viewtopic.php?p=3504236#p3504236"]Для тех до кого туго доходит и они фантазируют бурно. Отправить адрес со сброшенным/установленным LSB.
R/W в пакете наименьший значащий?[/uquote]
Прямо фокусник! Одно движение и "the slave address with LSB reset" превращается в "R/W в пакете". Чудо! Алилуйя! И кто после этого "фантазирует бурнее" ?
Выставлять LSB не у адреса надо, а у пакета. Адрес то при чем тут?
Вы же сказали, что написано там все правильно? А написано там следующее: "ведущий шлет адрес ведомого со сброшенным младшим битом." Продолжаете не понимать при чем тут адрес? Пробуйте еще раз напрячься и узреть, что не пакет, не бандероль, не фантазии и белиберду всякую, а адрес. Адрес со сброшенным младшим битом. Ведущий шлет адрес ведомого. Адрес, вы понимаете? Слово "Адрес" вы можете прочитать? Вижу, что не можете. Не знаю тогда, как помочь.

Добавлено after 4 minutes 3 seconds:
[uquote="VladislavS",url="/forum/viewtopic.php?p=3504261#p3504261"]Делай вот так и будет тебе счастье.[/uquote]
Что делать-то? Галлюцинировать, как вы? Ну, нафиг! Да и не припоминаю, чтобы обращался к вам с вопросами о счастье и как мне что-либо делать. Придержите свой фонтан полезных советов. Во первых, из него прут советы сомнительной пользы, а во-вторых, его у вас постоянно не к месту прорывает.
Изображение
Будем проверять зрение. Сколько бит вы насчитали в поле "Device address"? Если посчитать все биты во фрейме, станет ли семибитный адрес, который, по вашему, восьмибитный, девятибитным или десятибитным? По вашей "блестящей" логике вроде бы должен, нет?

Еще раз для плохо-видящих, плохо-читающих и крайне плохо-понимающих. Вот это от H7:

Изображение

В семибитном режиме нулевой бит регистра не задействован, семь бит отсчитываются, начиная с первого, а R/W задается битом #10. Как мастера объяснения всяких необъяснимых вещей, может придумаете что-нибудь, на кой хрен надо было так расчленять адрес, который по народному поверью вроде бы 8-и (а мож и больше)-битный ?
Вложения
2018-11-13_234828.jpg
(81.27 КБ) 1009 скачиваний
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Кто-нибудь объяснит мне что это было?
Изображение
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="Oxford",url="/forum/viewtopic.php?p=3503988#p3503988"][uquote="a5021",url="/forum/viewtopic.php?p=3503937#p3503937"]Документация у стм-ов местами просто "Ад и Израиль". Читаю RM0008 (STM32F103) в части I2C операций. Пишут какую-то дикую херню:
The master can decide to enter Transmitter or Receiver mode depending on the LSB of the
slave address sent.

In 7-bit addressing mode,
- To enter Transmitter mode, a master sends the slave address with LSB reset.
- To enter Receiver mode, a master sends the slave address with LSB set
Дебилы вы сраные -- мысленно обращаюсь я к составителям документации -- из-за вас только время лишнее потерял. Не в адресе должен быть "LSB reset", а следующий бит после адреса. При этом, перед записью в I2C_DR, 7 бит адреса должны быть выравняны влево, а оставшийся младший бит уже определять тип операции запись/чтение. Но про это в RM0008 ни пол слова.[/uquote]

Все правильно там написано.[/uquote]
Поддерживаю. Написано что в "режиме семибитной адресации" младший значащий бит определяет чтение или запись. Нигде не написано что этот бит - бит самого адреса. Не написали явно что подразумевается первый передаваемый байт, как-бы всем и так понятно. Но не тут то было.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32 новичку в ARM что к чему

Сообщение dosikus »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]Нигде не написано что этот бит - бит самого адреса.[/uquote]

Специально для для вас :
The master can decide to enter Transmitter or Receiver mode depending on the LSB of the slave address sent.
Мастер определяет вход в режим Передатчика или Приемника в зависимости от LSB передаваемого адреса слэйва.
a master sends the slave address with LSB reset
Не надо спорить- есть там ляпы и достаточно, прискорбно что львиная доля местных попросту не знает язык...
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]Поддерживаю. Написано что в "режиме семибитной адресации" младший значащий бит определяет чтение или запись. Нигде не написано что этот бит - бит самого адреса.[/uquote]
Точно, совсем нигде: "depending on the LSB of the slave address sent". "в зависимости от младшего значащего бита отправленного адреса". Бита адреса. Адреса.
Не написали явно что подразумевается первый передаваемый байт, как-бы всем и так понятно.
Вы не за всех, вы за себя отвечайте. "Все" тут до семибитной адресации восемью битами уже договорились, т.ч. ваш случай, хоть и удручающий, но не самый худший.
VladislavS писал(а):Кто-нибудь объяснит мне что это было?
Да ничего особого, в общем то. Пара-тройка человек засыпались и не смогли переварить несколько простых фраз из референса. На почве этого несварения у некоторых начались галлюцинации.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

[uquote="dosikus",url="/forum/viewtopic.php?p=3504465#p3504465"]прискорбно что львиная доля местных попросту не знает язык...[/uquote]
львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="dosikus",url="/forum/viewtopic.php?p=3504465#p3504465"]прискорбно что львиная доля местных попросту не знает язык...[/uquote]
Если бы только это. Перевод же даю. Чуть ни каждому индивидуально объясняю, но не помогает.

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.[/uquote]
Пока что "львиная доля" продемонстрировала, что не может прочесть двух предложений ни на каком языке, включая родной. И не надо здесь офигетительных фантазий про знания протоколов приплетать. Проблема не в знании или незнании протокола, а в том, как данные должны быть подготовлены к передаче. Сможете не читая референс на H7 запустить I2C ? А на nRF52 ? Да хрена лысого, знай вы I2C хоть наизусть со всеми таймингами и диаграммами. На словах знатоки офигенные, только двух предложений правильно прочитать не могут, да небылицы про таинственные знания протоколов рассказывают.
Аватара пользователя
Ярослав555
Поставщик валерьянки для Кота
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Re: STM32 новичку в ARM что к чему

Сообщение Ярослав555 »

Не у меня случился батхерт от куска референс мануала. Не я считаю, что производитель мне что-то должен. Не нравятся референсы - скатерьтю дорожка к другим производителям.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504618#p3504618"]Не у меня случился батхерт от куска референс мануала.[/uquote]
Кусок для вас, похоже, слишком крупно. Батхерт у вас случился от единственного предложения. Вы его прочитать не смогли.
Не нравятся референсы - скатерьтю дорожка к другим производителям.
Ага, спасибо. Только давайте я обойдусь без этих ваших сверх-ценных предложений, ок?

Никакой трагедии в том, что в мануал закралась ошибка, а то и не одна, нет. Удивляет другое -- сколько человек оказались готовы врать, сочинять и нести пургу без всяких внешних побуждений, по одному только внутреннему позыву. Я озадачен.
Последний раз редактировалось a5021 Ср ноя 14, 2018 16:15:08, всего редактировалось 1 раз.
Ответить

Вернуться в «ARM»