Как запустить новый ATMEGA168PA

Arduino Nano v2

Это строка из библиотеки Encoder. У меня энкодер работал на прерываниях, а теперь почему-то не хочет, говорит что якобы у 168P нет прерываний. Хотя судя по даташиту они должны быть.

Видимо какая то кривая библиотека. Ссылку бы ?

Да, библиотека действительно кривая. Попробовал скомпилировать простой скетч с прерываниями - скомпилировался нормально. Сейчас поковыряюсь в библиотеке, скорей всего там просто какой-нибудь список доступных контроллеров, в котором нет ATmega168P
Ссылка на библиотеку GitHub - PaulStoffregen/Encoder: Quadrature Encoder Library for Arduino
P.S. Скорей всего вот здесь: utility/interrupt_pins.h - я не нашел ATmega168P, есть просто ATmega168 и ATmega168PB

interrupt_pins.h 35 строка

1 лайк

Да, добавил в нее
||defined(__AVR_ATmega168P__)
и скетч скомпилировался, залился и работает.

Всем ОГРОМНОЕ СПАСИБО за участие! Очень многое для себя узнал.

Тоже сначала (по незнанию, наверное, больше) использовал для энкодера внешние прерывания.
А потом по совету @anonimSimen (или по другому - на его примере) начал через прерывания таймера обрабатывать и в результате “жить, как говорится, - хорошо!” :slight_smile:

Ребята помогите разобраться с MEGA168PA (кварц 12 МГц), инфа:
BN: Unknown board
VID: 0x1A86
PID: 0x7523
SN: (null)

Загрузка скетча в Arduino IDE выдаёт ошибку:

avrdude: Version 7.2-arduino.1
         Copyright the AVRDUDE authors;
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

         System wide configuration file is C:\Users\Aqel\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1\avrdude.conf

         Using Port                    : COM3
         Using Programmer              : urclock
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega168P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                 65    20     4    0 no        512    4      0  3600  3600 0x00 0x00
           flash                  65    10   128    0 yes     16384  128    128  4500  4500 0x00 0x00
           lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           efuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
           calibration             0     0     0    0 no          1    1      0     0     0 0x00 0x00

         Programmer Type : Urclock
         Description     : Urclock programmer for urboot bootloaders using urprotocol
         Urboot protocol for ATtiny4
avrdude urclock_res_check() error: protocol expects sync byte 0xe0 but got 0x00 in urclock_program_enable()
avrdude main() error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower the bit clock frequency, e.g. -B 125kHz
        - use -F to override this check
avrdude urclock_disable() error: protocol expects OK byte 0x00 but got 0xe0

avrdude done.  Thank you.

Failed uploading: uploading error: exit status 1

Грешу на загрузчик (как писали выше мигает светодиод), если пытаюсь прошить загрузчик:

avrdude: Version 7.2-arduino.1
         Copyright the AVRDUDE authors;
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

         System wide configuration file is C:\Users\Aqel\AppData\Local\Arduino15\packages\MiniCore\hardware\avr\3.0.1\avrdude.conf

         Using Port                    : COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
avrdude stk500_getsync() warning: attempt 1 of 10: not in sync: resp=0x60
avrdude stk500_getsync() warning: attempt 2 of 10: not in sync: resp=0x66
avrdude stk500_getsync() warning: attempt 3 of 10: not in sync: resp=0x9e
avrdude stk500_getsync() warning: attempt 4 of 10: not in sync: resp=0x66
avrdude stk500_getsync() warning: attempt 5 of 10: not in sync: resp=0x06
avrdude stk500_getsync() warning: attempt 6 of 10: not in sync: resp=0x18
avrdude stk500_getsync() warning: attempt 7 of 10: not in sync: resp=0x78
avrdude stk500_getsync() warning: attempt 8 of 10: not in sync: resp=0x66
avrdude stk500_getsync() warning: attempt 9 of 10: not in sync: resp=0x86
avrdude stk500_getsync() warning: attempt 10 of 10: not in sync: resp=0x7e
avrdude main() error: unable to open programmer stk500v1 on port COM3

avrdude done.  Thank you.

Failed chip erase: uploading error: exit status 1

Как запустить в работу её?

PS: в Arduino IDE установлена MiniCore и выставлен кварц на 12 МГц, пробовал загрузить скетч/загрузчик и через стандартные плату 168…

сначала через программатор через ISP записать загрузчик

Есть USBasp, но мне бы хоть какую инструкцию, что бы ардуино не запороть?

Подключить программатор к разъему ISP на самой плате, выбрать нужную плату и нужные опции платы в Arduino IDE, нажать на “Записать загрузчик”

ЗЫ: после записи загрузчика для атмеги 168p из мини-коре снова записать загрузчик из штатного пакета не выйдет ))

Откуда у вас эта плата? Что это за плата? Кварц 12 МГц точно от 168 ?
Обычно 12 МГц это USB-UART

  • плату купил у китайцев с Алика,
  • кварц на ней стоит 12 МГц,
  • да? на USBasp тоже на 12 МГц кварц.

Я уже прошил загрузчик (через USBasp) и скетчи нормально грузятся в неё.
Благодарю за подсказки! :slight_smile:

Arduino Nano.

Не встречал нанки с 12 МГц. Может действительно спутали с кварцем на USB-TTL ? Там действительно стоит 12 МГц

Если вы прошили загрузчик с меньшей частотой, то скетчи будут заливаться, но работать будут с неправильными временными интервалами

1 лайк

я думаю фото нанки разрешит все сомнения

1 лайк

Пожлста…


…кварц на второй внизу видно 12 МГц

Ну гипотетически правильно написано: и кварц и, что на 12МГц. Вот только атмега подключена к керамическому резонатору и он на первой картинке и он на 16(8)МГц. А ведь хотел ещё в начале темы спросить, но думал что самолепная плата :slightly_smiling_face:

1 лайк