Прошивка MK через Arduino IDE
- Войдите на сайт для отправки комментариев
Ср, 23/12/2020 - 01:11
Стоит задача прошить скетч, работающий на Pro Mini, на голый МК, в данном случае Attiny861a. Пока пробую прошить тестовый blink. На С+ скетч прошивается и работает.
// 1.2 MHz (default) built in resonator #define F_CPU 1200000UL #include <avr/io.h> #include <util/delay.h> #define LED_BIT _BV(PB4) int main() { DDRB |= LED_BIT; // OUTPUT PORTB |= LED_BIT; while (1) { PORTB |= LED_BIT; // HIGH _delay_ms(1000); PORTB &= ~LED_BIT; // LOW _delay_ms(1000); } }
Тот же blink в ардуиновском варианте светодиодом не мигает.
void setup() { pinMode(PB4, OUTPUT); } void loop() { digitalWrite(PB4, HIGH); delay(500); digitalWrite(PB4, LOW); delay(500); }
Ядро отсюда. http://drazzy.com/package_drazzy.com_index.json
Оба варианта, прошитые таким же образом на Attiny13 работают нормально.
Что не так?
Стоит задача прошить скетч, работающий на Pro Mini, на голый МК, в данном случае Attiny861a.
а скетч для про мини скомпилится для Attiny861a ?
Да, скомпилировался. Но если даже blink не мигает, работу скетча не пытался проверять. Может надо другое ядро попробовать? Где еще можно взять?
Internal:
External crystal (all except 828, 43 and x8-family):
Стоит по умолчанию Internal 8MHz. На проблему это не влияет. С другими МК ардуиновский blink работает, сейчас проверил еще на ATmega88. Не работает именно на этом.
Стоит по умолчанию Internal 8MHz. На проблему это не влияет.
Вы, простите, пишете полную ерунду. Это у вас в ардуино ИДЕ стоит 8 МГц. А в чипе? - Вы проверяли?
Если у вас настройки тактирования в Иде и в чипе не совпадают - ничего прошиваться не будет. Не вижу, что за ошибка на скриншоте, но почти уверен, что аврдуде вам пишет, что чип не отвечает. Если так, то проблему вы описываете неверно - у вас проблема не в том. что "код не работает", а втом что он на чип не загружается. Это совершенно разные вещи.
Аврдуд стандартно пишет "avrdude: warning: cannot set sck period. please check for usbasp firmware update." Это он всегда пишет.
Иде пишет, что прошивка прошла. Главное, почему тогда прошивается и работает первый вариант на С+?
Иде пишет, что прошивка прошла. Главное, почему тогда прошивается и работает первый вариант на С+?
хм... а может потому, что у вас в коде на Си принудительно выставлена частота 12 МГц (судя по всему внешняя), а из Ардуино вы почему-то выбираете 8МГц внутренней...
А если выбрать и в Ардуино 12 МГц внешней?
Иде пишет, что прошивка прошла. Главное, почему тогда прошивается и работает первый вариант на С+?
хм... а может потому, что у вас в коде на Си принудительно выставлена частота 12 МГц (судя по всему внешняя), а из Ардуино вы почему-то выбираете 8МГц внутренней...
А если выбрать и в Ардуино 12 МГц внешней?
а написано 1.2 Mhz, нулики я не считал, таблицу и приложил, что нет в IDE поддержки такой скорости, но раз запрограммировал на 12 и внешний кварц, то не может он мигать, на этом пине у него как раз кварц, если не путаю ничего )))
ПУТАЮ у него PB4 отсутствует
ПУТАЮ у него PB4 отсутствует
в первом коде тоже PB4 - смотри внимательнее. И ТС утверждает, что этот код работает
ПУТАЮ у него PB4 отсутствует
в первом коде тоже PB4 - смотри внимательнее. И ТС утверждает, что этот код работает
а там еще системная LED может она подставляет что надо?
а там еще системная LED может она подставляет что надо?
нет там никакой "системной" LED, LED_BIT - это собственный дефайн автора кода, заданный в строке 7
Почему нет PB4? На седьмой ноге. И внешнего кварца никакого нет.
Почему нет PB4? На седьмой ноге. И внешнего кварца никакого нет.
да ошибся посмотрел, да не на ту (841), но с кристаллом не ошибся, нога кристалла )))
Вот так попробуйте:
Помогло. В чем прикол?
Помогло. В чем прикол?
ну значит ардуина не знает, что такое PB4
Помогло. В чем прикол?
ну значит ардуина не знает, что такое PB4
мы русские документацию не смотрим )))
с левой стороны картинки цветовая расцветка пинов ардуины
PS не одолев 85 решил не одолеть 861? может послушать совет Евгения и считать эти фьюзы
Посмотрел. Оказывается в этом ядре вместо PB4 надо писать PIN_PB4. Хоть бы ошибку выдало, зараза. Спасибо, это моя первая попытка перейти от ардуино на голый МК.
Пока разбирался с Attiny861, проект заработал на АТМега88. Но от PCINT пришлось отказаться.
Пока разбирался с Attiny861, проект заработал на АТМега88. Но от PCINT пришлось отказаться.
чей та? На голом МК пропали прерывания? :)
На голом МК пропали прерывания? :)
Украли. :)
Опа, чего я еще не знаю? Я в даташите на ATMega88 не вижу выводов PCINT. Только INT0, INT1.
Опа, чего я еще не знаю? Я в даташите на ATMega88 не вижу выводов PCINT. Только INT0, INT1.
даташит у Атмег88, 168 и 328 - общий. Вывод - если у 328-й PCINT есть, значит и у 88-й должны быть... я так думаю.
Упс, на странице ATMega88 у Чипидипа была ссылка https://static.chipdip.ru/lib/547/DOC005547852.pdf, а она про АТМега8. Ошибочка.
Опа, чего я еще не знаю? Я в даташите на ATMega88 не вижу выводов PCINT. Только INT0, INT1.
ты думаешь один, нас таких тут Легион )))