Не могу запрограммировать 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