-
- UPD:
В результате некоторого количества экспериментов пришел к такому решению: после передачи передачи байта второго адреса опять заставляю выдать старт, после которого опять передаю второй адрес, дальше вторая порция данных нормально выдается.Нашел более правильный вариант, оказалось, что после установки бита команды на передачу старта по непонятной причине устанавливался бит приема байта, т.е. признак того, что что-то принято. Пока этот принятый байт AlexBi(677 знак., 19.02.2026 14:46) - C i2c какой то вселенский заговор. Редко где нормально работающий
аппаратный модуль а у китайцев - так и вовсе безглючных похоже нет.
Я теперь когда о новом устройстве думаю исключаю i2c как класс если
условия использования не дают возможности реализовать обмен
ногодрыгом, все стараюсь посадить на spi. - 3m(17.02.2026 15:12)
- Ну как же? У всех STM32, кроме F103, нормальный I2C. Разве что,
конечно, алгоритм идиотский: даже используя DMA, все равно нужно
провести часть работы вручную… - Eddy_Em(18.02.2026 08:38)
- НетЬ. У всех STM32 убогий I2C c теми или иными багами. Вообще у STM
нет ни одного прямого периферийного узла. UART, таймеры, SPI -
везде говнеца подложено. Но дешево и популярно, не отнять. - LightElf(18.02.2026 15:15)
- Убогий i2c в stm32 не у всех а только у стареньких которые китайцы
и клонировали. В серии STM32G i2c работает как автомат калашникова и даже по dma! Но в войну
такое не для россиянцев. А у китайпрома все даже хуже чем в f103
(Puya, %ля!) - 3m(25.02.2026 14:59)
- Не верю! Сто пудов на каком-нибудь гличе повиснет до ресета ;-) - LightElf(26.02.2026 18:34)
- Как это? Те STM32G030/070, что везде сейчас ставим - ненастоящие? - Лaгyнoв(25.02.2026 16:24)
- Посредники за закупку на алике берут от 20% и выше. Так что, не
надо говорить, что невозможно купить G-серию. Те же, кому нужны
партии в десятки тысяч штук, думаю, уже давно открыли в Китае свое
представительство и просто с той стороны загружают контейнер и
везут к себе. - Eddy_Em(25.02.2026 15:06)
- G купить можно но это плохо согласуется с отчетностью, налоговым и
иными кодексами. Если вы такой умный - открывайте свой бизнес. Не
все так просто и иногда приходится официально по безналу и со всеми
документами закупаться у российских поставщиков. А там сами знаете
что продается. - 3m(25.02.2026 15:24)
- И чем Промэлктроника не согласуется с отчетностью? Andreas(1 знак., 25.02.2026 15:29, картинка)
- G купить можно но это плохо согласуется с отчетностью, налоговым и
иными кодексами. Если вы такой умный - открывайте свой бизнес. Не
все так просто и иногда приходится официально по безналу и со всеми
документами закупаться у российских поставщиков. А там сами знаете
что продается. - 3m(25.02.2026 15:24)
- Ну, ХЗ, где вы там баги находите. STM32F0 - все отлично,
контроллеры термодатчиков TSYS01 на БТА уже восемь лет работают (по
16 датчиков на контроллер). На F303 тоже никаких проблем.
Единственно, нужно питание всякой шушеры через p-канальный мосфет
вешать, т.к. бывают некоторые убогие датчики, которые SCL или DAT
подвешивают вусмерть. Eddy_Em(180 знак., 18.02.2026 15:54)
- С СПИ, особенно. Как там аппаратный НСС поживает? - mse homjak(18.02.2026 16:30)
- Без понятия, я slaveselect никогда не использую, потому как больше
одной железки на SPI не вешаю, ибо нефиг тут! - Eddy_Em(18.02.2026 17:18)
- Макароны тоже по одной штуке варите? :D - Ralex(18.02.2026 17:29)
- А у меня элементарно нет идей, какое нужно придумать устройство,
чтобы к нему больше одного датчика с SPI нужно было подключить! Вот
I2C куда как чаще встречается. По SPI разве что экранчик или
угловой энкодер. Ну вот делал платку для телескопа, которая с двух
энкодеров в два интерфейса USB данные передает, посадил каждый
энкодер на свой SPI, чтобы не мешали друг другу и можно было
параллельно читать. - Eddy_Em(18.02.2026 17:37)
- У меня 8шт ацп ads1220 и еще 3шт 74hc165 на одном spi. - 3m(25.02.2026 14:52)
- у мну на одном SPI 3 шт АЦП, на втором SPI - OLED, а на I2C вообще
свальный грех - еепром, датчик температуры, датчик атмосферного
давления, микросхема зарядки АКБ, микросхема счетчик
электроэнергии, короче картинка покажет Ralex(1 знак., 18.02.2026 17:47, картинка)
- Я предпочитаю брать один внешний АЦП и ставить три мультиплексора.
Есть хорошая методика, позволяющая практически к нулю свести
влияние мультиплексоров. Но в данном случае никакого аппаратного SS
не выйдет: их же аж три штуки надо! - Eddy_Em(18.02.2026 18:41)
- Бывают входы, на которые могут попадать произвольные посторонние напряжения. В этом ключе, схема на одном АЦП уязвима - напряжение вне диапазона сместит коммутатор и все каналы поплывут. Nikolay_Po(87 знак., 25.02.2026 15:33)
- Да дажэ с одним АЦП. С нормальным СПИ работать можно так, заряжаем
таймер на сэмплрейт, от него стартуем ДМА, которое пихает 16 бит в
СПИ и по прерыванию от окончания педерачи СПИ, вычитываем данные.
Что имеем с СТМ? Настраиваем таймер на сэмплрейт, по прерыванию
ручкаме машем портом НСС, запускаем СПИ(тут дажэ из прерывания нет
смысла выходить, накладные расходы на вход-выход примерно такого-жэ
порядка), отмахиваем НСС взад, вычитываем данные. Зокат солнца
вручную. И mse homjak(91 знак., 18.02.2026 20:45)
- SSM + SSI, и не нужно беспокоиться: Eddy_Em(118 знак., 18.02.2026 21:24)
- Из доков или сам так делал? Когда я озаботился и пару дней
подпрыгивал, находил по форумам советы бывалых. Они тожэ цытировали
ДШ, но в концэ приписывали, что НСС нужно, таки, махать вручную.
Ибо у СТМ лапки. - mse homjak(19.02.2026 10:19)
- железный NSS там (только!) для того, чтобы сказать STM'у, что он
больше не мастер. beefdeadbeef(94 знак., 19.02.2026 12:17)
- сомнительно - Ralex(19.02.2026 12:21)
- Ну, я тоже сомневался. А как до дела дошло - хрен вам, а не аппаратный контроль. Чипов-то на линии мастера может быть много, на кой хрен им аппаратный CS-выход, если одного всё равно не хватит? Вот оно и не работает как выход. Мало того, в своих проектах я этот вывод из работы исключю - есть непонятки, типа того, что даже когда он не используется, и вдруг упадёт в ноль, то SPI принудительно переводится в ведомого. Ну его нафиг. - Nikolay_Po(19.02.2026 12:42)
- rm0008 нам сообщает, что вот-де, "NSS management by hardware or
software for both master and slave: dynamic change beefdeadbeef(72 знак., 19.02.2026 12:31)
- Это, наверное, последние версии ДШ. В старых было расписано как должно быть по жизни. А так, похожэ, что Томсоны купили задорого часть периферии у какой-то конторы, с родственниками топов, в учредителях. И, смешнее всего, что и китайцам пришлось тариться периферией в том-жэ лабазе. Одно дело, когда в отзывах "залил прошивку и сразу заработало" и другое "блин, они сделали правильный СПИ, как теперь с этим жыдь?!!!111" - mse homjak(19.02.2026 16:54)
- сомнительно - Ralex(19.02.2026 12:21)
- Это я процитировал реальную строчку из рабочего кода. Не нужно им
"махать": один раз разрешил (SSI+SSM), и забыл! Eddy_Em(98 знак., 19.02.2026 10:51, ссылка)
- махать бывает нужно, когда nss используется для фрейминга -- beefdeadbeef(18 знак., 19.02.2026 12:40)
- железный NSS там (только!) для того, чтобы сказать STM'у, что он
больше не мастер. beefdeadbeef(94 знак., 19.02.2026 12:17)
- Из доков или сам так делал? Когда я озаботился и пару дней
подпрыгивал, находил по форумам советы бывалых. Они тожэ цытировали
ДШ, но в концэ приписывали, что НСС нужно, таки, махать вручную.
Ибо у СТМ лапки. - mse homjak(19.02.2026 10:19)
- SSM + SSI, и не нужно беспокоиться: Eddy_Em(118 знак., 18.02.2026 21:24)
- Это 3 АЦП с 8 входов каждый, при этом они работают как диф пары поэтому 4 канала данных на 1 АЦП. А иногда не диф, тогда больше чем 4 канала, но зависимых. Если бы все 17 каналов измерений я одним АЦП измерял, пришлось бы дольше усреднять (уменьшаем шум усреднением). Мультиплексор применялся в предыдущей модели прибора, но там было всего 7 каналов измерений, а тут 17. - Ralex(18.02.2026 18:50)
- Я предпочитаю брать один внешний АЦП и ставить три мультиплексора.
Есть хорошая методика, позволяющая практически к нулю свести
влияние мультиплексоров. Но в данном случае никакого аппаратного SS
не выйдет: их же аж три штуки надо! - Eddy_Em(18.02.2026 18:41)
- А у меня элементарно нет идей, какое нужно придумать устройство,
чтобы к нему больше одного датчика с SPI нужно было подключить! Вот
I2C куда как чаще встречается. По SPI разве что экранчик или
угловой энкодер. Ну вот делал платку для телескопа, которая с двух
энкодеров в два интерфейса USB данные передает, посадил каждый
энкодер на свой SPI, чтобы не мешали друг другу и можно было
параллельно читать. - Eddy_Em(18.02.2026 17:37)
- Макароны тоже по одной штуке варите? :D - Ralex(18.02.2026 17:29)
- негатив слейв селект? вери гуд, беттер зан евер :-P - Ralex(18.02.2026 16:39)
- Без понятия, я slaveselect никогда не использую, потому как больше
одной железки на SPI не вешаю, ибо нефиг тут! - Eddy_Em(18.02.2026 17:18)
- С СПИ, особенно. Как там аппаратный НСС поживает? - mse homjak(18.02.2026 16:30)
- Убогий i2c в stm32 не у всех а только у стареньких которые китайцы
и клонировали. В серии STM32G i2c работает как автомат калашникова и даже по dma! Но в войну
такое не для россиянцев. А у китайпрома все даже хуже чем в f103
(Puya, %ля!) - 3m(25.02.2026 14:59)
- НетЬ. У всех STM32 убогий I2C c теми или иными багами. Вообще у STM
нет ни одного прямого периферийного узла. UART, таймеры, SPI -
везде говнеца подложено. Но дешево и популярно, не отнять. - LightElf(18.02.2026 15:15)
- в EFM32, КМК, хорош - Vit(18.02.2026 03:20)
- он вообще был хорош КМК - General(18.02.2026 08:05)
- Ну не знаю прям, но никаких претензий к i2с что сделан в STM32L476. Я им изначально пользовался через HAL. С 2016 года. Правда в подавляющих случаях это ЕЕПРОМ. Но недавно стал и DS3231 опрашивать. Правда всё это - чисто ручками. Никаких прерываний или, не дай бог, DMA. :-)) - Лaгyнoв(17.02.2026 16:51)
- Ну как же? У всех STM32, кроме F103, нормальный I2C. Разве что,
конечно, алгоритм идиотский: даже используя DMA, все равно нужно
провести часть работы вручную… - Eddy_Em(18.02.2026 08:38)
- болвана спрашивал? док ES0002 POV(1 знак., 14.02.2026 22:59, картинка)
- Болваны разные, мои бесплатные ни чего путного не предлагают,
похоже у них какая-то путаница с модулями I2C, похоже они
используют информацию по каким-то другим контроллерам. Errata
ES0002 я смотрел, там нет про переключение в режим приема, там
только два пункта про I2C: 1.2.1 I2C slave communication failed
when APB equals or less than 4MHz 1.2.2 BUSERR is detected by I2C
before start of communication Оба пункта ко мне не подходят. Откуда
твой болван взял, что в ES0002 есть AlexBi(40 знак., 14.02.2026 23:19)
- Это дикпик, я не проверял его ответ. Мне он вчера такого про
обратноход написал - что можно анекдоты сочинять ))) .. а вот ответ
Квин... POV(4 знак., 14.02.2026 23:24, картинка, картинка)
- Все мимо. Бита DIR в регистре CTRL2 нет, у STM в регистре CR2
такого бита тоже нет, откуда он его взял не понятно. Есть бит DIRF
в регистре STS2 но он только для чтения, я не могу его изменить, он
ставится автоматически, поэтому все советы ставить его вручную не
применимы. - AlexBi(14.02.2026 23:44)
- хых - POV(14.02.2026 23:52)
- Все мимо. Бита DIR в регистре CTRL2 нет, у STM в регистре CR2
такого бита тоже нет, откуда он его взял не понятно. Есть бит DIRF
в регистре STS2 но он только для чтения, я не могу его изменить, он
ставится автоматически, поэтому все советы ставить его вручную не
применимы. - AlexBi(14.02.2026 23:44)
- Это дикпик, я не проверял его ответ. Мне он вчера такого про
обратноход написал - что можно анекдоты сочинять ))) .. а вот ответ
Квин... POV(4 знак., 14.02.2026 23:24, картинка, картинка)
- Болваны разные, мои бесплатные ни чего путного не предлагают,
похоже у них какая-то путаница с модулями I2C, похоже они
используют информацию по каким-то другим контроллерам. Errata
ES0002 я смотрел, там нет про переключение в режим приема, там
только два пункта про I2C: 1.2.1 I2C slave communication failed
when APB equals or less than 4MHz 1.2.2 BUSERR is detected by I2C
before start of communication Оба пункта ко мне не подходят. Откуда
твой болван взял, что в ES0002 есть AlexBi(40 знак., 14.02.2026 23:19)
- UPD: