ADAM5511 & BackUp RAM |
Ответить |
Автор | |
Новичок Присоединился: 22 Декабрь 2004 Online Status: Offline Публикации: 6 |
Опубликовано: 17 Январь 2005 11:55 |
В документации на ADAM5511 написано, что у контроллера есть энергонезависимая память ~60К. Пробовал работать с библиотечнымифункциями read_bk_ram(), write_bk_ram(): 1) читаем память; 2) печатаем на экране содержимое; 3) пишем в память; 4) читаем память; 5) печатаем на экране содержимое. Однако после выполнения теста убеждаюсь, что память обнуляется после выхода из программы в командную строку. Мне же необходимо, чтобы данные можно было считать даже после отключения/включения контроллера (иначе зачем эта память нужна ?). Если кто-нибудь использовал эту память для хранения коэффициентов, стостояния регуляторов и т.д. для восстановления после перезагрузки или простоя, подскажите в чем дело и как работать с этой памятью.
С Уважением, Zevaka.
|
|
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
|
В описании ошибки. Энергонезависимую память пользуют другие функции: Read_user_ram Syntax: unsigned char read_user_ram(unsigned int index) Description: Reads the value in backup RAM at index address, 12 KB total backup RAM, index = 0 - 6143;
Write_user_RAM Syntax: void write_user_RAM(unsigned int index, BYTE data) Description: Writes a byte to battery backup memory. Parameter Description index An index for data in the battery backup RAM, from 42001 to 48144; 12 KB battery backup SRAM in total. data A byte of data that the programmer wants to write to battery-protected SRAM. Return value: None. Мало того, firmware должно быть старше версии А2.4, а то были глюки со смещением адресов. |
|
Новичок Присоединился: 22 Декабрь 2004 Online Status: Offline Публикации: 6 |
|
Спасибо за ответ, буду пробовать. Я тут пытал функции read_ASCII_ram() и write_ASCII_ram(), обнаружил, что через них можно тоже писать (куда ?), но данные сохраняются только в количестве около 7К. В документации об этих функциях ничего нет. Короче, ребята, ADAM5511 - глючная машина.
С Уважением, Zevaka.
|
|
Действительный член Присоединился: 23 Июнь 2003 Категория: Russian Federation Online Status: Offline Публикации: 128 |
|
Ошибки в документации и глюки - это две большие разницы... |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
К контроллеру ADAM-5510 в составе досовской утилиты прилагается пример ex5.c, который описывает работу с этими функциями. ADAM-5511 в этом отношении ничем не должен отличаться. Ну а если функциями пользоваться не хочется, то в описании сказано, что Backup RAM расположена по адресам 30000H...3EFFFH. |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Новичок Присоединился: 22 Декабрь 2004 Online Status: Offline Публикации: 6 |
|
Не ответит ли г-н Максим Ананских как специалист Prosoft, сколько же все-таки Backup RAM реально можно использовать для своих нужд в ADAM-5511 ? В документации сказано, что 60К. Эксперименты показывают, что реально можно использовать около 7К. По поводу примера ex5.c. Пробовал, не работает. В примере используются функции read_backup_ram() и write_backup_ram(), о моих экспериментах с этими функциями см. сообщение 1. В заключение вопрос к Максиму Ананских. Исправляются ли ошибки в документации и где можно почитать эти исправления, чтобы не отнимать время у участников форума. С уважением, Zevaka.
|
|
Новичок Присоединился: 25 Июнь 2004 Online Status: Offline Публикации: 24 |
|
Доброго времени суток!
Не знаю, насколько может быть полезна моя информация, но в свое время, столкнувшись с аналогичной проблемой, я обнаружил следующее: 1. Объявлений функций read_backup_ram и write_backup_ram в файле 5511drv.h просто нет, но в библиотеке utility.lib тела функций есть. Так что пришлось добавить объявления руками.
2. Функции read(write)_backup_ram работают, если указывать адреса в диапазоне 0x1000-0x2FFF, т.е. доступно 8KB.
Сильно сомневаюсь, что стоит использовать такой "доморощенный" метод работы с контроллером, но, к сожалению, попытки прояснить ситуацию с наличием корректного описания к ADAM-5511 ни к чему не привели.
С уважением. |
|
Новичок Присоединился: 22 Декабрь 2004 Online Status: Offline Публикации: 6 |
|
Спасибо, HOLO, попробую использовать Вашу информацию. С уважением, Zevaka.
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
В ADAM-5511 обе пары функций, read_backup_ram / write_backup_ram и read_user_ram / write_user_ram, работают с диапазоном физических адресов 3C000H...3EFFFH, то есть с их помощью можно обращаться к 12 кбайт статической памяти. Первая пара читает и записывает байты, в то время как вторая работает со словами. При отсутствии доступа к первым 4 кбайт этой памяти, по информации от Advantech, помогает обновление Firmware контроллера (программки adam5511.exe) до версии 1.10. Адреса 30000H...33FFFH, по-видимому, тоже можно использовать для хранения данных. Однако через библиотечные функции они не доступны. Это наводит на мысль, что они зарезервированы для нужд системы. Адреса 34000H...3BFFFH и 3F000H...3FFFFH используются системой. В заключение хотелось бы отметить, что сейчас имеется более современная линейка контроллеров, в которую входят ADAM-5510M, ADAM-5510E, ADAM-5510/TCP и т.д. |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Новичок Присоединился: 03 Ноябрь 2005 Категория: Russian Federation Online Status: Offline Публикации: 13 |
|
Проблема в том, что мне досталась программа, написанная 5 лет назад, и столько же лет работающая на нескольких Adam 5511. Она считывает с портов модуля ADAM-5090 и перекладывает их в регистры Modbus для дальнейшей передачи. Исходники от программы есть не все (кмпиляция не возможна). Но есть кусок, в котором эти данные просто перекладываются в регистры при помощи write_user_ram (хотя, конечно, может быть, исходники у меня не рабочие). Может, была версия Adam5511.exe, позволяющая писать в регистры при помощи этой функции?
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |