понедельник, 16 июня 2014 г.

Предупреждение по изменению частоты процессора ATMEGA

Для уменьшения энергопотребления сменил частоту процессора, но столкнулся со следующей проблемой. Удалось понизить частоту процессора, но не удалось прошить после изменения частоты процессора.
 При изменении частоты работы процессора у программатора требуется изменить частоту работы, указать для AVRdude параметры работы с измененной частотой процессора.
      Предупреждение не все программаторы могут работать с процессорами для которых изменили штатную частоту. В данный момент столкнулся с данной ситуацией, нужно перепрошить программатор для поддержки данной функции при работе с AVRdude.

что требуется
1) Прошить программатор для полной поддержки функций с AVRdude.
ссылка программы работы с памятью
http://extremeelectronics.co.in/avr-tutorials/gui-software-for-usbasp-based-usb-avr-programmers/
сама прошивка 
http://www.fischl.de/usbasp/
2)для генерации параметров fuse битов прошивки использовать
http://www.engbedded.com/fusecalc


конфигурация fuse битов и описание
http://easyelectronics.ru/avr-uchebnyj-kurs-konfiguraciya-fuse-bit.html
http://www.rlocman.ru/review/article.html?di=148456
http://www.getchip.net/posts/068-kak-pravilno-proshit-avr-fyuzy-fuse-bit/
http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR053.htm

информация по процессору на русском языке
https://yadi.sk/d/ENNMQutR4Xy4a

Удалось все исправить через eXtreme Burner – AVR v1.4.2
http://extremeelectronics.co.in/avr-tutorials/gui-software-for-usbasp-based-usb-avr-programmers/
изменив low Fuse
Список дефеултных установок фьюзов для разных ардуин
Хороший блог по решению проблем с загрузкой


воскресенье, 15 июня 2014 г.

Использование подтягивающих резисторов atmega

Подтягивающие резисторы требуются для удаления шума с портов, также позволяет подключить к одному порту несколько кнопок, что сэкономит выходы.
Подключая каждую кнопку с определенным сопротивлением, мы будем знать какую кнопку нажали.

Также обеспечивает правильную работу с прерыванием, чтобы не было ложных срабатываний под влиянием шума.
подтягивающие резисторы, по документации установлены с резисторами 20-50kΩ. Ссылка на документацию.

Потребление тока для резисторов 20-50 составит 0,1-0,25 ma(миллиампер) при напряжении 5 вольт.

Внешние подтягивающие резисторы рекомендуют ставить 10kΩ.
Максимальная сила тока которую может выдавать порт составляет 40 mA. Тоже рекомендуют защитить порты резисторами на 1кΩ и 470Ω.

Для микропроцессоров серии atmega есть несколько способов включить подтягивающие резисторы.
Вариант подключения 
1) pinMode(2,INPUT_PULLUP);
2) pinMode(pin, INPUT); // set pin to input
    digitalWrite(pin, HIGH); // turn on pullup resistors

Прошивка через usbasp

usbasp должен быть установлен в системе

Для avrstudio 6.1
нужно добавит устройство в avrstudio 6.1
Tools –> External Tools
add-ext-tools
добавить строчки
ext-tools-window

c:\Users\WailHung\avrdude.exe
место расположение  AVRDUDE
скачать можно тут http://www.nongnu.org/avrdude/
Рабочее решение -U flash:w:"$(TargetDir)$(TargetName).hex":i -p ATmega328p -c usbasp
-q - уменьшает объем выводимой на экран отладочной информации
-C avrdude.conf - указывает расположение .conf файла (в нашем случае он в той же папке)
-p ATmega328p - выбор типа микроконтроллера ATmega168
-c usbasp - выбор программатора (он описан под таким именем в .conf файле)
-P ft0 - выбор порта. Выбрано первое устройство с чипом FTDI
-e - Команда на предварительную очистку памяти программ
-U flash:w:ATmegaBOOT_168_diecimila.hex - указывает на .hex файл с прошивкой
ATmega328p процессор соответственно используемый.
Требуется build -> build solution получим последний вариант программы
Tools-> кликнут по названию созданного устройства в нашем примере будет иметь имя USBasp
 Прошивка будет залита в устройство.


Для Arduino
Установить в меню программатор usbasp


Выполнить: Файл -> Записать с помощью программатора

суббота, 14 июня 2014 г.

Схема расшифровки линейки микропроцессоров ATMEL

Схема контактов ISP программатора

Схема контактов ISP программатора. Схемы контактов для подключения ISP программатора для плат arduino mega ADK, arduino uno, arduino nano, arduino pro mini, arduino leonardo, arduino mini

Схема ISCP разъема
Стандартный разъем
 для штекера на программаторе(куда втыкаются кабели)






Контакты кабеля

enter image description here
Вид сверху штекера, как он должен быть воткнут 






Прошивка arduino pro mini


Название: CARDUINO_PINS_ATMEGA.png
Просмотров: 1886

Размер: 35.7 Кб
arduino nano
arduino uno

arduino uno
Leonardo



Схема arduino mega,adk. схему isp разъема развернуть по часовой стрелке



ATMEGA328-900.jpg
Часть схем была использована с сайта http://embdedsystems.blogspot.ru/2013_11_01_archive.html

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

Дополнение к решению проблем прошивки микроконтроллеров

error: avrdude: stk500_getsync(): not in sync: resp=0x00


Основные решения представлены тут
http://robocraft.ru/blog/arduino/714.html

но для прошивки arduino pro mini это не работает, выдает ошибку error: avrdude: stk500_getsync(): not in sync: resp=0x00
для прошивки было использовано несколько контроллеров по UART.

Решение было найдено по подключению команды сброса следующим образом
UART to Arduino
TX - TX
RX - RX
GND - GND
5V - VIN
DTR - DTR
Данное подключение позволило нормально выполнят заливку программы в arduino pro mini