|
-26 / 4 / 0
Регистрация: 26.09.2024
Сообщений: 128
|
||||||
Передача данных по i2c через DMA STM32F401CUE608.10.2025, 13:46. Показов 4125. Ответов 95
Метки нет (Все метки)
Добрый день. При попытки передать данные на устройство по i2c через DMA нифига не выходит, DMA не в какую не хочет работать.
Адрес устройства определяется как надо, условие Старт и отправка адреса тоже происходит нормально но DMA не стартует и нет прерывания от DMA. В отладке видно что бит DMA1_Stream6->CR |= DMA_SxCR_EN; устанавливается.
Нашёл ошибку DMA1_Stream6->CR |= DMA_CHANNEL_6; исправил на DMA1_Stream6->CR |= DMA_CHANNEL_1; как в таблице всё равно не хочет заводиться.
0
|
||||||
| 08.10.2025, 13:46 | |
|
Ответы с готовыми решениями:
95
ADC->DMA->SDIO (или NAND через FSMC) без остановки в обработчике прерываний DMA на STM32F407VG, реально или нет? USART2(RX+IDLE+DMA)+USART3(TX DMA) STM32F4Discovery - ADC DMA и FSMC DMA |
|
|
|
| 13.10.2025, 19:57 | |
|
Eddy_Em, такая же фигня. Лет 8 назад ковырял одно такое устройство, на I2C типа. Чет не пойму, запросы вроде верные, посылки осликом смотрел - красивые... Почитал стандарт и тут опа: не соответствие.
Так что каждый сам давно решает что для него нынче означает I2C. Исходному протоколу не следует практически никто.
0
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
||||||
| 13.10.2025, 20:14 | ||||||
|
Нашёл очередную засаду. Почему то при передачи DMA включает в отправку адрес устройства, а это лишний не нужный байт. Подскажите как сдвинуть адрес указателя на pBuffer; на один байт?
0
|
||||||
|
|
|
| 13.10.2025, 20:39 | |
|
В стм32 есть аппаратная поддержка SPI-интерфейса. Это фактически тоже самое, что I2C.
1. Чем обусловлен выбор именно I2C? 2. Надеюсь, все понимают, что I2C разработан чисто для внутри-схемного обмена, т.е. одна микросхема на плате передает данные другой. Расстояния для этого протокола буквально 5-10 см. 3. Если его портировать на более дальние дистанции, придется снижать скорость обмена + учитывать сопротивление/емкость линии, на которой непременно завалятся фронты. С SPI через DMA никаких проблем нет. В недавнем проекте через него управлял внешним ЦАПом.
0
|
|
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 13.10.2025, 20:52 | |
|
wizard41, да для дисплея пишу библы, а он только i2c поддерживает, да я тоже задумался не поднять ли на SPI куда лучше будет.
У меня всего одно устройство это GLCD который работает по i2c. То есть можно запустить на SPI?
0
|
|
|
Windows must die
|
|
| 13.10.2025, 20:53 | |
|
Т.н. "high speed" I2C уже почти как SPI (но, по понятным причинам, т.к. нельзя пушпулл, то там источники тока вместо подтягивающих резисторов). Вот и вся разница физики, объясняющая, почему SPI выходит быстрей. А чувствительность к помехам у них примерно одинаковая. Поэтому SPI тоже далеко нельзя.
Не по теме: Но вот с I2C я вполне себе до 2.5 метров датчики вешал от МК. На зеркале БТА висит 80 датчиков, подключенных к пяти контроллерам. Правда, пришлось скорость до 100к снизить (а на одном контроллере вообще до 10к, т.к. уж больно много длинных проводов). Ну, температура - штука медленная. На 2℃ зеркало в худших стрессовых условиях примерно за сутки температуру изменить может. VladimirU, что за экранчик? Я, чесслово, вообще ни разу в жизни не встречал экранов на I2C - только на SPI или параллельной шине. Странно, зачем было искать именно I2C, когда SPI'ных - пруд пруди!
0
|
|
|
1507 / 524 / 75
Регистрация: 22.09.2023
Сообщений: 1,654
|
||
| 13.10.2025, 20:58 | ||
|
0
|
||
|
|
||
| 13.10.2025, 21:09 | ||
|
VladimirU, дисплеев на чистом I2C не видел, не припомню таких... SPI точно почти все поддерживали, ну кроме совсем древних, параллельных. SPI в стм - почти голый i2c, только с небольшими оговорками. Принцип тот же: уронить SYNC в ноль, по DATA передавать текущий бит, ну и CLK тактирует все это дело. Можно выбрать полярности тактирующих сигналов и синхронизации. Добавлено через 4 минуты Dushevny, ваш случай ни о чем не говорит. Как и что вы делали - никто не знает. И в чем выразились ограничения - не понятно. Могли быть как и ваши ошибки, так и неспособность ядра вывезти вашу затею..
0
|
||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
||
| 13.10.2025, 21:18 | ||
|
0
|
||
|
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,715
|
|
| 14.10.2025, 08:28 | |
|
wizard41, есть такие же дисплее только работающие по SPI пожалуй закажу их.
0
|
|
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,070
|
|||
| 14.10.2025, 09:04 | |||
|
0
|
|||
|
|
|||
| 14.10.2025, 12:53 | |||
|
Добавлено через 3 минуты VladimirU, дисплеи с I2C вроде как есть с припаянными к ним i2c-преобразователями. В чистом виде дисплеи прям со встроенным i2c что-то редкость.. С SPI полно.
0
|
|||
|
1507 / 524 / 75
Регистрация: 22.09.2023
Сообщений: 1,654
|
|
| 14.10.2025, 13:02 | |
|
0
|
|
|
1507 / 524 / 75
Регистрация: 22.09.2023
Сообщений: 1,654
|
||
| 14.10.2025, 13:19 | ||
|
Хотя, конечно, если под "раньше" ималось ввиду лет 25 назад, то да - в те времена была либо параллельная шина, либо что-то похожее на симплексный SPI.
0
|
||
|
1507 / 524 / 75
Регистрация: 22.09.2023
Сообщений: 1,654
|
|
| 14.10.2025, 13:24 | |
|
0
|
|
|
4146 / 2724 / 433
Регистрация: 09.09.2017
Сообщений: 12,070
|
||||||
| 14.10.2025, 15:55 | ||||||
![]() Кстати о HD44780. Недавно делал одно устройство и с удивлением обнаружил, что этот индикатор наконец-то научился сам регулировать контрастность. А на соответствующую ножку не реагирует.
0
|
||||||
|
|
|||
| 14.10.2025, 17:01 | |||
|
С I2C не работаю много лет, т.к. он не применим в моем(их) случаях. Могу тонкостей не помнить. Есть, конечно, те, кто "натягивает сову на глобус" и юзают его на дальних дистанциях, но это далеко не комильфо. Добавлено через 1 минуту
0
|
|||
|
Windows must die
|
|
| 14.10.2025, 17:39 | |
|
wizard41, на I2C полным-полно всяких "погодных" датчиков, вот, накалякал в блог.
0
|
|
| 14.10.2025, 17:39 | |
|
stm32f407+ADC+DMA. Проблема с DMA STM32F4 I2C DMA CMSIS stm32 SPI+DMA или I2C внешнее АЦП передача данных USART + DMA и непонятные иероглифы stm32f4 SPI приём и передача данных по DMA Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|