Mac для последовательной связи с Digispark ATtiny85

Я хочу использовать последовательный монитор Arduino IDE с моим Digispark ATtiny85 через USB.

Я могу без проблем загрузить этот код (пример Digispark CDC):

#include <DigiCDC.h>
void setup() {                
  SerialUSB.begin(); 
}
void loop() {  
  SerialUSB.println(F("TEST!"));
 //SerialUSB.delay(10);
}

В терминале я могу подтвердить, что он действительно создает новое устройство:

ll /dev/*usb*
crw-rw-rw-  1 root  wheel   21,  89 27 Sep 10:36 /dev/cu.usbmodem1411
crw-rw-rw-  1 root  wheel   21,  88 27 Sep 10:36 /dev/tty.usbmodem1411

При попытке запустить последовательный монитор Arduino я получаю сообщение об ошибке:

 Error opening serial port '/dev/cu.usbmodem1411'. (Port busy)

Я подтвердил, что нет открытых файлов или процессов, использующих USB-порт. У меня та же проблема, когда я пытаюсь использовать cu или screen в терминале.

Я погуглил эту проблему и обнаружил, что несколько человек сталкиваются с такой же проблемой на новых компьютерах Mac, но мне не удалось найти решение. -Есть идеи?

  • Digispark Rev3 (китайский клон - с прошивкой загрузчика 1.6 (1.06))
  • IDE для Arduino 1.8.7
  • Mac OSX High Sierra 10.13.6

, 👍3

Обсуждение

Я не знаю насчет OS X, но знаю, что у ATTiny85 нет USB-интерфейса, так что все делается программно. TBH, вам повезло, что он зашел так далеко. Я никогда не был поклонником USB с такими битами. Это противно., @Majenko

@Majenko Я могу использовать Digispark в качестве USB HID-клавиатуры, так что биты работают :о), @hpekristiansen

Вы можете использовать только низкоскоростной USB. Низкая скорость предназначена только для использования с клавиатурой и мышью. CDC/ACM действительно требует полной или высокой скорости, поэтому попытка использовать его на низкой скорости является «неопределенной»., @Majenko

@Majenko: Я ценю поддержку. Я был бы рад любому низкоскоростному способу отправки строки с моего компьютера на Digispark. Если это невозможно, знаете ли вы о чипе, который я могу добавить к ATtiny85, чтобы дать ему аппаратный USB?, @hpekristiansen

К сожалению, это известная [проблема] (https://github.com/digistump/DigistumpArduino/issues/41) в mac os, решения которой на данный момент нет. [digiUSB] (https://github.com/digistump/DigisparkExamplePrograms/tree/master/Python/DigiUSB) упоминается на одном форуме как обходной путь. Однако при таком способе связи отправка и получение осуществляются с помощью скриптов Python. Если вам нужен аппаратный USB в том же формате платы, вы можете попробовать платы «Beetle» на базе ATMega32U4, доступные на ebay за ~ 5 долларов США., @ex-punctis

Не используйте DigiUSB! Он устарел, используя старый *usblib0* (новый - libusb-1.0) и очень нефункциональный libusb-win32. Кроме того, если вы используете это, вы должны быть осторожны, чтобы не перезаписать внутренний V-USB, возможно, отключив свой собственный через некоторое время. Судя по всему, DigiCDC является продолжением этого., @not2qubit

@ not2qubit: я не понимаю. Что такое DigiUSB? Как я это использую? На самом деле я вообще не понимаю, что вы пишите. Что я делаю неправильно, и что я могу сделать вместо этого?, @hpekristiansen

Из [DigiUSB] (https://digistump.com/wiki/digispark/tutorials/digiusb): «Эта библиотека устарела в пользу:» [DigiCDC] (https://digistump.com/wiki/digispark/tutorials). /digicdc). «С DigiCDC Digispark будет отображаться как COM-порт, и последовательный монитор Arduino можно будет использовать в обычном режиме. DigiUSB требует связи с Digispark через отдельное приложение., @not2qubit

@not2qubit: Хорошо, теперь я пришел к выводу, что вы вообще не читали мой вопрос и понятия не имеете о проблеме на Mac., @hpekristiansen

Ой, извините, я просто отвечал на комментарии выше. У вас есть lsof на Mac? Если это так, попробуйте lsof |grep "/dev/cu.usbmodem1411". Теоретически он должен показать вам, какой процесс использует это устройство. Вы также можете попробовать различные варианты ps., @not2qubit


1 ответ


1

SoftSerial и реальный последовательный порт на Mac будут работать. Или, если вы осторожны, используйте DigiKeyboard и распечатайте отладку на HID-клавиатуре, ПОМНЯ, чтобы переключиться на эквивалентное окно блокнота на Mac, чтобы получить и отобразить текст отладки и не перезаписать скетч Arduino по ошибке. DigiCDC — это кладж, который не работает должным образом в современных операционных системах, извините!

,

Спасибо за ваш вклад, но я не понимаю, что вы подразумеваете под «…настоящим последовательным портом на Mac…»? Вы имеете в виду что-то вроде этого https://plugable.com/2011/07/12/installing-a-usb-serial-adapter-on-mac-os-x/? О какой отладке вы говорите? HID работает отлично, но мне нужна последовательная связь от Digispark и *к*., @hpekristiansen

по-видимому, ни один современный Mac не имеет встроенного интерфейса RS232, поэтому вам понадобится интерфейс USB-RS232, как в той статье, на которую вы ссылаетесь. Есть несколько общих микросхем, которые используются в устройствах PL2303, CH340/CH341, FT232RL и так далее. Существует программная библиотека эмуляции последовательного порта, которая работает на платах Attiny85 digispark и использует 1 или 2 контакта ввода-вывода. Очевидно, программная эмуляция имеет определенные ограничения, но она работает адекватно. Serial часто используется для вывода отладочных сообщений с Arduino при разработке скетчей., @tech-head-uk