Автономный 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 я отключил последовательный вход в систему и оставил последовательное оборудование включенным.

, 👍1


1 ответ


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

4

В этой демонстрации со схемой не так две вещи.

  1. На выводах питания отсутствует развязывающий конденсатор. Это необходимо для поддержания стабильной мощности во время работы.
  2. Что еще более важно: он питается от 3,3 В, но работает на частоте 16 МГц. Это выходит за рамки технических требований. Вы должны использовать кристалл с частотой 8 МГц для работы при напряжении 3,3 В.
,

Спасибо, что указали, теперь я действительно вижу, что это никак не связано. Проголосовал против твоего, удалил мой., @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