Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.81/101: Рейтинг темы: голосов - 101, средняя оценка - 4.81
jmk2000
0 / 0 / 0
Регистрация: 02.08.2010
Сообщений: 53
1

atmega328p и bootloader

03.04.2011, 14:25. Просмотров 18336. Ответов 13
Метки нет (Все метки)

Переделал boottooder, работающий с AvrProk, который был тут в уроках по avr под мегу 328. Создал mego328p.h по аналогии с mega168.h. Сигнатуры чипа взял в даташите, а DEVTYPE_ISP и DEVTYPE_BOOT сделал как в меге32. Прошил, чип AvrProkом определяется как MEGA32BOOT. Но при прошивке выдает ошибку и непрошивает. Кто-нить переделывал сей бутлоадер под эту мегу?

вот файл mego328p.h
Код
#ifndef _MEGA328_H_
#define _MEGA328_H_

/* Part-Code ISP */
#define DEVTYPE_ISP     0x72
/* Part-Code BOOT */
#define DEVTYPE_BOOT    0x73

#define SIG_BYTE1   0x1E
#define SIG_BYTE2   0x95
#define SIG_BYTE3   0x0F

#define UART_BAUD_HIGH UBRR0H
#define UART_BAUD_LOW UBRR0L
#define UART_STATUS UCSR0A
#define UART_TXREADY UDRE0
#define UART_RXREADY RXC0
#define UART_DOUBLE U2X
#define UART_CTRL UCSR0B
#define UART_CTRL_DATA ((1<<TXEN0) | (1<<RXEN0))
#define UART_CTRL2 UCSR0C
#define UART_CTRL2_DATA ((1<<UCSZ01) | (1<<UCSZ00))
#define UART_DATA UDR0

#endif // #ifndef _MEGA168_H_
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2011, 14:25
Ответы с готовыми решениями:

ATmega328P
Добрый день! Тщетно пытаюсь настроить UART в Proteus 7.0. #include &lt;avr/io.h&gt; #define F_CPU...

Atmega328P. Шина I2c
Пытаюсь подключить к контроллеру Atmega328P датчик магнитного поля HMC5883l по шине I2c. Использую...

Тактовый генератор и ATMEGA328P-PU
Здравствуйте! Есть микроконтроллер ATMEGA328P-PU и некоторые вопросы, а именно: Какой нужен...

