Я хочу использовать несколько ATmega88 с загрузчиками Arduino, чтобы действовать как шаговые драйверы I2C и контроллеры температуры, которые будут взаимодействовать с Raspberry Pi. Дело в том, что кажется, что RPi взаимодействует с 3,3 В, поэтому мне нужно запустить ATmega на 3,3 В вместо 5 В, чтобы не повредить RPi без необходимости переключения уровня, или я буду в порядке при 5 В, пока ATmega действуют как рабы (я читал что-то подобное, но я не знаю, так ли это)?
Если мне все еще нужно использовать 3,3 В, смогу ли я сделать это с помощью внутренних часов или мне придется использовать внешние часы? Кроме того, я все еще смогу прошить загрузчик на ATmegas, используя существующий Arduino с более низким напряжением (у меня есть ощущение, что это может повлиять на скорость связи, но я не уверен, что это так). При необходимости я, вероятно, мог бы сначала запустить ATmega на 5 В только для прошивки загрузчика, но я также не уверен, что это сработает.
Я знаю, что, вероятно, усложняю себе жизнь, не используя переключатели уровней и т. д., но я хочу использовать минимум компонентов для этого проекта. Кроме того, если 3,3 В влияет на связь, повлияет ли это на мой интерфейс I2C?
Да, вы можете использовать внутренние часы с Mega88 + Arduino.
Для этого вам нужно записать загрузчик по-другому:
если вы используете AVRDUDE для прошивки загрузчика, измените настройки предохранителей, как показано ниже:
# fuses for 8MHz internal RC Oscillator
avrdude -e -U lock:w:0x3f:m -U lfuse:w:0xd4:m -U hfuse:w:0xca:m
Измените настройки в вашей среде Arduino (preferences.txt)
change build.f_cpu=16000000L
to build.f_cpu=8000000L
Отредактируйте make-файл:
In <arduino>/lib/targets/arduino edit makefile
change F_CPU = 16000000
to F_CPU = 8000000
Вам понадобится загрузчик для ATMega88 с опцией внутренних часов 8 МГц. Вы все еще можете прошить его с помощью обычной платы Arduino 5v. Фактически, некоторые официальные Arduino, такие как lilypad, используют внутренние часы 8 МГц при стандартном напряжении 3,3 В.
Что касается интерфейса, линия ATmega обычно требует VCC * 0,6 для высокого логического уровня, который при 5v VCC равен 3v. Вы можете без проблем подключить RPI к 5-вольтовому Arduino с помощью только односторонней связи. Вы можете использовать диод, обращенный к RPI. На уровнях сигнала диод не будет сильно падать, хотя германиевые или диоды Шоттки могут быть лучше обычных кремниевых диодов.
Поскольку это i2c, система с открытым коллектором, вы просто используете подтягивающие устройства, подключенные к источнику питания 3,3 В, вместо обычного источника питания 5 В. Arduino все еще должен прочитать это без проблем.
Игнасио Васкес-Абрамс
Герхард
Игнасио Васкес-Абрамс
Герхард
Игнасио Васкес-Абрамс