Два Nucleo board'a по SPI09.07.2018, 22:35. Показов 3579. Ответов 41
Метки нет (Все метки)
У меня есть два одинаковых Нуклео борда. Хочу их соединить по SPI. Но сначала непонятно как их прошить на одном ноуте так, чтобы один был мастер, другой слейв. Для каждого нужно сделать два отдельных проекта и запустить на каждом свой. Причем, что EWARM путается какой куда прожигать. Можете помочь ?
0
|
|
| 09.07.2018, 22:35 | |
|
Ответы с готовыми решениями:
41
SPI на одной плате Nucleo Проблема с передачей по spi stm32 Nucleo-L053R8 Два дисплея на ST7920 по SPI |
| 21.07.2018, 12:40 [ТС] | |
|
Эммм... Так наверное можно сделать, когда работаешь с одним бордом и, скажем, SPI1 - это мастер и SPI2 - это слейв. Тогда да, все внутри одного проекта и так можно сделать.
Но у меня два борда, один Nucleo-L152RE и другой Nucleo-f411re. И я хочу связать их по SPI. Получается, что у меня два разных проекта, сначала я запускаю один проект, скажем для слейва, потом другой проект - для мастера. И у меня по любому получается задержка больше 3 секунд. Или я чего то не понял... ![]() Добавлено через 10 минут Да ! Получилось ! Огромное спасибо !
0
|
|
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
|
|
| 21.07.2018, 13:03 | |
|
max_sk,
неужто все? ![]() имелось в виду что платы выполняют уже готовую и отлаженную программу и работают без среды отладки, и питание подается на обе платы одновременно. Логический анализатор не мешало бы иметь в будущем. Пригодится еще если будешь заниматься дальше программированием
1
|
|
| 21.07.2018, 14:12 [ТС] | ||
|
Нет, не получилось... Может частоты шин обеих бордов должны совпадать ? В качестве предположения ? А то в Кубе у меня разные частоты могут быть...
Добавлено через 3 минуты Слейв действительно выдает иногда правильные значения, но потом снова сьезжает на мусор... Добавлено через 45 минут
![]() Но через месяц или несколько. А на работе нужно за пару дней...
0
|
||
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
|
|
| 21.07.2018, 17:18 | |
|
max_sk, ну без кода очень сложно гадать где искать ошибку((
плюс еще разные процы...
1
|
|
| 29.07.2018, 20:20 [ТС] | |||||||||||
|
После того, как отремонтировал вторую Nucleo-L152RE плату и теперь она выводит инфу на PuTTY, возвращаюсь к этой теме. Выкладываю код. В принципе, мне надо решить, как синхронизировать обе платы, мастер на передачу и слейв на прием, так чтобы слейв принимал без мусора. У слейва периодически проскакивают правильные значения, но потом он сьезжает на мусор.
Вот код: Это мастер:
0
|
|||||||||||
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
|
|||||||||||
| 30.07.2018, 22:47 | |||||||||||
|
недавно изучал режим DMA и набросал аналогичный код без функций HAL под STM32F407.
Код в работе не проверял, т.к. у меня пока одна плата) Писал в среде IAR. Для вывода на экран используется функция printf Код Мастера main.c
код для slave вроде пишется аналогично)
1
|
|||||||||||
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
|
|||||||||||
| 21.08.2018, 12:18 | |||||||||||
|
Дождался с али второй такой же платы EU STM32 M4 на процессоре STM32F407ZGT6 и довел свою программу до ума.
Обе платы работают в режиме DMA. Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2. Потом приемный буфер очищается перед принятием очередного пакета данных. (хотел бы я знать, каким местом думал проектировщик такой платы ставя рядом два ОДИНАКОВЫХ ГОЛУБЫХ светодиода??? Приходится иногда нагибаться к плате, чтобы узнать точнее, какой именно светодиод горит) Код "мастера" файл main.c
1
|
|||||||||||
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 271
|
|||||||||||
| 21.08.2018, 12:18 | |||||||||||
|
код для Slave файл main.c
Сейчас у меня обе платы перемигиваются светодиодами. Правда, при первоначальной подаче питания иногда на одной плате может загореться светодиод LED2 (ошибка) Лично для себя тему я считаю закрытой. Удачи вам автор!
1
|
|||||||||||
| 01.09.2018, 13:48 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть у вас тоже иногда принимает мусор ? А вообще с какой целью создавался SPI ? По нему можно передавать большие обьемы данных без мусора ?
0
|
|
| 01.09.2018, 13:48 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть у вас тоже иногда принимает мусор ? А вообще с какой целью создавался SPI ? По нему можно передавать большие обьемы данных без мусора ?
0
|
|
| 01.09.2018, 13:52 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 13:52 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 13:53 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 13:54 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 13:55 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 14:06 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 01.09.2018, 14:06 [ТС] | |
|
Radikal_78, вы пишете :
Каждая плата сравнивает свой приемный буфер с тестовым массивом, если массивы идентичны, то переключается LED1, в противном случае загорается LED2 То есть, у вас тоже время от времени принимает мусор ? А вообще, с какой целью создавался SPI ? По нему можно передавать большие объемы данных без мусора ?
0
|
|
| 10.09.2018, 20:18 [ТС] | |||||||||||
|
Решил разбираться своими силами ( перебарывая лень ). В итоге мне удалось добиться устойчивой передачи от мастера к слейву.
Вот отрывок кода мастера :
![]() Добавлено через 3 часа 47 минут Оказывается, что вдобавок ко всему у меня еще контакт в проводах пропадает. Изза этого тоже приходит мусор... :-(
0
|
|||||||||||
| 10.09.2018, 20:18 | |
|
Как, используя CPLD, можно состыковать два мастер-устройства SPI ILI9341 SPI DMA, SPI, UART библиотеки SPI Flash 25q128 как SD в SPI mode ? ILI9341 SPI DMA, SPI, UART библиотеки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|