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
@hpekristiansen, 👍3
Обсуждение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
- Связь последовательного порта Digispark
- Mac не обнаруживает последовательный порт для Леонардо
- Digispark Micro (ATTINY85) не работает на Macbook Pro 2016 г.
- Как программировать микрочипы напрямую через USB
- Сборка последовательного адаптера RS485 к USB с помощью digispark
- Максимальная последовательная скорость CH340
- Библиотеки I2C для ATTiny85?
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
Я не знаю насчет 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