Искаженный serial на кастомной Arduino UNO
Я построил свой собственный Arduino UNO для школьноыукшго проекта. Я думаю, что у меня есть загрузчик USB и драйверы Windows, все они расположены, поскольку UNO отображается как UNO в диспетчере устройств. Когда я пытаюсь загрузить скетч, я получаю сообщение об ошибке: avrdude: stk500_getsync(): не синхронизировано: resp=0x10. (ранее я получил такое же сообщение с сообщением, заканчивающимся на resp=0x00)
Я загрузил программу последовательного эха с помощью ICSP и отправил сообщение "serial test" в UNO. Я получил это сообщение в ответ: {u{m}o¿wu{w
Может ли кто-нибудь помочь мне решить эту проблему, так как у меня закончились вещи для тестирования или изучения.
Заранее спасибо.
Редактировать: добавлены запрошенные изображения TX и RX. Они были сняты на контактах 0 и 1 заголовков. Прицел показал те же результаты на штифтах 328P, но я не мог одновременно управлять прицелом и держать щуп.
@user1362058, 👍1
Обсуждение2 ответа
Лучший ответ:
Извините за задержку. Я разместил этот вопрос на форуме EE, как и было предложено, и забыл вернуться сюда и закрыть его. Дело было в предохранителях. Моя первоначальная попытка настроить 16u2 пропустила этап, на котором я должен был заменить предохранители. Я думал, что это делается при загрузке прошивки, но ошибся.
Судя по снимку прицела, у вас проблема с заземлением. Все основания должны быть связаны между собой, даже размах. Похоже, что у вас есть псевдофантомное заземление через систему электропитания. Вы установили скорость передачи данных в uno с помощью Serial.begin (ваша скорость передачи данных);? Скорость должна быть одинаковой на обоих концах. Для проверки вы должны получить UNO и посмотреть, работает ли он, проблема в вашей плате. Также убедитесь, что Tx на UNO идет на RX на принимающей стороне и наоборот.
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
Можете ли вы получить правильную строку серийного номера, если вы используете другую скорость передачи данных?, @Gerben
Вы использовали существующие gerber-файлы или сами выкладывали?, @Ignacio Vazquez-Abrams
@Gerben Я перепробовал все скорости передачи, и ни одна не работает., @user1362058
@ IgnacioVazquez-Abrams Я сам сделал схему и печатную плату., @user1362058
Найдите осциллограф и подключите его к линиям TX и RX прямо на MCU. Основываясь на битовых шаблонах, я подозреваю, что на линиях много звона или шума., @Ignacio Vazquez-Abrams
Какой чип USB-to-Serial вы используете? ATMega8u2?, @Gerben
@ Гербен Нет, 16U2., @user1362058
@IgnacioVazquez-Abrams Scope результаты отредактированы в оригинальном посте., @user1362058
*HOLY CRAP.* Вам нужно решить эту проблему с последовательным подключением в [EE.SE](http://electronics.stackexchange.com/) *сейчас*., @Ignacio Vazquez-Abrams
@IgnacioVazquez-Abrams Неужели все так плохо?, @user1362058
После нахождения решения на EE.SE я рекомендую удалить этот вопрос отсюда, поскольку на самом деле он не связан с Arduino., @Ignacio Vazquez-Abrams
Может быть проблема с 16u2 или 328. Попробуйте соединить контакты 0 и 1 (Tx и RX) (также добавьте пустой скетч к 328). Попробуйте ввести в консоли. Если с 16u2 все в порядке, набранный текст должен быть возвращен обратно., @Gerben
Связанный: http://arduinoprosto.ru/q/17/some-dude-named-avr-wont-let-me-upload-my-program-aka-avrdude-stk500-getsync, @Anonymous Penguin
См. это сообщение. Там есть предложения по проверке различных вещей. Я подозреваю, что у вас может быть установлен предохранитель «делить часы на 8». Пожалуйста, опубликуйте свой тестовый код. Каков горизонтальный масштаб на этом изображении прицела?, @Nick Gammon