STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
[uquote="VladislavS",url="/forum/viewtopic.php?p=3504157#p3504157"]Если у тебя обычный I2C столько эмоций вызвал, боюсь представить что будет после USB и Ethernet.[/uquote]
Ну врать-то зачем? Эмоции не "обычный I2C" вызвал, а косяк в референсе, кривизну которого иные "специалисты" не видят, даже когда покажешь.
Не вам за меня переживать. У меня хотя бы нет таких проблем со зрением и английским и я различаю, в чем написанное не соответствует действительности, а не усираюсь с сочинениями про "разные вещи" даже после того, как пальцем тыкнули, где смотреть.
Ну врать-то зачем? Эмоции не "обычный I2C" вызвал, а косяк в референсе, кривизну которого иные "специалисты" не видят, даже когда покажешь.
Не вам за меня переживать. У меня хотя бы нет таких проблем со зрением и английским и я различаю, в чем написанное не соответствует действительности, а не усираюсь с сочинениями про "разные вещи" даже после того, как пальцем тыкнули, где смотреть.
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=3504155#p3504155"]Это тот же "вменяемый", что недавно утверждал, будто "Address и Device Address это разные вещи" или уже др[/uquote]А знаешь, я призову на помощь dosikus. Он любезно дал ссылку на свой труд. Я не поленился и почитал этот пост. Цитата:
И это общепринятая терминология. Берём первый попавшийся даташит на 24C512, к примеру, и видим 7-битный Device Address c пристёгнутым к нему RW.
dosikus тоже разделил адрес микросхемы и адрес который надо в I2C записать. Ну как же так?Адрес самой микросхемы формируется из старших четырех бит и 3х бит chip select, определяемых пинами A2-A0.
В моем случае A2-A0 висят на GND и базовый адрес в итоге - A0.
Функции чтения/записи определяются битом R/#W, таким образом адрес для записи eeprom - A0, для чтения A1;
И это общепринятая терминология. Берём первый попавшийся даташит на 24C512, к примеру, и видим 7-битный Device Address c пристёгнутым к нему RW.
Последний раз редактировалось VladislavS Вт ноя 13, 2018 20:19:10, всего редактировалось 1 раз.
Re: STM32 новичку в ARM что к чему
Вам точно зрение лечить надо. Картинка на той же страничке:

Ответьте, вы различаете, до каких границ распространяется Slave Address, а где находится Read/Write Bit ? Впрочем, можете не отвечать. Пипец! Про эзернет с юсб оне рассуждають.

