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.

, 👍0

Обсуждение

Появляются ли на этом компьютере какие-либо другие USB-устройства? Пробовали ли вы Arduino на другом компьютере (маловероятно, что оба неисправны, но...) Arduino также не отображаются в каталоге /dev/?, @JRobert

Да, USB работает нормально. На данный момент я занимаюсь разработкой с другим ардуино, в котором есть USB-чип CH340, который отлично работает. Устройство не отображается в /dev: ls tty.* tty.Bluetooth-Входящий-Порт tty.serial1, @Jaroslav

CH340 имеет собственный драйвер, а ATmega16u2 работает со стандартным стеком USB. Возможно, это несовместимость с вашим хакинтошем, поэтому было бы интересно, если бы вы могли попробовать это на настоящем Mac. (Я не уверен, разрешит ли магазин Apple или дилер вам подключить Arduino к Mac в их магазине, но спросить не помешает)., @microtherion

@microtherion Я работаю с ардуино на своем макбуке, но у него еще есть йосемит, и я боюсь его обновлять, потому что тогда у меня не будет возможности программировать свои ардуино. PS. На этом же хакинтоше работало, пока не использовал yosemite (с химерой), сейчас поставил el capitan (и перешел на clover) и тут начались проблемы :(, @Jaroslav


3 ответа


Лучший ответ:

0

Через два месяца я наконец нашел решение. Проблема была с драйверами USB для моего хакинтоша. Несколько дней назад был выпущен новый Multibeast 8.1 с новыми драйверами USB. После установки обновления El Capitan 10.11.4, а затем установки USB-драйверов от Multibeast, мои Arduino снова волшебным образом заработали!

,

3

Вы можете использовать мой скетч детектора микросхем для подтверждения (используя другой Arduino для запуска скетча) является ли целевой чип Atmega16u2 или нет, и если да, то какие предохранители и т. д. установлены.

Подключение будет таким:

Подключение к Atmega16u2

Крупный план:

Подключение крупным планом

Заголовок ICSP (сверху):

Заголовок 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


1

На сайте Arduino есть полная документация, я выполнил все шаги и смог установить драйвер

https://support .arduino.cc/hc/en-us/articles/4408887452434-Flash-USB-to-serial-firmware-in-DFU-mode

,

Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится., @sempaiscuba