Второе ядро Raspberry Pi 2040

Пользовательские блоки не подходящее под другие разделы
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Второе ядро Raspberry Pi 2040

#1

Сообщение Dryundel » 18.08.2022{, 15:35}

Второе ядро Raspberry Pi 2040
Набор блоков для запуска части программы на втором ядре Raspberry Pi 2040
3.jpg
3.jpg (8.62 КБ) 2146 просмотров
5.jpg
5.jpg (21.41 КБ) 2146 просмотров
Размещение блоков в проектеПоказать
4.jpg
Описание примененияПоказать
START_CORE2 for Raspberry Pi 2040
Стартовый блок для запуска части программы на втором ядре Raspberry Pi 2040
- Разместить блок на отдельной перед кодом выполняемым на втором ядре

END_CORE2 for Raspberry Pi 2040
Финишный блок для запуска части программы на втором ядре Raspberry Pi 2040
- Разместить блок на отдельной плате сразу после кода выполняемого на втором ядре

Все что размещено на платах между блоками
START_CORE2 for Raspberry Pi 2040 и END_CORE2 for Raspberry Pi 2040
будет работать на втором ядре Raspberry Pi 2040.
.
Актуальная версия
Второе ядро Raspberry Pi 2040.ubl
(18.02 КБ) 51 скачивание
- Исправлен баг #Пост23
Разработано в соавторстве с Phazz.
.
.
История версий: .
ВНИМАНИЕ! Работает только на библиотеке контроллера Raspberry Pi Pico by Earle F.Philhower

Описание контроллеров Raspberry Pi 2040 берем здесь. Спасибо DrMario.
Библиотеку контроллера устанавливаем эту.Показать
1.jpg

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Второе ядро Raspberry Pi 2040

#21

Сообщение Dryundel » 19.08.2022{, 18:28}

ecoins писал(а):
19.08.2022{, 17:46}
Прекрасно, когда присутствует теоретик, который все может объяснить... мьютекс...
Это как к старику-пастуху лектор приезжает и читает лекцию "Как пасти баранов".
Вот оно как? :D
Ладно, видимо придется пастуху-профессионалу объяснить простыми словами что такое мьютекс.
Тока пожалуй не здесь.
Открыл специально для пастухов тему. Теоретическую. Я же вроде как теперь теоретик. :)
.
viewtopic.php?f=21&t=8179&p=116594#p116594

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Второе ядро Raspberry Pi 2040

#22

Сообщение ecoins » 19.08.2022{, 20:59}

Запустил еще раз второе ядро на RP2040.
Одна простая задача - вычисление циклов loop1() в сек.
Получилось >400тыс. в сек. Удивительно, даже надо перепроверить...
Второе ядро можно использовать, но...
Нельзя просто использовать одни и те же интерфейсы(например i2c.0) одновременно.
А вот использовать другую шину i2c.1 можно. У нас на тестовой плате она даже выделена на отдельную группу пинов.
И наши библиотеки уже под это заточены. И еще они позволяют изменять скорость шин i2c, SPI.
В совокупности с этим можно получать любопытные результаты.
Будем пробовать и выкладывать тесты.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Второе ядро Raspberry Pi 2040

#23

Сообщение Phazz » 28.08.2022{, 08:54}

Dryundel, Есть одна проблема с блоками в PRO редакторе. В них можно указать выполнение кода в конце LOOP, получится код перепрыгнет из первого ядра на второе.
photo_2022-08-28_10-51-40.jpg
Это можно решить блоком закрывашкой

