-
- так везде :) в AVR тоже I2C автоматы разные везде :( а ещё
SMBUS-периферия есть :) мне, когда приходится прикручивать
всяку-разну периферию по I2C - каждый раз закончив - "крещусь" -
"свят, свят свят..." :)) - Adept(09.09.2025 17:42)
- А какой смысл в аппаратном И2Ц? Тот-жэ самый закат солнца вручную,
только "автоматически". Не считая всяких эррат и прочего дерьма. А
так, взял две любые ноги и навертел за пол-часа. - mse homjak(09.09.2025 19:07)
- +1 LДа... в тех же PIC' ушках I2С: и аппаратно (с нуля кодил, вообще влёгкую после datasheet reading )- шарашит(100;400 кГц ) только в путь. И программно (сотенку точно)- вообще гибкость в сервисе (полинг только чуток доставал :)). - SERGHIO(09.09.2025 21:37)
- Эррата даже на F103 не такая и жирная, особенно если только I2C
касаться. А у более вменяемых STM32 так вообще замечательно. И DMA
- классная штука. Ногодрыгом пусть унылые абдуринщики занимаются.
Чтобы "завис" аппаратный I2C, нужно очень сильно нарукожопить. Чаще
шину подвешивают тупые устройства, которые блокируют CLK, и все -
приплыли… Помогает только сброс питания. Поэтому для таких
"засранцев" я еще и отдельно управление питанием делаю. Благо,
обычно хватает Eddy_Em(62 знак., 09.09.2025 20:45)
- У меня все впечатления от аппаратного И2Ц из АВР. Т.е. дай команду
"старт", дождись флага-прерывания, дай команду "заслать в оркестр
данные", дождись.. дай команду "ждать АСК", дождись, дай
команду...додждись...дай команду... Если в СТМ нужно только
подготовить буфер "с" или "для", грузануть вручную тока
команду-адрес, а все аски-наски, старты-стопы сделает жэлезяка и
ДМА, то признаю, что неправ. - mse homjak(10.09.2025 13:30)
- Жопа какая-то у АВР, но там и DMA нет. А в STM32 только на старте нужно убедиться, что линия не занята. А потом DMA - и вперед! Eddy_Em(46 знак., 10.09.2025 15:09)
- У меня все впечатления от аппаратного И2Ц из АВР. Т.е. дай команду
"старт", дождись флага-прерывания, дай команду "заслать в оркестр
данные", дождись.. дай команду "ждать АСК", дождись, дай
команду...додждись...дай команду... Если в СТМ нужно только
подготовить буфер "с" или "для", грузануть вручную тока
команду-адрес, а все аски-наски, старты-стопы сделает жэлезяка и
ДМА, то признаю, что неправ. - mse homjak(10.09.2025 13:30)
- Я разгонял i2c до 1 и даже 2 МГц. Там нужно было довольно много туда-сюда гонять. Если бы это было ногодрыгом, проц больше ничем заниматься не мог бы. - SciFi(09.09.2025 19:51)
- Ответ - тайминги. Джиттер. - Cкpипaч(09.09.2025 19:22)
- Это синхронный интерфейс, ташта, жыттер не играет никакой роли. Я
могу задерживать процэсс на секунды. Как, собсно и делал, в своё
время, на какой-то АВРке. У меня была программка монитора, с
возможностью писать и читать память и я, вручную, засылал в порты
И2Ц команды, чтобы отработать аппаратный интерфейс. Успешно. Потом
реализовал это в АСМ. Потом, посмотрел и переписал в бит-бэнг. И с
тех пор подобной хернёй не страдал. - mse homjak(09.09.2025 19:41)
- Синхронный - таки да, а вот задерживать процесс на секунды - таки
надо аккуратно. Некоторые слейвы имеют таймаут, специально от
завешивания шины. - LightElf(11.09.2025 14:05)
- Ну то я экскрементировал на 24Ц-какойто. Просто если в 400кбитах попадётся 100кбитный СЦК, никто не умрёд. - mse homjak(11.09.2025 16:40)
- Каждому овощу свой фрукт. Даже если не очень нужно, я предпочитаю
чтобы времянки имели вид, максимально близкий к тому что написано в
даташитах. И если написано ширина импульса две микросекунды, то
пусть это будет именно две. А не плюс-минус триста микросекунд, на
обработку так вовремя подоспевшего запроса по Modbus. - Cкpипaч(09.09.2025 20:34)
- Как уже заметил MSE интерфейс I2C - синхронный. В отличие от
асинхронного UART. - reZident(09.09.2025 20:45)
- Как я уже ответил, речь идет о моих личных предпочтениях. Cкpипaч(261 знак., 09.09.2025 20:52)
- UART вы имеете в виду тоже программный? - reZident(09.09.2025 20:56)
- Модбас отлично реализуется аппаратно: на DMA и прерывании по IDLE,
проверял - отлично работает. Еще бы контрольную сумму МК сам
считал… Eddy_Em(147 знак., 09.09.2025 21:11)
- Похуй. На оптике лучше TCP/IP. - Cкpипaч(09.09.2025 21:27)
- 485 или 232 тоже прекрасно себя чувствуют на оптике. А вот для CAN,
увы, дороговато преобразователь стоит. Хотя, казалось бы: не
сильно-то от 485 на транспортном уровне отличается… А вот для
TCP/IP нужен: а) больно "вумный" микроконтроллер, б) долгие годы
разработки: транспортный стек, стек UDP, стек TCP и т.д., и т.п.
Готового-то приличного в сети вообще ничего нет. Eddy_Em(210 знак., 10.09.2025 08:37)
- Пф. На оптике CAN - самое офигенное. Включенный светодиод/лазер -
доминантный уровень. Его можно хоть на лазерной указке собрать с
таким подходом. - Звepoящep(12.09.2025 10:31)
- А модуляции всякие? Шумы чтобы отсеивать... Eddy_Em(533 знак., 12.09.2025 11:28)
- Озвучу цену - $7 за штуку. Пиши дальше, писатель. - Cкpипaч(10.09.2025 08:54 - 12:23)
- Хм. Что-то подозрительно мало. Не может так стоит полноценный
конвертер UART в TCP. Да ещё и с оптикой. - Звepoящep(12.09.2025 10:36)
- Уже больше двух лет пользуюсь. Сейчас уже цена $10 за пару. Cкpипaч(1 знак., 12.09.2025 14:36, картинка)
- Отстал от жизни блин. Звepoящep(391 знак., Сегодня, 07:40)
- Так чтобы оптику прямо до однокристалки доводить, такое будущее у меня еще не наступило :) Cкpипaч(104 знак., Сегодня, 07:50)
- А если вам нужен UART в TCP то это 2,5 доллара за шт. Cкpипaч(1 знак., 12.09.2025 14:39, картинка)
- И как этот модуль настраивается - AT-командами что ли?
Интересненько… - Eddy_Em(12.09.2025 15:05)
- Обычно со стороны Ethernet есть вэб-морда. Скорость/четность/IP-
адресс можно настраивать оттуда. - Cкpипaч(12.09.2025 15:21)
- Именно со стороны Езернет? Точно не с Уарта? - Kpoк(Сегодня, 10:31)
- есть и со стороны УАРТа (ножку CFGEN нужно тянуть) - Vit(Сегодня, 11:01)
- То есть 32-ю ногу? - Kpoк(Сегодня, 12:21)
- есть и со стороны УАРТа (ножку CFGEN нужно тянуть) - Vit(Сегодня, 11:01)
- Именно со стороны Езернет? Точно не с Уарта? - Kpoк(Сегодня, 10:31)
- Обычно со стороны Ethernet есть вэб-морда. Скорость/четность/IP-
адресс можно настраивать оттуда. - Cкpипaч(12.09.2025 15:21)
- И как этот модуль настраивается - AT-командами что ли?
Интересненько… - Eddy_Em(12.09.2025 15:05)
- Отстал от жизни блин. Звepoящep(391 знак., Сегодня, 07:40)
- Уже больше двух лет пользуюсь. Сейчас уже цена $10 за пару. Cкpипaч(1 знак., 12.09.2025 14:36, картинка)
- Это что ли преобразователь UART в TCP/IP и обратно? Или что? - Eddy_Em(10.09.2025 09:44)
- Это готовый, полноценный медиаконвертор. - Cкpипaч(10.09.2025 12:23)
- Хм. Что-то подозрительно мало. Не может так стоит полноценный
конвертер UART в TCP. Да ещё и с оптикой. - Звepoящep(12.09.2025 10:36)
- Пф. На оптике CAN - самое офигенное. Включенный светодиод/лазер -
доминантный уровень. Его можно хоть на лазерной указке собрать с
таким подходом. - Звepoящep(12.09.2025 10:31)
- 485 или 232 тоже прекрасно себя чувствуют на оптике. А вот для CAN,
увы, дороговато преобразователь стоит. Хотя, казалось бы: не
сильно-то от 485 на транспортном уровне отличается… А вот для
TCP/IP нужен: а) больно "вумный" микроконтроллер, б) долгие годы
разработки: транспортный стек, стек UDP, стек TCP и т.д., и т.п.
Готового-то приличного в сети вообще ничего нет. Eddy_Em(210 знак., 10.09.2025 08:37)
- Похуй. На оптике лучше TCP/IP. - Cкpипaч(09.09.2025 21:27)
- Аппаратный. Но процессор - одноядерный. Он или шим ручками
складывает, или приехавший по UARTу разбирает. Не одновременно. - Cкpипaч(09.09.2025 21:09)
- Тогда каким образом "частота запросов по Modbus сопоставима с частотой опроса по
I2C"? У вас UART в Modbus имеет baudrate 1Mbps? - reZident(09.09.2025 21:14)
- Ща нарисую. Cкpипaч(1 знак., 09.09.2025 21:27, картинка)
- А чего разбор пакета модбас так долго происходит? Там мегабоды что ли? - Eddy_Em(10.09.2025 08:38)
- И что тут изображено? В программном обмене I2C прерывания у вас
совсем не задействованы? - reZident(09.09.2025 21:42)
- Совсем. Мне нужно выдавать "иголки", сопоставимые с парой десятков команд ассемблера. Пока войдёшь-выйдешь нужно снова "прерывать". Cкpипaч(167 знак., 09.09.2025 22:05)
- Ща нарисую. Cкpипaч(1 знак., 09.09.2025 21:27, картинка)
- Тогда каким образом "частота запросов по Modbus сопоставима с частотой опроса по
I2C"? У вас UART в Modbus имеет baudrate 1Mbps? - reZident(09.09.2025 21:14)
- Модбас отлично реализуется аппаратно: на DMA и прерывании по IDLE,
проверял - отлично работает. Еще бы контрольную сумму МК сам
считал… Eddy_Em(147 знак., 09.09.2025 21:11)
- UART вы имеете в виду тоже программный? - reZident(09.09.2025 20:56)
- Как я уже ответил, речь идет о моих личных предпочтениях. Cкpипaч(261 знак., 09.09.2025 20:52)
- Как уже заметил MSE интерфейс I2C - синхронный. В отличие от
асинхронного UART. - reZident(09.09.2025 20:45)
- Синхронный - таки да, а вот задерживать процесс на секунды - таки
надо аккуратно. Некоторые слейвы имеют таймаут, специально от
завешивания шины. - LightElf(11.09.2025 14:05)
- Это синхронный интерфейс, ташта, жыттер не играет никакой роли. Я
могу задерживать процэсс на секунды. Как, собсно и делал, в своё
время, на какой-то АВРке. У меня была программка монитора, с
возможностью писать и читать память и я, вручную, засылал в порты
И2Ц команды, чтобы отработать аппаратный интерфейс. Успешно. Потом
реализовал это в АСМ. Потом, посмотрел и переписал в бит-бэнг. И с
тех пор подобной хернёй не страдал. - mse homjak(09.09.2025 19:41)
- А какой смысл в аппаратном И2Ц? Тот-жэ самый закат солнца вручную,
только "автоматически". Не считая всяких эррат и прочего дерьма. А
так, взял две любые ноги и навертел за пол-часа. - mse homjak(09.09.2025 19:07)
- так везде :) в AVR тоже I2C автоматы разные везде :( а ещё
SMBUS-периферия есть :) мне, когда приходится прикручивать
всяку-разну периферию по I2C - каждый раз закончив - "крещусь" -
"свят, свят свят..." :)) - Adept(09.09.2025 17:42)