Как создать последовательный порт USB CDC для Arduino nano 33 BLE?

serial arduino-nano-ble

Я пытаюсь запрограммировать Arduino Nano 33 BLE без покрытия, чтобы получить точные измерения времени и размера. Мне удалось загрузить код на карту, но я не могу с ней связаться. Точнее, когда я загружаю код, порт «деактивируется» после загрузки кода, поэтому последовательный монитор печатает ошибку cannot exec '/dev/ttyACM0'.

Может кто-нибудь помочь мне понять, как заставить это работать? Я видел в Интернете обучающие материалы, но они предназначены для микроконтроллеров AVR, а мне сказали, что эта конкретная плата — нет. Мне также сказали, что я должен включить некоторый код в свой файл c/cpp для создания последовательного порта USB CDC, но я не знаю, как это сделать.

, 👍1

Обсуждение

загрузите простой пример из меню «Примеры IDE», раздел «Связь»., @Juraj

Что вы измеряете, что не можете сделать это с freeRTOS/mbed-os? Вы всегда можете использовать таймер(ы), события и задачи + ярлыки (или общее соединение) и DMA., @KIIV

Что ж, похоже, что mbedOS портит мои эксперименты по времени, измерения колеблются, когда этого не должно быть. Кроме того, даже пустой скетч использует много памяти, и мне хотелось бы иметь возможность сравнивать потребление памяти несколькими программами. Думаю, я всегда мог бы вычесть стоимость пустого скетча, но делать это вручную кажется не очень практичным., @WINTERSDORFF Raphael

Я не уверен, но думаю, что в rtos обычно есть статистика по памяти https://os.mbed.com/docs/mbed-os/v6.16/apis/runtime-memory-statistics.html о времени, вы можете использовать задача с высоким приоритетом (+ задержки, позволяющие запускать задачи с более низким приоритетом), @KIIV

Вы видели какие-нибудь из этих вопросов и ответов? https://arduino.stackexchange.com/search?q=%2Fdev%2FttyACM0, @VE7JRO


1 ответ


1

На плате Nano 33 BLE используется Процессор NORDIC nRF52840, который содержит аппаратное обеспечение интерфейса USB внутри процессора. Текущий Arduino Uno использует процессор Atmel (теперь принадлежащий Microchip) и внешний процессор для связи через USB. Таким образом, любое руководство по Arduino USB будет сильно отличаться от этих двух конструкций Arduino.

Обычно скетчи (программы) Arduino являются лишь частью всего программного обеспечения, работающего на процессоре. Предварительно запрограммированное программное обеспечение на новой плате Arduino абстрагирует более сложную часть встроенного программирования от обычного пользователя Arduino. Скорее всего, это работающий USB-порт.

Чтобы выполнить программирование на «голом железе» на процессоре NORDIC nRF52840, рассмотрите возможность начать с Комплект разработки программного обеспечения NORDIC (SDK). Кроме того, большинство поставщиков поддерживают свои собственные платы разработки (предоставляют примеры программ и библиотек) лучше, чем платы разработки, созданные в других странах. Подумайте об этом, прежде чем приступить к изучению того, как воспитать «медвежьего металла». Периферийное устройство USB/CDC с использованием платы Nano 33 BLE.

Альтернативный подход: многие порты Arduino можно найти на github.com. Адаптация кода Arduino может дать представление о том, как работает аппаратное обеспечение хост-процессора. Предварительно запрограммированное программное обеспечение Nano 33 BLE находится в этом репозитории GitHub.

,

текущее ядро Nano BLE находится здесь https://github.com/arduino/ArduinoCore-mbed, @Juraj

Спасибо, исправил ответ, добавив новую ссылку., @st2000