Код: Выделить всё

}
void blok_zakr(){
а в конце открывающего добавить

Код: Выделить всё

blok_zakr();

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Второе ядро Raspberry Pi 2040

#24

Сообщение Dryundel » 28.08.2022{, 09:43}

Phazz писал(а):
28.08.2022{, 08:54}
Dryundel, Есть одна проблема с блоками в PRO редакторе. В них можно указать выполнение кода в конце LOOP, получится код перепрыгнет из первого ядра на второе.
Да, действительно проблема. Об этом я не подумал. :smile37:
Значит надо искать другой вариант.

Отправлено спустя 8 минут 4 секунды:
Phazz писал(а):
28.08.2022{, 08:54}
Это можно решить блоком закрывашкой
Не понял как это поможет. Давай образец исправленного блока. Посмотрим.

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Второе ядро Raspberry Pi 2040

#25

Сообщение Phazz » 28.08.2022{, 11:39}

Dryundel,
2022-08-28 13-36-57 FLProg-7.4.6.png
2ядра+ПБ.flp
(64.87 КБ) 38 скачиваний

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Второе ядро Raspberry Pi 2040

#26

Сообщение Dryundel » 28.08.2022{, 11:56}

Phazz, хитро конечно и может даже сработать. Доберусь до компа посмотрю внимательней. Спасибо за идею.

Отправлено спустя 7 часов 42 минуты 14 секунд:
Версия блока обновлена. Исправлен баг.
Теперь это пара блоков. Скачать в первом посте
Отдельная благодарность Phazz, за отличную идею.

ARTEMM
Рядовой
Сообщения: 37
Зарегистрирован: 05.05.2021{, 21:31}
Репутация: 0
Имя: Артём

Второе ядро Raspberry Pi 2040

#27

Сообщение ARTEMM » 05.07.2023{, 16:10}

добрый день с вашими блоками выдает ошибку Arduino: 1.8.15 (Windows 7), Плата:"Raspberry Pi Pico, 2MB (no FS), 133 MHz, Small (-Os) (standard), Disabled, Disabled, Disabled, Disabled, None, Pico SDK, IPv4 Only, Default (UF2)"

pr3:45:12: error: expected constructor, destructor, or type conversion before ';' token

45 | end_Loop()

| ^

C:\TEMP\flprog\pr3\pr3.ino: In function 'void loop()':

pr3:15:5: error: 'end_Loop' was not declared in this scope

15 | end_Loop();

| ^~~~~~~~

C:\TEMP\flprog\pr3\pr3.ino: At global scope:

pr3:45:1: error: ISO C++ forbids declaration of 'end_Loop' with no type [-fpermissive]

45 | end_Loop()

| ^~~~~~~~

C:\TEMP\flprog\pr3\pr3.ino: In function 'int end_Loop()':

pr3:70:1: error: no return statement in function returning non-void [-Werror=return-type]

70 | }

| ^

cc1plus.exe: some warnings being treated as errors

exit status 1

expected constructor, destructor, or type conversion before ';' token


фл прог версия 7.3.8

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Второе ядро Raspberry Pi 2040

#28

Сообщение Phazz » 05.07.2023{, 16:34}

ARTEMM, проект бы увидеть

ARTEMM
Рядовой
Сообщения: 37
Зарегистрирован: 05.05.2021{, 21:31}
Репутация: 0
Имя: Артём

Второе ядро Raspberry Pi 2040

#29

Сообщение ARTEMM » 05.07.2023{, 19:48}

Проэкт как таковой и нету у меня была плата и решил ее сравнить с есп 32 в проекте на первой стартовый на второй семетричный генератор и на третьем финишный блок

Отправлено спустя 1 минуту 16 секунд:
А генератор встроенный блок не пб

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Второе ядро Raspberry Pi 2040

#30

Сообщение Phazz » 05.07.2023{, 20:20}

ARTEMM, пофиксил
Вложения
Второе ядро Raspberry Pi 2040 fix.ubl
(18.03 КБ) 23 скачивания

ARTEMM
Рядовой
Сообщения: 37
Зарегистрирован: 05.05.2021{, 21:31}
Репутация: 0
Имя: Артём

Второе ядро Raspberry Pi 2040

#31

Сообщение ARTEMM » 06.07.2023{, 12:29}

спасибо заработало поэкспементиреую отпишусь

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Второе ядро Raspberry Pi 2040

#32

Сообщение WildCat » 17.02.2024{, 04:19}

