Описание платы BalanceMB
Руководство по работе с новыми функциями балансировки 3.0, 4.0, 5.x
1. Общие положения
1.1 Программное обеспечение балансировки состоит из ПО МК и ПО DSP. ПО МК состоит из загрузчика и рабочего ПО. Загрузчик устанавливается в МК с помощью программатора, всё остальное ПО устанавливается через файловую систему изделия.
1.2 При включении изделия начинает работать загрузчик. Он проверяет CRC рабочего ПО МК и, в случае успеха, отдаёт управление рабочему ПО МК. В случае ошибки CRC (в т.ч. при отсутствии рабочего ПО) программа не передаёт управление и остаётся в режиме загрузчика. Изделие может быть принудительно переведено из загрузчика в рабочее ПО и из рабочего ПО в загрузчик функцией F96 (см.ниже) или установкой параметра StayInLoader=yes в секции [Setup] файла balance.ini.
1.3 В изделии имеется файловая система, хранящая файлы. Файлы могут быть записаны на изделие двумя способами: через USB как на съёмный диск либо через Ethernet командой wget.
1.4 Список файлов рабочего ПО приведён в таблице.
Файл | Назначение |
sciload.a00 | Короткий SCI-загрузчик, который загружается в память DSP, переключает скорость загрузки на более высокую и загружает основное ПО DSP. |
firmware.a00 | Основное ПО DSP |
balance.ini | Настройки изделия. Часть настроек могут быть заданы вручную, часть формируются автоматически. См.инструкцию на файл. |
fware.hex | Файл для прошивки во внутреннюю flash-память контроллера. Загружается в изделие через USB или Ethernet совместно с файлом fware.crc. После прошивки файл не используется. |
fware.crc | Файл для проверки целостности файла fware.hex. Загружается в изделие через USB или Ethernet совместно с файлом fware.hex. После прошивки файл не используется. |
iflash.crs | Файл, содержащий CRC и стартовый адрес рабочего ПО контроллера. Формируется автоматически при выполнении команды "writehware" (F97) |
1.5 Для отправки файлов на изделие через USB достаточно подключить изделие к компьютеру USB-кабелем. С точки зрения системы изделие будет видеться как съёмный диск.
1.6 Для отправки файлов на изделие командой wget через Ethernet используется следующий синтаксис:
wget 192.168.16.190 --header="666:filename=fware.hex" --post-file=fware.hex
Здесь: 192.168.16.190 - IP-адрес изделия, настраивается в файле balance.ini,
666: - любое сочетание букв или цифр с двоеточием, после которого указывается имя файла-назначения в формате filename=ИМЯ_ФАЙЛА_НАЗНАЧЕНИЯ.
--post-file=ИМЯ_ФАЙЛА_ИСТОЧНИКА.
Таким образом, приведённая команда отправит на изделие с адресом 192.168.16.190 файл fware.hex и сохранит его на изделии с тем же именем.
Внимание!
Указывать имя файла-назначения обязательно, даже если имя совпадает с именем файла-источника. Иначе любой файл будет загружен на изделие под именем file123.dat.
1.7 Так как IP-адрес изделия указывается в файле balance.ini, при первом программировании изделия, когда ещё нет файла balance.ini, получить доступ к файлам изделия можно через USB (п.1.5), либо через Ethernet с адресом по умолчанию 192.168.16.190.
2. Порядок программирования / обновления ПО
2.1 Начальное программирование
2.1.1 Программатором записать ПО загрузчика в изделие. Запись производится из проекта ПО загрузчика. Программатором обеспечить начало выполнения загрузчика.
2.1.2 Подготовить файл рабочего ПО МК. В проекте рабочего ПО взять файл с именем проекта и расширением .hex, переименовать или скопировать в файл fware.hex. Утилитой cksum вычислить CRC файла fware.hex и поместить результат в файл fware.crc. Командная строка:
cksum fware.hex >fware.crc.
2.1.3 Подготовить файл рабочего ПО DSP. Взять файл с именем проекта DSP и расширением .out (например, balance.out) и выполнить команду:
hex2000.exe -a -boot -sci8 -memwidth=16 -romwidth=16 balance.out
Получившийся файл balance.a00 переименовать в firmware.a00 - это прошивка DSP.
2.1.4 Подготовить файл balance.ini в соответствии с инструкцией.
2.1.5 Запись файлов через USB
2.1.5.1 Подключить изделие USB-кабелем к компьютеру. Появится новый сменный диск. Открыть сменный диск в менеджере файлов.
2.1.5.2 На получившийся диск поместить файлы:
fware.hex
fware.crc
firmware.a00
sciload.a00
balance.ini
2.1.5.3 Для гарантии того, что все файлы записались, а не остались в кэше, выполнить команду sync.
2.1.5.4 Отсоединить USB-кабель от изделия.
2.1.5.5 Выключить изделие и снова включить его.
2.1.6 Запись файлов через telnet
2.1.6.1 Выполнить п.2.1.1 - 2.1.4
2.1.6.2 Поместить на изделие необходимые файлы (при первом программировании - аналогично п.2.1.5.2). Отправка файлов описана в п.1.6.
2.1.7 После включения изделия начинает работать загрузчик. Он выполняет проверку внутренней flash на соответствие CRC. Так как файла CRC ещё нет и ПО во внутреннюю flash не записано, изделие останется в загрузчике (на индикаторе клавиатуры должен гореть символ P). С этого момента можно подключатьтся к изделию через telnet по IP-адресу, который был установлен в файле balance.ini.
2.1.8 Программирование изделия с клавиатуры
2.1.8.1 Находясь в режиме загрузчика (на индикаторе отображается символ "Р"), ввести пароль с помощью функции F99.
2.1.8.2 Для программирования изделия запустить функцию F97. В случае, если находящиеся в изделии файлы fware.hex и fware.crc корректны и CRC сходится, начнётся программирование изделия. Иначе появится сообщение об ошибке на клавиатуре. В случае ошибки необходимо проверить и повторить пункты 2.1.2...2.1.6.
2.1.8.3 Программирование индицируется перемещающимся по индикатору прогресс-баром. При программировании рассчитывается CRC рабочей программы и записывается в файл iflash.crs на изделии. По окончании программирования произойдёт автоматический перезапуск изделия и вход в режим балансировки.
2.1.9 Программирование изделия через telnet / обновление ПО изделия через telnet
2.1.9.1 Подключиться к изделию через telnet (п.4.1, 4.2)
2.1.9.2 Если изделие находится в рабочем ПО, выполнить команду softpart для перехода в загрузчик. Узнать, находится ли изделие в загрузчике, можно командой info (п.4.3.1) либо по отображению символа "Р" на индикаторе клавиатуры.
2.1.9.3 Находясь в загрузчике, выполнить команду writehware. В случае успеха программирование длится не менее 4х секунд, после чего выдаётся "F97". На ошибку указывает почти мгновенное появление ответа "F97".
2.2 Обновление ПО МК
2.2.1 Подготовить и записать файлы для обновления (п.2.1.2), записать их в изделие через USB или Ethernet (п.2.1.5, 2.1.6).
2.2.2 Перейти в режим загрузчика. При работе с клавиатуры для этого необходимо ввести пароль (F99) и вызвать функцию перехода в загрузчик (F96). В случае успеха на индикаторе появится символ Р - режим загрузчика.
2.2.3 Выполнить пункт 2.1.8 или 2.1.9 для программирования изделия.
2.3 Обновление ПО DSP
2.3.1 Подготовить файл для обновления (п.2.1.3), записать его в изделие (п.2.1.5, 2.1.6).
2.3.2 Отсоединить кабель USB, если файл записывался через USB.
2.3.3 Выключить питание изделия. После включения изделие готово к работе.
Внимание!
Во время программирования (при перемещении прогресс-бара) выключать питание изделия запрещается.
При редактировании любых файлов на изделии, при удалении и при записи новых файлов, все изменения вступают в силу только после перезагрузки изделия. Выключать питание изделия, если файлы открыты в редакторе и не сохранены, запрещается. Если питание изделия при записи файлов было отключено (или произошёл сброс изделия), то может произойти разрушение файловой системы на изделии (отсутствие файлов, невозможность записать или прочитать файлы, 100%-ное заполнение объёма). В этом случае необходимо по telnet выполнить команду mkfs.flash (см. таб. 4.3.1) и заново записать все файлы.
После записи или редактирования каких-либо файлов через USB требуется выполнить команду sync, отсоединить USB-кабель, затем выключить (и при необходимости снова включить) питание изделия. Если выключать питание при подключенном USB-кабеле, сброса микроконтроллера не произойдёт и изделие не загрузится.
3. Функции для программирования изделия
3.1 Функции в режиме загрузчика (на индикаторе горит символ Р):
F96 - перейти из режима загрузчика в режим рабочего ПО. В случае, если рабочее ПО во flash-памяти контроллера отсутствует, результат команды будет непредсказуем.
Функция доступна без пароля.
F97 - записать рабочее ПО во внутреннюю flash-память контроллера. Для успешного выполнения функции в файловой системе контроллера должны находиться файлы fware.hex и fware.crc. Функция F97 доступна после ввода пароля.
3.2 Функции в режиме рабочего ПО
F96 - перейти из режима рабочего ПО в режим загрузчика. Функция доступна после ввода пароля.
4 Управление через telnet
4.1 Для управления изделием через telnet на изделии должны быть заданы MAC-адрес и IP-адрес, изделие должно быть подключено к сети Ethernet. Перед управлением убедиться, что команда ping проходит от терминала, с которого будет осуществляться управление, до изделия.
4.2 Для установления соединения через telnet требуется набрать команду
telnet IP_АДРЕС_ИЗДЕЛИЯ <Enter>
Например: telnet 192.168.16.190.
4.3 В случае успешного установления соединения могут быть выполнены следующие команды.
4.3.1 Команды контроля
Команда | Описание |
exit | Выйти из режима telnet, разорвать соединение |
info | Получить информацию, в какой части ПО находится изделие
"We are in LOADER mode" - изделие в загрузчике, "We are in NORMAL mode" - изделие в рабочем ПО. |
get параметр
g параметр |
Получить параметр |
test параметр
t параметр |
Получать параметр непрерывно. Для разных параметров критерии передачи разные, как правило, это изменение значения. |
date
d |
Получить или установить дату |
softpart | Переключиться между режимами загрузчик / рабочее ПО (функция F96) |
writehware | Записать рабочее ПО из файла fware.hex во flash (функция F97) |
mkfs.flash | Привести файловую систему изделия в исходное состояние (все файлы на изделии стираются). Используется при появлении ошибок в файловой системе (потерянные цепочки, отсутствие свободного места, нарушение прав доступа и т.п.). Если планируется сохранить калибровочные данные изделия, файл balance.ini должен быть сохранён вне изделия перед выполнением команды. Если не планируется заменять ПО сигнального процессора изделия, необходимые файлы (sciload.a00, firmware.a00) должны быть сохранены вне изделия. Загрузчик и рабочее ПО во flash от выполнения команды не стираются.
После выполнения команды требуется заново записать все необходимые файлы на изделие (п.1.4 - 1.6). |
4.3.2 Параметры команд get и test
voltage
volt v |
Напряжения 24В, 5В, 3,3В Ext1, 3,3В Ext2, 3,3В, температура микроконтроллера, 3,3В I2C
get v, test v - показать все напряжения get v 1, test v 1 - показать напряжение 24В get v 2 - показать напряжение 5В и т.д. |
temp
t |
Температура микросхемы датчика температуры, 2х датчиков температуры, микроконтроллера
get t, test t, get t 1, get t 2 и т.д. |
linear
len l |
Показания оптической линейки
g l, get l, t l, test linear и т.д. |
r | Показания резистивной линейки
g r, get r, t r, test r |
gyro
g |
Показания датчика угла
g g, get gyro, t g и т.д. |
date
d |
Текущая дата
get date, g d - показать текущую дату test date, t d - показывать текущую дату каждую секунду |
165 | Показать значения с порта HC165 с расшифровкой данных
g 165, t 165 и т.д. |
cap | Измерение емкостей датчиков
t cap, test cap. Для команды get этот параметр не поддерживается |
wheel
w |
Показать угол поворота вала и угловую скорость вращения вала (примерный аналог функции F41) |
ver | Показать версию ПО микроконтроллера. При вызове из загрузчика или из рабочего ПО, будет показана версия соответствующей части ПО (загрузчика или рабочего).
g ver, get ver |
4.3.3 Команды управления
Команда telnet
(p - параметр) |
Аналог с клавиатуры | Описание и параметры | По умолч. |
roundmode p | F0 | Величина округления грузиков, г | 5 |
startmode p | F1 | Режим запуска балансировки
0 - запуск по команде Start при закрытой крышке, 1 - запуск по команде Start, независимо от положения крышки, 2 - запуск по закрыванию крышки, без подачи команды "Start" (Примечание: команда Start выполняется нажатием кнопки Start или передачей по телнету команды start). |
2 (user 1),
1 (user 2) |
covermode p | F2 | Не используется в текущем изделии | - |
pedalmode p | F3 | Режим педали. При ручном провороте вала:
0 - свободное вращение, 1 - останов автоматический около грузика |
0 |
automode p | F4 | Режим довода
0 - нет довода 1 - автоматическая остановка колеса для установки грузика слева 2 - автоматическая остановка колеса для установки грузика справа 3 - автоматическая остановка колеса для установки ближайшего грузика |
1 (user 1),
2 (user 2) |
minweight p | F5 | Минимальная индицируемая величина дисбаланса, г | 5 |
clockwise p | F6 | Направление вращения вала
0 - против часовой стрелки, 1 - по часовой стрелке |
1 |
truemode p | F7 | Режим установки грузиков
0 - установка во всех режимах на "12 часов" 1 - установка в раскладках 3,4 линейкой под истинным углом |
0 |
autoalu | F8 | Режим автоопределения алюминиевых дисков
0 - нет автоопределения 1 - автоопределение. При измерени линейкой в точках, соответствуюющих раскладкам 1-3 и 2-3, происходит автоматическое включение типа колеса Alum и соответствующей раскладки (из любого режима). При измерении в других точках установленный режим и раскладка не меняется. |
0 |
keycal0 | > 0 < | Калибровка пустого вала | - |
rrulercal0 | F11 | Калибровка линейки по трём точкам, шаг 1: вылет 0 | - |
rrulercal1 | F12 | Калибровка линейки по трём точкам, шаг 2: вылет 100 | - |
rrulercal2 | F13 | Калибровка линейки по трём точкам, шаг 3: вылет 250 | - |
rrulercal3 | F14 | Калибровка линейки по трём точкам, шаг 4: диаметр планшайбы | - |
rrulercal4 | F15 | Калибровка линейки по трём точкам, шаг 5: диаметр колеса | - |
rrulercal5 | F16 | Резерв (под 3-ю точку диаметра) | - |
maxrot p | F50 | Число оборотов при измерении дисбаланса | 20 |
drvfreq p | F51 | Рабочая частота привода двигателя, гц | 90 |
minfreq p | F52 | Минимальная частота привода двигателя, гц | 5 |
accthld p | F53 | Порог ускорения колеса, мс | 20 |
angleepsilon p | F54 | Разброс отображения угла, ед. (100 ед. = 180 градусам) | 1 |
wheeldist p | F55 | Расстояние до плоскости установки колеса, мм | 0 |
diamepsilon p | F58 | Разброс диаметра | |
rulercal0 | F60 | Калибровка вылета оптической линейки | - |
rulercal1 | F61 | Калибровка датчика угла на планшайбе (для оптической линейки) | - |
rulercal2 | F62 | Калибровка датчика угла на диске (для оптической линейки) | - |
rulercal3 | F63 | не используется (ранее - калибровка линейки у кожуха (только для резистивной линейки)) | - |
rulercalf | F64 | Быстрая калибровка линейки (только для оптической линейки) | - |
rulerhorz p | F65 | Горизонтальное расстояние линейки, мм | 0 |
rulervert p | F66 | Вертикальное расстояние линейки, мм | 0 |
rulerrad p | F67 | Радиус линейки | 185 |
rulerofs p | F68 | Калибровочный вылет линейки, мм | 100 |
rulerdiam p | F69 | Калибровочный диаметр колеса, дюймы/мм | 15 (дюймы) |
cal0 | F70 | Калибровка пустого вала | - |
cal1 | F71 | Калибровка колеса | - |
cal2 | F72 | Калибровка грузика с правой стороны | - |
cal3 | F73 | Калибровка грузика с левой стороны | - |
calweight p | F75 | Масса эталонного грузика, г | 100 |
testdrv | F80 | Тест привода (при вводе включается привод и на дисплее отображается значение угловой скорости, об/мин) | - |
deccurr p | F81 | Максимальное значение тока перегрузки для торможения, х0.1А | 20 |
decfreq p | F82 | Скорость торможения, гц | 5 |
c-meter | F87 | Начать измерение ёмкости датчиков | - |
- | F88 | Тест индикации (включение всех индикаторов) | - |
loaddef | F90 | Загрузка настроек по умолчанию | - |
loadref | F91 | Чтение эталонной записи | - |
saveref | F92 | Запись эталонной записи | - |
- | F99 | Ввод текущего пароля | - |
state | - | Состояние (вывод строки с параметрами) | - |
start | Start | Запуск балансировки, калибровки | - |
stop | Stop | Остановка вращения. Сброс ошибок. При удерживании в течение 10 сек. сбрасываются те ошибки, которые не сбрасываются при кратковременном нажатии. | - |
enter | Enter | Запуск довода | - |
user p | User | Переключение пользователя
0 - пользователь №1 1 - пользователь №2 |
0 |
width p | h | Ширина диска | 0 |
diam p | d | Диаметр диска | 0 |
offset p | b | Вылет диска | 0 |
split | sp | Разбиение по спицам | - |
numsp p | sp | Количество спиц | 3 |
mode p | Mode | Режим
0 - Alum, 1 - Steel, 2 - Abs, 3 - Truck, 4 - Stat |
0 |
layout p | Layout | Раскладка грузиков | 0 |
rotate p | - | Довод до угла p | - |
stick | - | Место приклейки | - |
muxval | - | Константа мультиплексора
0 = 128, 1 = 192, 2 = 160, 3 = 240 |
0 |
Индикация ошибок в системе.
Ошибки подразделяются на 3 категории:
1-32 Ошибки-предупреждения (не введены параметры, ошибки линейки, отсутствие ини-файла и т.д.)
33-64 Ошибки в части ПО микроконтроллера
65-96 Ошибки в части ПО сигнального процессора
1-32:
1 Балансировка не откалибрована
2 Линейка 1 не откалибрована
3 Резерв (Линейка 2 не откалибрована)
4 Ошибка задания неизвестного параметра (не h,b,d и не SP)
5-7 Индицируются в виде ошибок задания параметра (h,b,d)
8 Ошибка задания параметра SP
9 Нет ответа от гиро (считано FFFFFFFF)
10 Ошибка КС ответа от гиро
11 I2C (к которому подключен гиро) сообщил об ошибке
12 Колесо не вращается / не подключен датчик вращения
13 Кривой пол (в настоящее время кривизна пола не измеряется и ошибка не выставляется)
14 Нет ini-файла, все параметры будут взяты из заводских настроек
17 При измерении ёмкости провернули колесо (не должно вращаться для точности измерения)
18 Линейка при включении не находится в начальном положении
19 В этом режиме требуется провернуть колесо для прохождения нулевого маркера
20 Педаль при включении не находится в начальном положении
21 Не откалибрована 1-грузиковым методом (при попытке вызвать данные 1-грузиковой калибровки)
33-64
33 Резерв (Неверные данные 595)
34 Таймаут считывания 595
35 Неверный идентификатор AT45D321
36 Таймаут обмена с AT45D321
37 Ошибка CRC32 внутренней iFlash (ошибка вызовет вход в режим загрузчика)
38 Ошибка CRC32 файла fware.hex при программировании iFlash загрузчиком
45 Напряжение 24В вне диапазона
46 Напряжение 5В вне диапазона
47 Напряжение EXT1 (3,3В) вне диапазона
48 Напряжение EXT2 (3,3В) вне диапазона (MB5.0 не имеет напряжения EXT2, соответственно, ошибка 48 для MB5.0 не индицируется)
49 Напряжение 3,3В вне диапазона
50 Напряжение I2C (гиро) (3,3В) вне диапазона
53 Резерв (температура температурной микросхемы вне диапазона)
54 Резерв (температура датчика 1 вне диапазона)
55 Резерв (температура датчика 2 вне диапазона)
56 Резерв (температура кристалла МК вне диапазона)
57 Нет файловой системы
58 Нет файла загрузчика
59 Нет файла ПО DSP
60 Ошибка загрузки ПО DSP
65-80
ошибки, присылаемые от DSP (и ранее присылавшиеся от DSP на mb3.0, переведённые на МК на mb4.0)
68 Таймаут ответа АЦП ADS7830
69 Ошибка количества отверстий датчика вращения
70 Нет нулевого маркера датчика вращения
77 Таймаут ответа привода
78 Ошибка ответа привода
80 ПО подозревает наличие тиристорного эффекта АЦП
81-96 ошибки, выставляемые МК при работе с DSP
81 Напряжение DSP 3.3В вне диапазона
82 Напряжение DSP -5В вне диапазона
83 Напряжение DSP 1.8В вне диапазона
84 Напряжение DSP 5ВА вне диапазона
85 Напряжение DSP +VA вне диапазона
86 Напряжение DSP 3.3ВА вне диапазона
87 Напряжение DSP 2.5В АЦП опорное вне диапазона
88 Напряжение DSP 1.2В вне диапазона
89 Нет связи с DSP
90 Логическая ошибка обмена с DSP
92 Таймаут перехода DSP в ожидаемое состояние после команды