• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Делюсь опытом AdHoc пошаговое руководство

pvvx

Активный участник сообщества
STM32F103 уже ппц древний, у него проблем реально много... но для легаси, его всё выпускают. А так - лучше уже взять STM32F042 для мелких свистков или STM32F401\411 для более серьезных проектов. Для вторых уже и аналог блупила давно есть.
Там что-то изменилось с i2c контроллером? (Он достиг стандартной ip модели разработанной для всех много лет назад?)
Понял, моя ошибка, я подумал, что между 1мс замерами как то пауза в 84мкс получается и всё. А тогда вопрос, смысл в таком некрасивом числе ? Логичнее же что то более целочисленное - 100мкс, 1мс и подобное.
Какое есть - то и берем, т.к. желательно ещё побыстрее...
 

pvvx

Активный участник сообщества
Угу - тогда и переносил на более новые дрова :p
Мне что и заголовки надо было копировать в новую среду от ST CubeMX...
Мышка сотрется. Были скопированы только куски самого алго.
Да, ещё менялся код i2c дров.
 

A_D

Active member
Там что-то изменилось с i2c контроллером? (Он достиг стандартной ip модели разработанной для всех много лет назад?)
В новых сериях с ним намного меньше проблем и скорости поддерживаются больше, чем стандартные 400 кГц. Как пример - https://www.st.com/resource/en/datasheet/stm32f401cc.pdf и STM32F401CCU6 или STM32F411CEU6 можно купить тут aliexpress.com/item/4000103610226.html (дико бесит авто подстановка рефералок форума... вставил так, тут и так тонны рекламы, с телефона заходишь - через КАЖДОЕ сообщение реклама в любом топике, а ещё и рефералки без твоего спроса подставляет)
 

pvvx

Активный участник сообщества
В новых сериях с ним намного меньше проблем и скорости поддерживаются больше, чем стандартные 400 кГц. Как пример - https://www.st.com/resource/en/datasheet/stm32f401cc.pdf и STM32F401CCU6 или STM32F411CEU6 можно купить тут aliexpress.com/item/4000103610226.html (дико бесит авто подстановка рефералок форума... вставил так, тут и так тонны рекламы, с телефона заходишь - через КАЖДОЕ сообщение реклама в любом топике, а ещё и рефералки без твоего спроса подставляет)
У нормальных i2с и SMBUS контроллеров всего две разновидности:
1) Работа по DMA. Входной поток к контроллеру обычно использует 2-х байтный код - первый байт команды контроллеру, второй данные. Выходной поток - чистые считанные данные. Прерывание по выполнению и/или ошибках на шине.
2) Тоже-самое, но для входного потока используется FIFO. Туда кидаем последовательно какие команды с данными необходимо выполнить, а на выходе имеем чистые считанные данные. Обычно назначается кол-во повторов и дополнение стартовыми комбинациями SMBUS. Прерывание по выполнению и/или ошибках на шине.
3) Совмещенка FIFO или DMA.
Пример IP модели 3131342A 44570140:
 

Вложения

pvvx

Активный участник сообщества
Аналогично на всё есть стандартные ip модели, разработанные с учетом многих рекомендаций. Но ST ими не пользуется, а экономит по черному.
 

cheblin

Member
фигасе бурная активность в репе... @pvvx , палехче... я не успеваю записывать :)
и это я ещё до web сервака не добрался...
 

pvvx

Активный участник сообщества
На считывание регистра у энтих INA2xx уходит:

1 старт + 2*9 бита адрес и номер регистра + 1 старт + 3*9 бита адрес и дав байта + 1 стоп
Это 2+2*9+2+3*9+2=51 тактов шины.

При CLK 400кГц опрос одного регистра составит: 51/400000 = 0.000128 сек.
 

pvvx

Активный участник сообщества
фигасе бурная активность в репе... @pvvx , палехче... я не успеваю записывать :)
и это я ещё до web сервака не добрался...
Я вам писал - выкинул заголовок пакета из того века. Упростил. :)
Потом наехал на ппроблемсы в Delphi7 с thread. Сегодня поправил, наплевав на ваши стенания про культуру программирования.
 

cheblin

Member
не сходится... утомило
Rust программеры не смогли
опять не сходится на чём написан actix объяснять надо?

upload_2020-1-12_21-11-15.png

Устал им объяснять.
И я устал... ловить на подогах и вранье....для чего Вам вот это вот всё?
 

pvvx

Активный участник сообщества

cheblin

Member
причём тут MCU???
там соревнуются языки и платформы на них.. и С ... и С++ и RUST...
тебе, как не програмисту, я скажу, у RUST с производительностью всё ОК.
лучше не спорь с теми кто занимается програмированием профессионально.

у RUST проблема с компиляторами на некоторые младшие MCU, но и тут сиуация постепенно меняется...
 

pvvx

Активный участник сообщества
причём тут MCU???
там соревнуются языки и платформы на них.. и С ... и С++ и RUST...
тебе, как не програмисту, я скажу, у RUST с производительностью всё ОК.
лучше не спорь с теми кто занимается програмированием профессионально.

у RUST проблема с компиляторами на некоторые MCU, но и тут сиуация постепенно меняется...
Ну и пусть гуляет, пока не наработают поддержку MCU.
Это ожидается от них лет через сотню? Методом ожидания более мощных MCU на рынке и полному устареванию сегодняшних?
Вот работа креативных парней из microchip на более мощном MCU:
JavaScript Oscilloscope with MPLAB® Harmony v2 - Developer Help
:)
 

cheblin

Member
вот видишь, с производлительностью RUST разобрались, настройками компилятора кайла, тоже....

сколько мифов разом рассеяли
upload_2020-1-12_21-32-57.png

прям пятый сезон
 

pvvx

Активный участник сообщества
вот видишь, с производлительностью RUST разобрались, настройками компилятора кайла, тоже....

сколько мифов разом рассеяли
Посмотреть вложение 8604

прям пятый сезон
Санта барбара, а итого от AdHoc как не было, так и нет. Вообще ничего нет рабочего :eek: а уже чего-то сравнивает.
RUST хотя-бы держится в сторонке, т.к. куда уж ему влезть в STM32F103...
 

pvvx

Активный участник сообщества
Я не использую Arduino. Поиграть и выбросить only.
Пробовал написать поддержку Arduino для разных чипов - занимает пару вечеров...
А потом миллионы мух требуют поддержку их любимого и привычного, да как им кажется, а не как надо.
 
Сверху Снизу