Страница 1 из 1

Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 15:47:59
atmicandr
Дорогие радиолюбители, есть у меня один проблемный вопрос: можно ли без какой либо доработки использовать прошивку от мега64 для мега128, дело в том, что у меня есть все исходники для мега64, но я как начинающий, в них ничего не понимаю, а искать мега64 при наличии мега128- мне кажется глупо. Помогите пожалуйста. С уважением Корчагин Андрей.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 16:04:43
Alex Medvedev
программа написана на Си так что тут проблем меньше. Найди в папке с проектом файл "makefile"
Открой его в блокноте и найди строчку

Код: Выделить всё

MCU = atmega64
исправь её на

Код: Выделить всё

MCU = atmega128
и перекомпилируй.
Ни каких ошибок при компиляции у меня не возникло.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 16:10:50
atmicandr
Alex Medvedev писал(а):программа написана на Си так что тут проблем меньше. Найди в папке с проектом файл "makefile"
Открой его в блокноте и найди строчку

Код: Выделить всё

MCU = atmega64
исправь её на

Код: Выделить всё

MCU = atmega128
и перекомпилируй.
Ни каких ошибок при компиляции у меня не возникло.
В смысле: Вы хотите сказать, что уже всё так сказать доработали и при этом ошибок не возникло? Может поделитесь новоявленным файлом прошивки для мега 128? Буду очень благодарен.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 16:32:06
Alex Medvedev
извиняюсь забыл сказать что перед компиляцией надо выполнить команду

Код: Выделить всё

make clean
Вы хотите сказать, что уже всё так сказать доработали и при этом ошибок не возникло?
Не возникло. В этом одно из преимуществ языков высокого уровня - переносимость кода.

Вот HEX файл http://zalil.ru/29793751

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 16:43:44
atmicandr
Alex Medvedev писал(а):извиняюсь забыл сказать что перед компиляцией надо выполнить команду

Код: Выделить всё

make clean
Вы хотите сказать, что уже всё так сказать доработали и при этом ошибок не возникло?
Не возникло. В этом одно из преимуществ языков высокого уровня - переносимость кода.

Вот HEX файл http://zalil.ru/29793751
Огромнейший Вам респектище за проделанную работу! С уважением Корчагин Андрей.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 16:50:25
radio-kot
64 и 128 имеют отличия кроме размера памяти. Поосторожней.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вс окт 10, 2010 17:09:10
atmicandr
radio-kot писал(а):64 и 128 имеют отличия кроме размера памяти. Поосторожней.
В будущем буду иметь ввиду, спасибо за предостережение.

Re: Замена ATmega64-16AU на ATmega128-16AU

Добавлено: Вт сен 20, 2011 22:23:25
Инженер
У меня сложиласть похожая ситуация. Делал прогу для mega64 и необходимо ее срочно заменить. В магазине есть mega128 в наличии а mega64 заказывать надо и черт знает когда придет. А цена одинакова.
Так что меняю mega64 на mega128.
Просмотрел описание регистров и нашел 4 отличия
1. Mega128 имеет RAMPZ регистр который используется для доступа к памяти свыше 64кБайт
2. Mega128 имеет EEPROM в 2 раза больше поэтому к старшему адресу EEPROM добавлен еще один значащий бит.
3. бит ADFR регистра ADCSRA. У меги 128 этот бит (называется ADATE) активизирует циклическую работу АЦП. А у mega64 этот бит "активирует" регистр ADCSRB от которого зависит поведение АЦП. (об этом в следующем пункте)
4. Mega64 имеет регистр которого нет у Mega128. Это регистр ADCSRB он позволяет помимо циклической работы АЦП выбирать в качестве источника запуска АЦП различные прерывания.

В качестве итога если программа не использует регистр ADCSRB или если он задается нулевым, то прошивку mega64 можно без всяких изменений заливать в mega128