Ответьте, вы различаете, до каких границ распространяется Slave Address, а где находится Read/Write Bit ? Впрочем, можете не отвечать. Пипец! Про эзернет с юсб оне рассуждають.
Последний раз редактировалось a5021 Вт ноя 13, 2018 20:17:40, всего редактировалось 2 раза.
Re: STM32 новичку в ARM что к чему
VladislavS, без картинко-то как-то некоширно, не находишь? 
И все же, прикинь -нубы и интерфейсы изучают по мануалу стм.
Я ни в коем случае не имел ввиду a5021 , он кстати за тех болванов и радеет...
И кстати даже на той картинко ляп , пиасано -control byte format ,хотя сама транзакция i2c 9бит. И как с этим жить?
И все же, прикинь -нубы и интерфейсы изучают по мануалу стм.
Я ни в коем случае не имел ввиду a5021 , он кстати за тех болванов и радеет...
И кстати даже на той картинко ляп , пиасано -control byte format ,хотя сама транзакция i2c 9бит. И как с этим жить?
Последний раз редактировалось dosikus Вт ноя 13, 2018 20:24:25, всего редактировалось 1 раз.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Кошерно, не кошерно, но адрес микросхемы и адрес для записи/чтения ты разделил. И это ж не спроста. 
- Реклама
Re: STM32 новичку в ARM что к чему
VladislavS, но мы то знаем что не все так просто ,см выше
Говорю же сколько адептов спл и калокубв на сие напоролись и жаловались...
Говорю же сколько адептов спл и калокубв на сие напоролись и жаловались...
Re: STM32 новичку в ARM что к чему
[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.
в переводе на русский будет звучать так:
В режиме семибитной адресации, чтобы войти в режим передатчика, ведущий шлет адрес ведомого со сброшенным младшим битом.
В режиме семибитной адресации, адрес семибитный, понимаете? У семибитного адреса -- младший бит, понимаете? Этот бит надо сбросить, чтобы стать передатчиком, понимаете? У адреса, семибитность которого четко обозначается в начале предложения, понимаете? По буквам вам объяснять, чтобы и до вас наконец дошло, что это полнейшая лажа?
Если вы плохо видите и ни байта не понимаете по английски, вы лучше на это и жалуйтесь, а не придумывайте "дефекты" окружающим. Лично я, вместо чтобы бред от вас слушать, лучше увеличу и переведу для вас персонально. Так, например, фраза из 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 что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=3504198#p3504198"]У адреса, семибитность которого четко обозначается в начале предложения, понимаете?[/uquote]В начале предложения указана семибитность РЕЖИМА (mode) адресации. А вот разрядность адресного слова указана на странице 757. В режиме 7-битной адресации адрес ведомого передаётся 8 битами (одним байтом), а в режиме 10-битной адресации двумя байтами (16 битами). И это соответствует стандарту.
Если следовать твоей логике и дёргать 7-й бит в качестве r/w, то в 8-м тогда что должно быть?
Если следовать твоей логике и дёргать 7-й бит в качестве r/w, то в 8-м тогда что должно быть?
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
a5021, Для тех до кого туго доходит и они фантазируют бурно.
Отправить адрес со сброшенным/установленным LSB.

R/W в пакете наименьший значащий? Вы понимаете слова наименьший и наибольший что означают?
Выставлять LSB не у адреса надо, а у пакета. Адрес то при чем тут? Формат пакета смотрите.
Все четко по мануалу.
Книжка для чтения в туалете
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Отправить адрес со сброшенным/установленным LSB.

R/W в пакете наименьший значащий? Вы понимаете слова наименьший и наибольший что означают?
Выставлять LSB не у адреса надо, а у пакета. Адрес то при чем тут? Формат пакета смотрите.
Все четко по мануалу.
Книжка для чтения в туалете
https://www.nxp.com/docs/en/user-guide/UM10204.pdf
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Re: STM32 новичку в ARM что к чему
Маразм пошел клубами:
"В режиме 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 под адрес отводиться отдельный регистр. В нем только семь бит для записи значений.
"В режиме 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 что к чему
Делай вот так и будет тебе счастье.


Re: STM32 новичку в ARM что к чему
[uquote="Oxford",url="/forum/viewtopic.php?p=3504236#p3504236"]Для тех до кого туго доходит и они фантазируют бурно. Отправить адрес со сброшенным/установленным LSB.
R/W в пакете наименьший значащий?[/uquote]
Прямо фокусник! Одно движение и "the slave address with LSB reset" превращается в "R/W в пакете". Чудо! Алилуйя! И кто после этого "фантазирует бурнее" ?
Добавлено after 4 minutes 3 seconds:
[uquote="VladislavS",url="/forum/viewtopic.php?p=3504261#p3504261"]Делай вот так и будет тебе счастье.[/uquote]
Что делать-то? Галлюцинировать, как вы? Ну, нафиг! Да и не припоминаю, чтобы обращался к вам с вопросами о счастье и как мне что-либо делать. Придержите свой фонтан полезных советов. Во первых, из него прут советы сомнительной пользы, а во-вторых, его у вас постоянно не к месту прорывает.
Еще раз для плохо-видящих, плохо-читающих и крайне плохо-понимающих. Вот это от H7:

В семибитном режиме нулевой бит регистра не задействован, семь бит отсчитываются, начиная с первого, а R/W задается битом #10. Как мастера объяснения всяких необъяснимых вещей, может придумаете что-нибудь, на кой хрен надо было так расчленять адрес, который по народному поверью вроде бы 8-и (а мож и больше)-битный ?
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 что к чему
Кто-нибудь объяснит мне что это было?


- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="Oxford",url="/forum/viewtopic.php?p=3503988#p3503988"][uquote="a5021",url="/forum/viewtopic.php?p=3503937#p3503937"]Документация у стм-ов местами просто "Ад и Израиль". Читаю RM0008 (STM32F103) в части I2C операций. Пишут какую-то дикую херню:
Все правильно там написано.[/uquote]
Поддерживаю. Написано что в "режиме семибитной адресации" младший значащий бит определяет чтение или запись. Нигде не написано что этот бит - бит самого адреса. Не написали явно что подразумевается первый передаваемый байт, как-бы всем и так понятно. Но не тут то было.
Дебилы вы сраные -- мысленно обращаюсь я к составителям документации -- из-за вас только время лишнее потерял. Не в адресе должен быть "LSB reset", а следующий бит после адреса. При этом, перед записью в I2C_DR, 7 бит адреса должны быть выравняны влево, а оставшийся младший бит уже определять тип операции запись/чтение. Но про это в RM0008 ни пол слова.[/uquote]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
Все правильно там написано.[/uquote]
Поддерживаю. Написано что в "режиме семибитной адресации" младший значащий бит определяет чтение или запись. Нигде не написано что этот бит - бит самого адреса. Не написали явно что подразумевается первый передаваемый байт, как-бы всем и так понятно. Но не тут то было.
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]Нигде не написано что этот бит - бит самого адреса.[/uquote]
Специально для для вас :
Специально для для вас :
Мастер определяет вход в режим Передатчика или Приемника в зависимости от LSB передаваемого адреса слэйва.The master can decide to enter Transmitter or Receiver mode depending on the LSB of the slave address sent.
Не надо спорить- есть там ляпы и достаточно, прискорбно что львиная доля местных попросту не знает язык...a master sends the slave address with LSB reset
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]Поддерживаю. Написано что в "режиме семибитной адресации" младший значащий бит определяет чтение или запись. Нигде не написано что этот бит - бит самого адреса.[/uquote]
Точно, совсем нигде: "depending on the LSB of the slave address sent". "в зависимости от младшего значащего бита отправленного адреса". Бита адреса. Адреса.
Точно, совсем нигде: "depending on the LSB of the slave address sent". "в зависимости от младшего значащего бита отправленного адреса". Бита адреса. Адреса.
Вы не за всех, вы за себя отвечайте. "Все" тут до семибитной адресации восемью битами уже договорились, т.ч. ваш случай, хоть и удручающий, но не самый худший.Не написали явно что подразумевается первый передаваемый байт, как-бы всем и так понятно.
Да ничего особого, в общем то. Пара-тройка человек засыпались и не смогли переварить несколько простых фраз из референса. На почве этого несварения у некоторых начались галлюцинации.VladislavS писал(а):Кто-нибудь объяснит мне что это было?
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="dosikus",url="/forum/viewtopic.php?p=3504465#p3504465"]прискорбно что львиная доля местных попросту не знает язык...[/uquote]
львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.
львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.
Re: STM32 новичку в ARM что к чему
[uquote="dosikus",url="/forum/viewtopic.php?p=3504465#p3504465"]прискорбно что львиная доля местных попросту не знает язык...[/uquote]
Если бы только это. Перевод же даю. Чуть ни каждому индивидуально объясняю, но не помогает.
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.[/uquote]
Пока что "львиная доля" продемонстрировала, что не может прочесть двух предложений ни на каком языке, включая родной. И не надо здесь офигетительных фантазий про знания протоколов приплетать. Проблема не в знании или незнании протокола, а в том, как данные должны быть подготовлены к передаче. Сможете не читая референс на H7 запустить I2C ? А на nRF52 ? Да хрена лысого, знай вы I2C хоть наизусть со всеми таймингами и диаграммами. На словах знатоки офигенные, только двух предложений правильно прочитать не могут, да небылицы про таинственные знания протоколов рассказывают.
Если бы только это. Перевод же даю. Чуть ни каждому индивидуально объясняю, но не помогает.
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504429#p3504429"]львиная доля давно знает механику протоколов и на такие ляпы не обращает внимания.[/uquote]
Пока что "львиная доля" продемонстрировала, что не может прочесть двух предложений ни на каком языке, включая родной. И не надо здесь офигетительных фантазий про знания протоколов приплетать. Проблема не в знании или незнании протокола, а в том, как данные должны быть подготовлены к передаче. Сможете не читая референс на H7 запустить I2C ? А на nRF52 ? Да хрена лысого, знай вы I2C хоть наизусть со всеми таймингами и диаграммами. На словах знатоки офигенные, только двух предложений правильно прочитать не могут, да небылицы про таинственные знания протоколов рассказывают.
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
Не у меня случился батхерт от куска референс мануала. Не я считаю, что производитель мне что-то должен. Не нравятся референсы - скатерьтю дорожка к другим производителям.
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3504618#p3504618"]Не у меня случился батхерт от куска референс мануала.[/uquote]
Кусок для вас, похоже, слишком крупно. Батхерт у вас случился от единственного предложения. Вы его прочитать не смогли.
Никакой трагедии в том, что в мануал закралась ошибка, а то и не одна, нет. Удивляет другое -- сколько человек оказались готовы врать, сочинять и нести пургу без всяких внешних побуждений, по одному только внутреннему позыву. Я озадачен.
Кусок для вас, похоже, слишком крупно. Батхерт у вас случился от единственного предложения. Вы его прочитать не смогли.
Ага, спасибо. Только давайте я обойдусь без этих ваших сверх-ценных предложений, ок?Не нравятся референсы - скатерьтю дорожка к другим производителям.
Никакой трагедии в том, что в мануал закралась ошибка, а то и не одна, нет. Удивляет другое -- сколько человек оказались готовы врать, сочинять и нести пургу без всяких внешних побуждений, по одному только внутреннему позыву. Я озадачен.
Последний раз редактировалось a5021 Ср ноя 14, 2018 16:15:08, всего редактировалось 1 раз.


