Автономный ATmega328P перестает отвечать на запросы при подключении RX
Я следил за этой демонстрацией и настроил автономный ATmega328P, программируемый с Raspberry Pi через линии SPI. Я также добавил кристалл 16 МГц с конденсаторами 22 пФ, а также включил и настроил I2C между ATmega и Raspberry Pi.
Я скомпилировал и загрузил кучу программ, и я могу подтвердить, что все работает так, как ожидалось.
Как вы можете себе представить, довольно сложно отлаживать вещи без последовательного подключения, поэтому я подключил вывод 2 ATmega к GPIO14 Raspberry Pi, а вывод 3 - к GPIO15. На данный момент, когда я пытаюсь загрузить программу, я получаю следующее:
$ avrdude -P /dev/spidev0.0 -c linuxspi -p m328p -U flash:w:build-uno/program.hex
avrdude: error: AVR device not responding
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Если я разорву соединение pin2 с GPIO14, то моя программа будет загружена. И если я восстановлю соединение между контактами и открою Minicom на Raspberry Pi, я увижу результат моей простой программы:
void setup() {
Serial.begin(9600);
}
void loop() {
delay(1000);
Serial.println("Echo Test");
}
$ minicom -b 9600 -o -D /dev/ttyS0
Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyS0, 16:50:17
Press CTRL-A Z for help on special keys
Echo Test
Echo Test
Echo Test
Echo Test
Но всякий раз, когда я нажимаю кнопку на клавиатуре (внутри Minicom), я замечаю, что ATmega сбрасывается. Если я удерживаю нажатой кнопку, передача "Echo Test" прерывается, так как она быстро сбрасывается.
Как я могу заставить serial функционировать должным образом?
Добавление:
Я использую Raspberry Pi 4, и в raspi-config я отключил последовательный вход в систему и оставил последовательное оборудование включенным.
@php_nub_qq, 👍1
1 ответ
Лучший ответ:
В этой демонстрации со схемой не так две вещи.
- На выводах питания отсутствует развязывающий конденсатор. Это необходимо для поддержания стабильной мощности во время работы.
- Что еще более важно: он питается от 3,3 В, но работает на частоте 16 МГц. Это выходит за рамки технических требований. Вы должны использовать кристалл с частотой 8 МГц для работы при напряжении 3,3 В.
- Arduino UARTS Автоматическая адресация ведомых устройств
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?
- Сторожевой таймер застрял в цикле перезапуска? (мигает зеленый светодиод)
- Как использовать Serial.setTimeout()
- Отправка последовательных данных в прерывании
- Отправить структуру через Serial
- Последовательная связь ESP8266 с ATMega328P
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
Спасибо, что указали, теперь я действительно вижу, что это никак не связано. Проголосовал против твоего, удалил мой., @Michel Keijzers
[Здесь](https://www.youtube.com/watch ?v= ItajO0_ehuo & t = 83s) - это еще одно видео от того же создателя, которое показывает, что оно работает при 3,3В. Он использует
/dev/ttyAMA0
, который не работает в моем случае, так что что-то изменилось, но я не могу сказать, что именно. Я попробую добавить конденсатор емкостью 0,1 мкФ на вход, посмотрим, будет ли это иметь какое-либо значение., @php_nub_qqОн будет * работать * при напряжении 3,3 В, но не будет стабильным. Изменение имени последовательного порта связано с использованием другой версии Pi., @Majenko
Ну, в моем случае это не только нестабильно, но и просто не работает, думаю, тогда я просто назову это неудачным и продолжу отладку через i2c, пока не смогу установить лучшую настройку. Спасибо!, @php_nub_qq