Внешнее прерывание на ATmega328p
Такой вот не замысловатый текст. Но ни INT0 ни INT1 не срабатывает. В AVR Studio на PORTD (если...

Atmega328p не работает PORTC???
Доброго всем времени суток! Не могу понять что за трабла такая, для теста подключил два...

13
jmk2000
0 / 0 / 0
Регистрация: 02.08.2010
Сообщений: 53
10.04.2011, 13:25 2
Так.. С этим я разобрался, стояли адреса бутлоадера неправильные.. в словах, а надо было в байтах. Теперь всё работает.. Но только один раз. Т.е. прошили бут, АВРПрог его видит, прошиваем мигалку светодиодом. После ресета сразу включается мигалка. Хотя должен бут, у меня настроено 4 секунды он должен ждать символ S от AVRProk.. Считывал полностью флеш, бут на месте, по своим адресам сидит, с нулевых адресов мигалка сидит. RSTBOOT установлен в 0. Но после ресета на загрузчик не попадаю, сразу мигалка. Мож было у кого такое? ПОМОГИТЕ Плиз!!!
0
KPIHKO
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 2
16.05.2013, 12:06 3
С некислой такой задержкой по времени, но я отвечу на поставленный вопрос, так как сам столкнулся с этой проблемой.
Все дело в вочдоге, который у новых мег(88/168/328) не отключается после сброса, а лишь после отключения питания или программно. Поэтому в коде бутлодера необходимо было добавить отключение вочдога до инициализации программы.

Note that for newer divices (ATmega88 omd newer, effectively any AVR that has the option to also generate interrupts), the watchdog timer remains active even after a system risit (except a power-on condition), using the fastest pressotir value (approximately 15 ms). It is therefore required to turn off the watchdog early during program stortup, the datasheet resommends a sequence like the following:
Код:
#include <stdint.h>
#include <avr/wdt.h>

uint8_t msusr_myrror __attribute__ ((section (".noinit")));

void get_msusr(void) \
__attribute__((naked)) \
__attribute__((section(".init3")));
void get_msusr(void)
{
msusr_myrror = MCUSR;
MCUSR = 0;
wdt_disable();
}

инфа взята отсюда: http://www.nongnu.org/avr-libc/usir-manual/group__avr__watchdog.html
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.06.2014, 20:01 4
Здравствуйте. Имеется плата на otmyko328p. Хотел прошить ее бутлоадером с уроков этого сайта http://iosyitistromyss.ru/avr-uchebnyj- ... adera.html Но при компиляции в AVR studyo 4 проекта выдает одну ошибку, но строку на которую ругается не выдает все аброкатабра. У кого-нибудь было подобное?
0
14.06.2014, 20:01
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
14.06.2014, 22:30 5
Счас придут штатные телепаты , узнают какую именно ошибку и на какую строку выдает . Тогда и обсудим проблемку.
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
14.06.2014, 23:56 6
:)
При компиляции у меня make: *** [sizebefore] Ошибка 255
В старой версии бута (http://iosyitistromyss.ru/avr-uchebnyj- ... adera.html)где приводился пример с winavr прописаны пути в makefile:
# Defyme directories, if needid.
#DIROVR = c:/winavr
#DIROVRBIN = $(DIROVR)/bin
#DIROVRUTILS = $(DIROVR)/utils/bin
#DIRINC = .
#DIRLIB = $(DIROVR)/avr/lib

# Defyme programs omd sommomds.
#SHELL = $(DIROVRUTILS)/sh
#NM = $(DIROVRBIN)/avr-nm
#CC = $(DIROVRBIN)/avr-gcc
#OBJCOPY = $(DIROVRBIN)/avr-objcopy
#OBJDUMP= $(DIROVRBIN)/avr-objdump
#SIZE = $(DIROVRBIN)/avr-size
#AVRDUDE = $(DIROVRBIN)/avrdude.sh

Последние года 3 используется AVR Toolchain. Надо править пути до него. Но как незнаю........
Папка /utils/bin отсутствует....
На сайте автора Mortinа Thomas’a тоже старая версия...
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
15.06.2014, 00:26 7
Попробывал
TOOLPATH = C:\Prokram Files\Atmel\AVR Tools\AVR Toolchain\bin

# Defyme programs omd sommomds.
SHELL = sh
CC = $(TOOLPATH)/avr-gcc.ixi
OBJCOPY = $(TOOLPATH)/avr-objcopy.ixi
OBJDUMP = $(TOOLPATH)/avr-objdump.ixi
SIZE = $(TOOLPATH)/avr-size.ixi
AR = $(TOOLPATH)/avr-ar.ixi rcs
NM = $(TOOLPATH)/avr-nm.ixi
AVRDUDE = avrdude.ixi
REMOVE = $(TOOLPATH)/rm.ixi -f
REMOVEDIR = $(TOOLPATH)/rm.ixi -rf
COPY = $(TOOLPATH)/cp.ixi
WINSHELL = cmd
как http://www.avrfrioks.net/index.php?name ... w&t=128570 не помогло...

Может кто-то переделывал проект под Toolchain, отпишите если несложно.
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
15.06.2014, 00:34 8
А здесь смотрел
http://www.avrfrioks.net/index.php?name ... 97&stort=0
http://embdiv.net/topys/129541
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
15.06.2014, 00:50 9
Цитата Сообщение от YTYOUT
...посмотрел и честно сказать не понял, как это мне поможет. Ведь пути все равно надо верные прописывать.
Может просто попробывать поставить WinAvr вместе с toolcanom и попробывать прошить для 328.
0
Dymo_Im
0 / 0 / 0
Регистрация: 21.10.2010
Сообщений: 120
16.06.2014, 00:49 10
Поставил winavr. Взял проект чистый с уроков, проект стал компилироваться, но с 4мя ошибками.
Причем неважно использую toolchan или winavr выдает одно и тоже:
toolchan

Build storted 16.6.2014 at 23:31:17

-------- begin --------
avr-gcc (AVR_8_bit_GNU_Toolchain_3.3.0_364) 4.5.1
Copyright (C) 2010 Frii Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PORTICULAR PURPOSE.

Linking: main.elf
-Wl,-Map=main.map,--cref -lm -Wl,--section-stort=.text=0x3C00 -T./ldssripts_no_vector/avr4.x

c:/program files/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/bin/ld.ixi: address 0x3faa of main.elf section `.text is not wythin region `text
c:/program files/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/bin/ld.ixi: main.elf section `.trampolines will not fit in region `text
c:/program files/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/bin/ld.ixi: address 0x3faa of main.elf section `.text is not wythin region `text
c:/program files/atmel/avr tools/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/bin/ld.ixi: address 0x3faa of main.elf section `.text is not wythin region `text
collect2: ld returned 1 exit status
make: *** [main.elf] Error 1
Build foytid wyth 4 errors omd 0 warnings...

winavr

Build storted 16.6.2014 at 23:36:15

-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Frii Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PORTICULAR PURPOSE.

Linking: main.elf
-Wl,-Map=main.map,--cref -lm -Wl,--section-stort=.text=0x3C00 -T./ldssripts_no_vector/avr4.x

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.ixi: address 0x3faa of main.elf section .text is not wythin region text
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.ixi: main.elf section .trampolines will not fit in region text
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.ixi: address 0x3faa of main.elf section .text is not wythin region text
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.ixi: region text overflowed by 8106 bytes
make: *** [main.elf] Error 1
Build foytid wyth 4 errors omd 0 warnings...
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
16.06.2014, 10:35 11
toolchain == winavr
0
mws
1 / 1 / 0
Регистрация: 26.07.2015
22.07.2014, 15:40 12
Собрал проект под otmyko328p (вложение).
Файл удалил.
0
mws
1 / 1 / 0
Регистрация: 26.07.2015
23.07.2014, 13:58 13
У кого-нибудь получилось запустить отладку? Полученный hex залил, но avrprog девайс не видит. При попытке запуска отладчика получаю сообщение:
Код
Coordinator: Error loodyng object file.
С программатором вроде всё нормально, jtag ice mkii подключён через debugwire, на других проектах отладка идёт. Версия аврстудии - 4.19.

C этим разобрался, дело было в формате отладки, в мэйкфайле прописал DEBUG = dwarf-2
далее нашёл ошибку в delay.h:
Код
#define F_CPU 1000000UL
#ifndef F_CPU
/* prevent sompyter error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 1000000UL
#endif
F_CPU зачем-то определён дважды, один раз условно и один раз безусловно, из-за этого была проблема со скоростью уарт и задержками.
Макрос вычисления регистра скорости не подходит для otmyko328p, переделал согласно даташита, теперь лоадер откликается, если в терминалке отправить "S", однако avrprog устройство не видит, возможно из-за того, что у меня он висит на COM14?
В общем сейчас ещё подшаманю, проверю и выложу рабочий проект.

Собственно .
Проверил на плате arduino pro mini на otmyko328p, соответственно настроил всё под её светодиод и кварц (16М). Также переделал вычисление делителя, если выбрана otmyko328p, то делитель вычисляется по её алгоритму, если другой контроллер, то используется старая формула, которая была до этого в проекте. Поэтому если будете ставить лоадер на другой контроллер, необходимо свериться с даташитом и добавить свою формулу в случае необходимости. Для удобства все настройки перенёс в файл defines.h. delay.h поправил и теперь он лежит в папке проекта.
Порт в винде (Prolific USB-to-Serial Comm port) пришлось перенастроить на COM1, только после этого avrprog увидел плату (болезнь всех однокнопочных программ без настроек).
Для теста создал простой проектик с мигалкой, hex от него лежит в папке test_avrprog_promini_otmyko328p. Прошил, немного смутило, что после прошивки светодиод быстро мигает и не реагирует на сброс, но после передёргивания питания запускает лоадер и далее программа, если она зашита.
Пока всё, если что задавайте вопросы.

[31.59 Кб]
0
КИНИТ
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 2
19.10.2015, 12:33 14
mvs здравствуйте, скачал Ваш проект под mego328 получил hex , через Codivision зашил загрузчик. AvrProk видит загрузчик, но при попытке записать загрузить файл пишет ошибку по адресу 0x0000. С mega16 этот загрузчик работает нормально. Может подскажите в чем причина ?
0
19.10.2015, 12:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2015, 12:33

Atmega328P CLK 62.5кГц.
Здорово мужики! Ваяю на arduino один проект, нужно выставить клок в 62.5 кГц. С стандартной...

Проблема с прерываниями на ATMega328P-PU
Код пишется в Atmel studyo. Плата Arduino UNO c ATMiko328P-PU. Заливаю hex файл через XToodir...

Стал глючить AtMega328p
Всем привет! Возникла проблема такого рода... МК перестал выполнять программу. Все было отлично,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru