Arduino Uno R3 (с Atmega 16u2) и MAC OSX 10.11 (El Capitan) не работают
У меня есть китайская копия ардуино, использующая ATmega16u2 (по крайней мере, так написано на самом чипе). При подключении он отображается в системной информации в разделе USB:
Устройство связи:
Идентификатор продукта: 0x0043
Идентификатор поставщика: 0x2341
Версия: 0.01
Серийный номер: 75237333636351600270
Скорость: до 12 МБ/с
Производитель: Arduino (www.arduino.cc)
Идентификатор местоположения: 0x1a140000/6
Доступный ток (мА): 1000
Требуемый ток (мА): 100
Дополнительный рабочий ток (мА): 0
Встроенный: Да
Но он не отображается в портах программы arduino.
Я много искал, и кажется, что у людей в основном были проблемы с ардуино на чипах CH340. У меня тоже есть такая ардуино, но она нормально работает после установки подписанных драйверов как описан здесь.
Есть ли решения для чипов atmega 16u2?
Моя система:
- OS X El Capitan 10.11.2 (15C50) (хакинтош, если что-то изменится).
- Arduino Uno R3 (китайская копия)
- Программное обеспечение Arduino версии 1.6.7
Дополнительная информация: Пробовал подключить Arduino Mega 2560 с чипом Atmega16u2, тоже не работает
Информация, которую я получил, используя потрясающую программу Ника:
Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jan 8 2016 at 21:35:08 with Arduino IDE 10607.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384 bytes.
LFuse = 0xFF
HFuse = 0xD9
EFuse = 0xF4
Lock byte = 0xFF
Clock calibration = 0x56
Bootloader in use: No
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 4096 bytes starting at 3000
Bootloader:
3000: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
3010: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
3020: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
...
MD5 sum of bootloader = 0x6A 0xE5 0x9E 0x64 0x85 0x03 0x77 0xEE 0x54 0x70 0xC8 0x54 0x76 0x15 0x51 0xEA
No bootloader (all 0xFF)
First 256 bytes of program memory:
0: 0x90 0xC0 0x00 0x00 0xA9 0xC0 0x00 0x00 0xA7 0xC0 0x00 0x00 0xA5 0xC0 0x00 0x00
10: 0xA3 0xC0 0x00 0x00 0xA1 0xC0 0x00 0x00 0x9F 0xC0 0x00 0x00 0x9D 0xC0 0x00 0x00
20: 0x9B 0xC0 0x00 0x00 0x99 0xC0 0x00 0x00 0x97 0xC0 0x00 0x00 0x48 0xC4 0x00 0x00
30: 0x0C 0xC4 0x00 0x00 0x91 0xC0 0x00 0x00 0x8F 0xC0 0x00 0x00 0x8D 0xC0 0x00 0x00
40: 0x8B 0xC0 0x00 0x00 0x89 0xC0 0x00 0x00 0x87 0xC0 0x00 0x00 0x85 0xC0 0x00 0x00
50: 0x83 0xC0 0x00 0x00 0x81 0xC0 0x00 0x00 0x7F 0xC0 0x00 0x00 0x02 0xC1 0x00 0x00
60: 0x7B 0xC0 0x00 0x00 0x79 0xC0 0x00 0x00 0x77 0xC0 0x00 0x00 0x75 0xC0 0x00 0x00
70: 0x73 0xC0 0x00 0x00 0x71 0xC0 0x00 0x00 0x6F 0xC0 0x00 0x00 0x6D 0xC0 0x00 0x00
80: 0x6B 0xC0 0x00 0x00 0x69 0xC0 0x00 0x00 0x67 0xC0 0x00 0x00 0x65 0xC0 0x00 0x00
90: 0x63 0xC0 0x00 0x00 0x61 0xC0 0x00 0x00 0x12 0x01 0x10 0x01 0x02 0x00 0x00 0x08
A0: 0x41 0x23 0x43 0x00 0x01 0x00 0x01 0x02 0xDC 0x01 0x09 0x02 0x3E 0x00 0x02 0x01
B0: 0x00 0xC0 0x32 0x09 0x04 0x00 0x00 0x01 0x02 0x02 0x01 0x00 0x05 0x24 0x00 0x01
C0: 0x10 0x04 0x24 0x02 0x06 0x05 0x24 0x06 0x00 0x01 0x07 0x05 0x82 0x03 0x08 0x00
D0: 0xFF 0x09 0x04 0x01 0x00 0x02 0x0A 0x00 0x00 0x00 0x07 0x05 0x04 0x02 0x40 0x00
E0: 0x01 0x07 0x05 0x83 0x02 0x40 0x00 0x01 0x04 0x03 0x09 0x04 0x32 0x03 0x41 0x00
F0: 0x72 0x00 0x64 0x00 0x75 0x00 0x69 0x00 0x6E 0x00 0x6F 0x00 0x20 0x00 0x28 0x00
Programming mode off.
Информация о предохранителях:
Atmega fuse calculator.
Written by Nick Gammon.
Version 1.10
Compiled on Jan 8 2016 at 22:19:34 with Arduino IDE 10607.
Attempting to enter programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384
LFuse = 0xFF
HFuse = 0xD9
EFuse = 0xF4
Lock byte = 0xFF
Clock calibration = 0x56
Hardare Boot Enable..................... [X]
Debug Wire Enable....................... [ ]
External Reset Disable.................. [ ]
Enable Serial (ICSP) Programming........ [X]
Watchdog Timer Always On................ [ ]
Preserve EEPROM through chip erase...... [ ]
Boot into bootloader.................... [ ]
Divide clock by 8....................... [ ]
Clock output............................ [ ]
Bootloader size: 4096 bytes.
Start-up time: SUT0: [ ] SUT1: [ ] (see datasheet)
Clock source: low-power crystal.
Brownout detection at: 3.0V.
@Jaroslav, 👍0
Обсуждение3 ответа
Лучший ответ:
Через два месяца я наконец нашел решение. Проблема была с драйверами USB для моего хакинтоша. Несколько дней назад был выпущен новый Multibeast 8.1 с новыми драйверами USB. После установки обновления El Capitan 10.11.4, а затем установки USB-драйверов от Multibeast, мои Arduino снова волшебным образом заработали!
Вы можете использовать мой скетч детектора микросхем для подтверждения (используя другой Arduino для запуска скетча) является ли целевой чип Atmega16u2 или нет, и если да, то какие предохранители и т. д. установлены.
Подключение будет таким:
Крупный план:
Заголовок ICSP (сверху):
Вы должны увидеть что-то вроде этого:
Atmega chip detector.
Written by Nick Gammon.
Version 1.17
Compiled on Jan 3 2016 at 07:34:08 with Arduino IDE 10605.
Attempting to enter ICSP programming mode ...
Entered programming mode OK.
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384 bytes.
LFuse = 0xEF
HFuse = 0xD9
EFuse = 0xF4
Lock byte = 0xCF
Clock calibration = 0x96
Bootloader in use: No
EEPROM preserved through erase: No
Watchdog timer always on: No
Bootloader is 4096 bytes starting at 3000
Bootloader:
3000: 0x4B 0xC0 0x00 0x00 0x64 0xC0 0x00 0x00 0x62 0xC0 0x00 0x00 0x60 0xC0 0x00 0x00
3010: 0x5E 0xC0 0x00 0x00 0x5C 0xC0 0x00 0x00 0x5A 0xC0 0x00 0x00 0x58 0xC0 0x00 0x00
3020: 0x56 0xC0 0x00 0x00 0x54 0xC0 0x00 0x00 0x52 0xC0 0x00 0x00 0xEE 0xC4 0x00 0x00
...
MD5 sum of bootloader = 0xD8 0x8C 0x70 0x6D 0xFE 0x1F 0xDC 0x38 0x82 0x1E 0xCE 0xAE 0x23 0xB2 0xE6 0xE7
Bootloader name: Arduino-dfu-usbserial-atmega16u2-Uno-Rev3
First 256 bytes of program memory:
0: 0x90 0xC0 0x00 0x00 0xA9 0xC0 0x00 0x00 0xA7 0xC0 0x00 0x00 0xA5 0xC0 0x00 0x00
10: 0xA3 0xC0 0x00 0x00 0xA1 0xC0 0x00 0x00 0x9F 0xC0 0x00 0x00 0x9D 0xC0 0x00 0x00
20: 0x9B 0xC0 0x00 0x00 0x99 0xC0 0x00 0x00 0x97 0xC0 0x00 0x00 0x48 0xC4 0x00 0x00
30: 0x0C 0xC4 0x00 0x00 0x91 0xC0 0x00 0x00 0x8F 0xC0 0x00 0x00 0x8D 0xC0 0x00 0x00
40: 0x8B 0xC0 0x00 0x00 0x89 0xC0 0x00 0x00 0x87 0xC0 0x00 0x00 0x85 0xC0 0x00 0x00
50: 0x83 0xC0 0x00 0x00 0x81 0xC0 0x00 0x00 0x7F 0xC0 0x00 0x00 0x02 0xC1 0x00 0x00
60: 0x7B 0xC0 0x00 0x00 0x79 0xC0 0x00 0x00 0x77 0xC0 0x00 0x00 0x75 0xC0 0x00 0x00
70: 0x73 0xC0 0x00 0x00 0x71 0xC0 0x00 0x00 0x6F 0xC0 0x00 0x00 0x6D 0xC0 0x00 0x00
80: 0x6B 0xC0 0x00 0x00 0x69 0xC0 0x00 0x00 0x67 0xC0 0x00 0x00 0x65 0xC0 0x00 0x00
90: 0x63 0xC0 0x00 0x00 0x61 0xC0 0x00 0x00 0x12 0x01 0x10 0x01 0x02 0x00 0x00 0x08
A0: 0x41 0x23 0x43 0x00 0x01 0x00 0x01 0x02 0xDC 0x01 0x09 0x02 0x3E 0x00 0x02 0x01
B0: 0x00 0xC0 0x32 0x09 0x04 0x00 0x00 0x01 0x02 0x02 0x01 0x00 0x05 0x24 0x00 0x01
C0: 0x10 0x04 0x24 0x02 0x06 0x05 0x24 0x06 0x00 0x01 0x07 0x05 0x82 0x03 0x08 0x00
D0: 0xFF 0x09 0x04 0x01 0x00 0x02 0x0A 0x00 0x00 0x00 0x07 0x05 0x04 0x02 0x40 0x00
E0: 0x01 0x07 0x05 0x83 0x02 0x40 0x00 0x01 0x04 0x03 0x09 0x04 0x32 0x03 0x41 0x00
F0: 0x72 0x00 0x64 0x00 0x75 0x00 0x69 0x00 0x6E 0x00 0x6F 0x00 0x20 0x00 0x28 0x00
Programming mode off.
На моем подлинном Uno я получаю следующие настройки из OS/X:
Product ID: 0x0043
Vendor ID: 0x2341
Version: 0.01
Serial Number: 74134373733351300000
Speed: Up to 12 Mb/sec
Manufacturer: Arduino (www.arduino.cc)
Location ID: 0xfd130000 / 8
Current Available (mA): 500
Current Required (mA): 100
У меня не было проблем с использованием Uno с OS/X, однако я не помню, нужно ли было устанавливать для него драйвер устройства.
Информация, которую я получил, используя потрясающую программу Ника:
...
Signature = 0x1E 0x94 0x89
Processor = ATmega16U2
Flash memory size = 16384 bytes.
LFuse = 0xFF
HFuse = 0xD9
EFuse = 0xF4
...
Bootloader:
3000: 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF
....
MD5 sum of bootloader = 0x6A 0xE5 0x9E 0x64 0x85 0x03 0x77 0xEE 0x54 0x70 0xC8 0x54 0x76 0x15 0x51 0xEA
No bootloader (all 0xFF)
Интересно, что на ATmega16U2 они поставляются без загрузчика. Хотя этому чипу он не нужен (и он отключен предохранителями в моем), очевидно, что есть некоторые различия. Я проверил "первые 256 байт" кода между вашей платой и моей, и они совпадают, поэтому, возможно, основной код идентичен.
Я бы попробовал подключить Arduino к другому Mac, если это возможно. Возможно, ваш «хакинтош» имеет достаточно отличий в загружаемом программном обеспечении, чтобы не распознать этот USB-интерфейс.
Спасибо за ответ. Я проверил вашу ссылку, и насколько я понял, если я подключу его, как показано на картинках, я получу информацию о чипе Atmega328p. Как его подключить, чтобы получить инфу от чипа для работы с usb (Atmega16u2)? PS. В более старых версиях Mac OS X он работал безупречно и без каких-либо драйверов,, @Jaroslav
Смотрите изображения в исправленном ответе., @Nick Gammon
Сделал сегодня кабель и вот что выяснил: чип ATmega16U2, но настроен немного по другому. Вот что я получил. Может быть, Вы можете сказать что-то из журнала? Я добавил в свой вопрос., @Jaroslav
См. измененный ответ., @Nick Gammon
Он работает на моем MacBook, но использует Yosemite (10.10), а не El Capitan. И теперь я не могу его обновить, потому что если проблема в Эль-Капитане, то я останусь без возможности программировать свои ардуины :(, @Jaroslav
На сайте Arduino есть полная документация, я выполнил все шаги и смог установить драйвер
https://support .arduino.cc/hc/en-us/articles/4408887452434-Flash-USB-to-serial-firmware-in-DFU-mode
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится., @sempaiscuba
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Как очистить буфер FIFO на MPU6050?
- Элегантное решение для обновления содержимого TFT-дисплея
- Считывание нескольких поворотных энкодеров
Появляются ли на этом компьютере какие-либо другие USB-устройства? Пробовали ли вы Arduino на другом компьютере (маловероятно, что оба неисправны, но...) Arduino также не отображаются в каталоге /dev/?, @JRobert
Да, USB работает нормально. На данный момент я занимаюсь разработкой с другим ардуино, в котором есть USB-чип CH340, который отлично работает. Устройство не отображается в /dev:
ls tty.* tty.Bluetooth-Входящий-Порт tty.serial1
, @JaroslavCH340 имеет собственный драйвер, а ATmega16u2 работает со стандартным стеком USB. Возможно, это несовместимость с вашим хакинтошем, поэтому было бы интересно, если бы вы могли попробовать это на настоящем Mac. (Я не уверен, разрешит ли магазин Apple или дилер вам подключить Arduino к Mac в их магазине, но спросить не помешает)., @microtherion
@microtherion Я работаю с ардуино на своем макбуке, но у него еще есть йосемит, и я боюсь его обновлять, потому что тогда у меня не будет возможности программировать свои ардуино. PS. На этом же хакинтоше работало, пока не использовал yosemite (с химерой), сейчас поставил el capitan (и перешел на clover) и тут начались проблемы :(, @Jaroslav