-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhow_to_use
89 lines (73 loc) · 7.29 KB
/
how_to_use
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
Описание процесса развертывания:
0. В зависимости от того какой кварцевый резонатор мы установливаем в электронную схему целевого устройства (Далее просто
схему, см. *) в файле Makefile нужно объязательно установить такую же чатоту в константе F_CPU ! Устанавливаем нужное
значение частоты из списка согласно частоте резонатора устанавливаемого в схему*. Также если частота будет изменена
нужно будет подправить константы записывемые в регистры UBRR, USART модуля.
1. Вполнить компиляцию проекта для MCU (каталог /firmware). После компиляции в этом каталоге создасться main.hex.
Это и есть файл который должен быть загружен во флеш память MCU.
Для компиляции должен быть установлен пакет для работы с avr.
2. Далее при помощи программатора нужно загрузить прошивку в MCU.
Ниже описан вариант для программатора avr910.
Подключаем программатор к ПК и схеме* .
Смотрим список подключенных устройств
dmesg | egrep --color 'ttyUSB|ttyACM'
Для linux систем разрешаем работу с usb устройством
sudo chmod o+rw /dev/ttyХ
где: ttyX - usb устройство программатора, обычно ttyACM0 , но может и отличатся.
Для программатора usbasp ничего этого не нужно, смотрим описание в документации к нему.
Нужно просто скопировать правила из пакета usbasp.2011-05-28.tar.gz в linux дистрибутив.
3. Выполняем прошивку контроллера. Это можно сделать из командной строки или при помощи Makefile.
3.1. Вариант из командной строки:
avrdude -P /dev/ttyX -c avr910 -p mcuDiscription -e -U flash:w:main.hex
Например для atmega8:
avrdude -P /dev/ttyACM0 -c avr910 -p ATmega8 -e -U flash:w:main.hex
3.2. Вариант из Makefile:
Открываем Makefile и настраиваем такие параметры
MCU = atmega8
AVRDUDE_PROGRAMMER = avr910 (или другой)
AVRDUDE_PORT = /dev/ttyACM0 (порт программатора)
Далее
make clean && make all && sudo make program
Если в терминале говориться что процесс успешно завершен то программатор можно отключать.
4. Высавляем fusebits в MCU.
Должны быть выставлены следующие fusebits:
LF: 0xEF ; HF: 0xD9
Выполним следующую команду (программатор дложен быть подключен):
avrdude -c pName -p ATmega8 -U lfuse:w:0xEF:m -U hfuse:w:0xD9:m
где:
pName - имя порта программатора, например /dev/ttyACM0 (avr910), usb (usbasp)
5. Подключаем схему* к usb порту для обмена данными. Обмен данными происходит по интерфейсу rs232.
То есть в протокол usb являеться обверткой для rs232.
В устройстве применен конвертор rs232-usb для создания виртуального com(rs232) порта .
Потому что в atmega8 нет аппаратного usb модуля.
Для работы приложения на ПК необходим установленный jre.
А для сборки проекта нужен jdk.
Выполняем сборуку приложения для ПК без IDE.
Зависимости: oracle-jdk >= 6 и gradle 2.4 .
Компиляцию исходников (javac) выполнять не требуется, за нас это сделает gradle .
Доступны следующие команды:
gradle runLogger - непосредственно запуск приложения;
gradle jar - создание запускаемого приложения. После выполнения этой команды создается jar файл в каталоге ./app/build/libs
Если gradle не установлен в переменную окружения ОС, то его можно запустить из каталога установки.
Например нужно выполнить команду runLogger тогда:
~/logger-master/app /pathToGradle/gradle-2.4/bin/gradle runLogger
Запуск собранного приложения из терминала:
java -jar app/builds/libs/logger.jar
* - электронная схема целевого устройства
Ссылка на документацию (datasheet) atmega8
http://www.atmel.com/images/atmel-8159-8-bit-avr-microcontroller-atmega8a_datasheet.pdf
На что обратаить внимание при сборке проекта logger:
- частота кварца в устройстве должна соотв. константе F_CPU в Makefile. Также нужно будет выполнить проверку значений
в регистрах UBRRH и UBRRL. Значения которых напрямую засисят от частоты CPU и от скорости передачи данных (baude rate) между
устройством и ПК по rs232. Эти константы находятся в firmware/main.c . Таблица значений UBRRH и UBRRL представлена в
http://www.atmel.com/images/atmel-8159-8-bit-avr-microcontroller-atmega8a_datasheet.pdf на стр 207 (24.12 Examples of baud rate setting)
- определяеться ли подключенный переходник rs232-usb в системе
- дать разрешения на работу этого переходника (только linux)
- определяеться ли подключенный программатор в системе
- дать разрешения для программатора (только linux и только avr910)
- для правильной работы устройства должны быть выставлены соответствующие fuse bits
- если приложение для ПК запускается на linux системах в списке доступных COM портов должны быть
несколько вариантов /dev/ttyUSB0, /dev/ttyACM0, ...
- при подключении программатора к устройству можно проверить выполняется ли чтение flesh/eeprom/fuse bits для того чтобы убедиться что
программатор и MCU работает.
- проверить напряжение на всех блоках устройства. Должно быть 5В +-10 %