Нужна помощь ATtiny85 не работает как автономный

У меня есть ATTiny85, которым я хочу управлять сервоприводом. Записал загрузчик на ATTiny85, и я использую макетную плату HW-260 для программирования и тестирования кода. Хотя ATTiny85 отлично работает на макетной плате HW-260, я не могу заставить его работать отдельно на макетной плате при тестировании с сервоприводом с помощью библиотеки Adafruit_SoftServo и примера с миганием. Пробовал добавить подтягивающий резистор 4,7 кОм к PB5, чтобы предотвратить сброс ATTiny85, но результат тот же. Пробовал запитать автономный макет с помощью батарейки 3 В, USB 5 В, повербанка 5 В и ничего. Это сервокод, который я использую:

Adafruit_SoftServo myservo;
int pos = 0;
void setup() {
  myservo.attach(PB0);
}
void loop() {
  for (pos = 0; pos <= 180; pos += 1) {
    myservo.write(pos);
    myservo.refresh();
    delay(15);
  }
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);
    myservo.refresh();
    delay(15);
  }
}

Блинк-код, который я использую, взят из примеров, я просто меняю выходной контакт на PB1. Если я ненадолго подключу PB5 к земле, я заставлю сервопривод немного повернуться в случайном направлении. Измерил и макетка не проблема, вроде все подключено правильно.

Это загрузчик, который я использовал https://github.com/ashishchoudhary9998/ATtiny85-Boot-loader.

ОБНОВЛЕНИЕ: Это схема платы HW-260.

Это мой макет

, 👍1

Обсуждение

Добро пожаловать в SE/Arduino! Пожалуйста, посетите [тур], чтобы узнать, как работает этот сайт. Вы также можете прочитать «[спросить]» и кое-что из [помощи]. -- Если на отладочной плате одна и та же программа работает, а на вашей плате нет, нужно выяснить отличия. Пожалуйста, [отредактируйте] свой вопрос и добавьте схемы (или, по крайней мере, соответствующие их части) для обоих., @the busybee

спасибо @thebusybee, я отредактировал вопрос и добавил схемы., @aceschwartz

Относительно примера Blinky, работающего на HW-260, а не на вашей плате, разница только в одном: PB3 подтянут на 1к5. Не могли бы вы добавить это на свою плату и повторить попытку, пожалуйста? И что вы видите с Blinky на вашей плате, полностью выключенным светодиодом, полностью включенным светодиодом или чем-то средним? Кстати, у вас есть осциллограф?, @the busybee

@thebusybee, конечно, я попытаюсь вытащить PB3 прямо сейчас и дам вам знать, каков будет результат. у меня нет осциллографа :( спасибо за попытку помочь мне., @aceschwartz

@thebusybee работает :) добавление подтягивающего резистора к PB3 решает проблему, и код работает отлично. большое спасибо. Кстати, текущая прошивка (загрузчик) имеет некоторую задержку, я измерил задержку в 5-6 секунд, прежде чем код начнет работать. не могли бы вы добавить свой комментарий в качестве ответа, чтобы я мог пометить его как решение?, @aceschwartz


1 ответ


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

1

После добавления схем можно заметить разницу:

PB3 нуждается в подтягивании, на отладочной плате у него 1,5 кОм. Этот резистор является частью стандарта USB и сигнализирует "низкоскоростное устройство". Предположительно (поскольку исходный код не указан) загрузчик вообще нуждается в этом для запуска.

Задержка, упомянутая в комментарии, типична для разработки ATtiny85. Из-за малого количества контактов загрузчик запускается и несколько секунд ожидает подключения ПК. Если соединение не установлено, запускается программа пользователя. Затем он может использовать все контакты в своих целях.

,