Не могу запрограммировать Atmega1284p с Arduino на Linux, работает на Mac

Эта проблема сводит меня с ума. Я работаю над проектом с некоторыми другими парнями, которые создали электронику. У нас есть кастомные доски с атмега 1284р. Для связи USB с 1284p мы используем FTDI FT230X USB Bridge. Это не имеет DTR; RTS используется для сброса платы с помощью конденсатора (почти как с готовых Arduinos).

Используется загрузчик arduino, и мы используем mighty-1284p для загрузки. Выбранная плата "Original Mighty 1284p 8MHz". После установки правильных драйверов FTDI с http://www.ftdichip.com/Drivers/VCP.htm я могу загрузить их на плату с Mac. В Linux эти драйверы встроены в ядро. Тем не менее, я не могу загрузить на доску. AVR выдает следующую ошибку:

avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30]   [20]

Dmesg дает следующее:

...
[   51.299964] usbcore: registered new interface driver ftdi_sio
[   51.300088] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
...

и lspci:

...
Bus 001 Device 006: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
...

Настройки для компьютеров Mac и Linux идентичны. На обоих я использую arduino 1.0.5. Оба видят правильный последовательный порт.

Я видел много сообщений на этом форуме с похожими проблемами, но еще не нашел ни одного с решением, которое работает для меня. Удержание сброса или нажатие на него перед загрузкой не работает. Как предлагалось на некоторых форумах, я пытался удалить brltty безрезультатно. Я попытался загрузить с помощью Arduino IDE, Eclipse с плагином AVR и AVR через командную строку. Никто не будет работать. Я пробовал это на разных машинах с разными версиями Ubuntu, и загрузка не работает ни на одной из них. Добавление -c arduino к команде avrdude тоже не помогает. Любые идеи о том, как это исправить?

Мой пользователь является частью группы дозвона, и я могу загружать на другие платы Arduino (например, duemilanove) без проблем.

Этот вопрос изначально задавался здесь: http://forum.arduino.cc/index.php?topic=244363

2 ответа

Вы упомянули Ubuntu; ты делаешь это как обычный пользователь?

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

Вы можете сделать это так:

sudo usermod -a -G dialout yourself

затем (самый простой) выход и снова войдите в систему.

Тем не менее, возможно, что это называется что-то другое, чем dialout в последней Ubuntu я не проверял. Я могу подтвердить, что это все еще dialout здесь, на Debian Wheezy.

(хотя это немного странно, если это работает; обычно вместо этого вы получаете ошибку разрешения...)

Я знаю, что это довольно старый вопрос, но в дополнение к проблеме группы набора номера у меня были проблемы с ModemManager, опрашивающим все, что похоже на последовательный порт (и, в частности, портит программистов, потому что они не ожидают этих байтов). Я не знаю, происходит ли это в вашем случае, но это стоит попробовать для других, кто оказывается здесь.

Я просто удалил его полностью (это большой молоток, возможно, лучше временно отключить его...):

      sudo apt-get remove modemmanager

Если вы хотите попробовать отключить его, возможно:

      sudo systemctl stop ModemManager.service
Другие вопросы по тегам