Автономный Atmega328p-pu не работает без внешнего кристалла - PullRequest
0 голосов
/ 15 января 2020

Недавно я купил несколько автономных Atmega328p-pu (только M C, а не плата Arduino). В то время я забыл купить кристалл 16 МГц, но, согласно многим источникам на inte rnet, я мог запустить его без кристалла. но это никогда не работало. Я использовал Arduino Nano в качестве программиста (с Arduino в качестве эскиза ISP). сделал следующие подключения.

Nano ---> Atmega328p-pu
D13       Pin 19 (SCK)
D12       Pin 18 (MISO)
D11       Pin 17 (MOSI)
D10       Pin 1  (RESET) (tried it with and without a pullup resistor to 5V).
5V        VCC

с этими подключениями, когда я пытаюсь записать загрузчик или загрузить эскиз с помощью программатора, моя загрузка не удалась. я получаю подпись устройства 0x000000. Я проверял это и на других MC, и ни один из них не работал. Несколько дней спустя я купил кристалл 16 МГц и подключил его, как показано ниже. (сохраняя прежние соединения, как они были).

Crystal Pin 1 ---> Pin 9  (XTAL 1)
Crystal Pin 2 ---> Pin 10 (XTAL 2)
22nF capacitor between the pins and ground

Только после этого сработал мой M C. я мог записать загрузчик и загрузить код в Atmega328p-pu, используя мой Nano в качестве программиста

Итак. вопрос почему Atmega328p-pu не работал без кристалла? Я видел видео на YouTube, где кристалл не использовался, а M C работал нормально.

Примечание: когда я говорю MC, я имею в виду другие Atmega328p-pu's

1 Ответ

0 голосов
/ 15 января 2020

Без внешних часов, вы можете просто иметь 8 МГц. С кристаллом вы получите 16 МГц.

Если вы используете тот из платы Arduino, он уже запрограммирован и не будет работать без кристалла (вы можете поместить любой кристалл для загрузки своего эскиза, с 100 кГц до 12 МГц).

Но важно, чтобы вы никогда не загружали эскиз с установленным флажком внешнего кристаллического предохранителя. Потому что в этот момент вам необходимо подключить кристалл к контактам 9–10 (также вручную), чтобы иметь возможность запустить / запрограммировать его снова.

В Arduino IDE установлены платы Arduino по умолчанию. Если у вас есть собственный AtMega328, вы должны установить эту плату: https://github.com/MCUdude/MiniCore

Тогда вы можете просто установить свои 328 с пользовательскими настройками кристалла: enter image description here

Если вы установите внутренний кристалл (ограниченный до 8 МГц), вы можете использовать контакты 9 и 10. для других целей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...