Проблема Arduino Pro Mini ниже BOD

Я планирую построить проект, где arduino pro mini 3.3V работает на двух батареях aa. Стандартное обнаружение коричневого цвета отключает его примерно на 2,7 /2,8 В, где он может работать и при более низких напряжениях. Поэтому я изменил efuse, чтобы BOD снизился до 1,8 В. Я подключил последовательный преобразователь к usb и использовал avrdude:

avrdude -c avrisp -p m328p -P COM5 -b 19200 -U lfuse:w:0xff:m -U hfuse:w:0xda:m -U efuse:w:0x06:m

Затем я попытался загрузить программу с использованием arduino 1.0.3 IDE, но я получил эту ошибку:

avrdude: stk500_getsync(): not in sync: resp=0x1c

С 1.6.4 я получил еще одну ошибку:

    avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x75
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

После некоторых поисковых запросов я попробовал немного более низкую скорость передачи (стандартный, по-видимому, 57600). С 19200 все работало с avrdude, поэтому я создал новую запись в файле boards.txt

    ##############################################################

pro328.name=Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 BOD 1.8V

pro328.upload.protocol=arduino
pro328.upload.maximum_size=30720
pro328.upload.speed=19200

pro328.bootloader.low_fuses=0xFF
pro328.bootloader.high_fuses=0xDA
pro328.bootloader.extended_fuses=0x06
pro328.bootloader.path=atmega
pro328.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex
pro328.bootloader.unlock_bits=0x3F
pro328.bootloader.lock_bits=0x0F

pro328.build.mcu=atmega328p
pro328.build.f_cpu=8000000L
pro328.build.core=arduino
pro328.build.variant=standard

И снова сжег загрузчик с использованием IDE 1.0.3. После этого я смогу загрузить мигающую программу. Моя цель - загрузить эскиз mysensors, хотя это не работает. Я получаю сообщение об ошибке

avrdude: verification error, first mismatch at byte 0x0002
         0x69 != 0x61
avrdude: verification error; content mismatch

У Mysensors, похоже, есть общие проблемы со старыми IDE для arduino, поэтому я попытался использовать новый 1.6.4, но я не могу определить свою собственную плату там, и если я попробую, не получив hte из-за ошибки синхронизации (потому что он все еще используя, возможно, неверную скорость).

Я также попытался использовать другой arduino uno как ISP => те же результаты

Как я могу это исправить? Есть ли способ определить мою собственную плату для 1.6.x? Каков стандартный способ сделать это и почему изменение efuse приводит к тому, что я не буду больше программировать мини?

Спасибо за каждый ответ /помощь!

2 голоса | спросил CodeO 21 +03002015-10-21T02:38:40+03:00312015bEurope/MoscowWed, 21 Oct 2015 02:38:40 +0300 2015, 02:38:40

1 ответ


1

Когда вы идете ниже (или выше) спецификаций напряжения /часов производителя, ожидайте некоторые проблемы. Один чип может работать другой, не будет. Помните, что чем ниже напряжение, тем медленнее часы. ЦП вырезаются из пластины (размер и геометрия), которые могут содержать много тысяч процессоров, они находятся в разных местах на пластине, они будут немного разными, и они делают более одной пластины.

Проверьте лист данных, он покажет, какая тактовая частота будет работать при напряжении. По мере изменения тактовых импульсов процессора ваша скорость в бодах рассчитывается на пересчет, если вы измените часы. Пример. Если вы работаете с тактовой частотой 16 МГц и меняете его на 8 МГц, бод будет ровно 1/2. Если в 9600 это будет 4800, если вы не измените делители часов.

Ваша ошибка указывает на потенциальную проблему со скоростью в бодах. Одна из забавных вещей, которая возникает, когда напряжение выше /ниже пятна производителя, не все инструкции работают должным образом над температурой. Следует ожидать проблемы с часами.

ответил Gil 28 +03002015-10-28T23:20:55+03:00312015bEurope/MoscowWed, 28 Oct 2015 23:20:55 +0300 2015, 23:20:55

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132