ecoins писал(а):
19.08.2022{, 16:39}
Появление "Диспетчера" не решило проблемы, поскольку любая "тормозящая" задача может свести на нет результаты оптимизации по времени - например АЦП, почти все библиотеки работы с внешними устройствами, и даже алгоритм преобразования
float в int от FLProg в ModBus и пр.(последнее в контроллерах AVR очень тормозит).
Интересный момент.
Сейчас как раз занимаюсь разработкой нового устройства и выбираю контроллер.

А данный момент остановился на Мега 2560, отлаживаю узлы.
Сейчас датчик ds18b20, pt1000. Передаю данные по modbus в другой контроллер.
При добавлении блока измерения переменного тока (трансформатор тока) на библиотеке EmonLib производительность упала на порядок (с 4600 циклов до 500). И да, там весь набор из цитаты выше: float to int, 1wire, АЦП, modbus.

Задумался…

Мега нужна из-за большого количества входов-выходов и большого количества UART (нужно несколько для коммуникаций с доп модулями и внешним пультом по modbus).

Может стоит рассмотреть вариант rp2040?
Но к него всего 2 UART (

Вы для работы с двумя ядрами на rp2040 используете блоки из этой темы, и свои?

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Второе ядро Raspberry Pi 2040

#33

Сообщение ecoins » 17.02.2024{, 09:47}

WildCat писал(а):
17.02.2024{, 04:19}
Но к него всего 2 UART (
Можно (и мы сделали, через PIO) USB + UARTx6.
WildCat писал(а):
17.02.2024{, 04:19}
Вы для работы с двумя ядрами на rp2040 используете блоки из этой темы, и свои?
Свои.
WildCat писал(а):
17.02.2024{, 04:19}
При добавлении блока измерения переменного тока (трансформатор тока) на библиотеке EmonLib производительность упала на порядок (с 4600 циклов до 500). И да, там весь набор из цитаты выше: float to int, 1wire, АЦП, modbus.
Эти задачи хорошо перенести во второе ядро.
Еще поддерживает Ethernet, в варианте Raspberry Pi Pico - W - дополнительно Wi-Fi.
У нас есть стенды для RP2040.
Сделали опытные образцы ПЛК - 12 дискретных входов(развязка), 12 дискретных выходов(развязка), RS485 x 2 (развязка), i2c(развязка), порт UART под Nextion (развязка), дополнительно UARTx3; питание 220 ADC/24 DC.
В небольшом корпусе с прозрачной крышкой.
Сейчас запустили на изготовление платы с доработкой.

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Второе ядро Raspberry Pi 2040

#34

Сообщение WildCat » 17.02.2024{, 13:33}

ecoins писал(а):
17.02.2024{, 09:47}
Свои.
Можете поделиться блоком с примером применения?

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Второе ядро Raspberry Pi 2040

#35

Сообщение ecoins » 17.02.2024{, 13:38}

WildCat писал(а):
17.02.2024{, 13:33}
Можете поделиться блоком с примером применения?
Переключение на второе ядро?
Он в библиотеке блоков.
Примеры для RP2040 выкладывал, там этот блок применен.
Если не найдете, то подскажу или выложу.

WildCat
Лейтенант
Сообщения: 425
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

Второе ядро Raspberry Pi 2040

#36

Сообщение WildCat » 17.02.2024{, 13:43}

ecoins писал(а):
17.02.2024{, 13:38}
Он в библиотеке блоков.
С какой версии? У меня сейчас в активном использовании от марта прошлого года.

Новые библиотеки и блоки еще не ставил, т.к Вы написали, что новые не совместимы со старыми, а у меня есть большой работающий проект, где старые библиотеки.

Если не трудно, скинете пример проекта, на форуме непонятно где искать

ecoins
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Второе ядро Raspberry Pi 2040

#37

Сообщение ecoins » 17.02.2024{, 14:40}

Написал в личку, попозже попробую выложить простой проект.

Ответить

Вернуться в «Другое»