реклама на сайте
подробности

 
 
> Proteus и модель LPC2138 - глюки...
Regressor
сообщение Nov 16 2009, 13:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 10-01-09
Пользователь №: 43 111



Прошу совета у гуру. Делаю некое устройство, превращающее машину в что-то вроде умного дома на колесах. Устройство делается на основе LPC2378. Большую часть получаемых данных оно обрабатывает само и реагирует тоже само. Почти все данные можно получить с этого устройства на компьютер через USB либо ethernet ну и управляться оно тоже может через эти интерфейсы. Плюс оно имеет свой экран LCD 128x64 и 4 кнопки (esc, enter, <, >). Практически весь код (основа - nichelite) взаимодействия с датчиками машины, gps и компьютером написан, осталось сделать отрисовку данных на экране, меню и т.п. - т.е. интерфейс.

Чтобы не шить постоянно контроллер и проверять как смотрится тот или иной экран с данными решил сделать схему в протеусе и замоделировать интерфейс на нем. Взял в протеусе lpc2138, подключил к нему wg12864, 4 кнопки, кварц, виртуальный uart терминал. Скопировал проект в другой каталог и слегка его подрезал - убрал запуск задач сети, инициализацию usb, подправил загрузчик, отключил инициализацию отсутствующей переферии. Ставлю в keil девайс lpc2138, компилирую с созданием .hex. В настройках контроллера в протеусе указываю файл прошивки. Запускаю симуляцию и фик... Ничего... Тишина. Даже трейсы не показывают что PLL сконфигурен. В логе симуляции пишет что XTAL1 и XTAL2 not modelled - я так понимаю это означает что в симуляторе они не учитываются ? Убрал нафик оптимизацию - не помогло.

Ладно, чтобы посмотреть что за фигня ставлю дрова Proteus VSM AGDI и запускаю симуляцию через keil как отладку. Прохожу потихоньку инициализацию - все нормально. В трейсах пишет что мол PLL enabled FOSC=10Mhz, CCLK=60Mhz, FCCO=240Mhz а потом PLL connected OK. На этапе инициализации воткнул отрисовки логотипа на LCD - все нарисовалось. А дальше начинаются глюки - на ровном месте валится в DAbort (например в ns_printf валится в разных местах). Бывает и инициализацию не проходит. Все что можно уже проверил. Не могу понять в чем дело. Плюс совсем непонятные глюки с UART1 - на 2378 у меня делители расчитывались при инициализации для нужных скоростей, а потом брались уже из таблицы. Тут смотрю виртуальный терминал хрень выдает. Ставлю трейс на UART1 - смотрю в логах скорости совсем бредовые. Считаю делители пихаю их в DLL, DLM - на выходе бред. Ставлю DLL=1 DLM=0, смотрю скорость которую трейс пишет, считаю частоту - получаю как и положено 15Мгц (VPBDIV = 0). Путем экспериментов выяснил, что на любое значение DLM модель реагирует неадекватно и непредсказуемо sad.gif Короче потратил фигову кучу времени и получил 0 результата.

Кто-нибуть работал в протеусе с этой моделькой ? Это я что-то не так делаю или она такая глючная ?

З.Ы. Протеус у меня 7.5SP3....

Сообщение отредактировал Regressor - Nov 16 2009, 14:23
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 9)
IgorKossak
сообщение Nov 16 2009, 16:47
Сообщение #2


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Поубивал бы за всякие протеусы.
Вам шашечки или ехать? Вы что будете заказчику отдавать, работающий дивайс или картинки на экране о том, как он теоретически может работать?
Работайте с конкретным железом и разберитесь что такое отладка.
PS Возможно после всего этого Вы сможете смело именоваться Progressor
Go to the top of the page
 
+Quote Post
Regressor
сообщение Nov 17 2009, 03:12
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 10-01-09
Пользователь №: 43 111



Мне ехать с шашечками. Заказчик я сам. В протеусе как мне казалось отладить все будет быстрее. Похоже я ошибался. С отладкой я знаком.... Но в данном случае речь идет не про код, а про удобство управления и симпатичность интерфейса. Смотрю - там пиксел не так лежит, переделываю, шью, проверяю... На реальном устройстве это долго и муторно sad.gif

Теперь вот думаю, что в протеусе просто закончить отрисовку данных (это вроде получается сделать), а собственно интерфейс тестить уже на железке.
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Nov 17 2009, 07:32
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Для того чтобы отработать интерфейс не надо симулировать железо. Достаточно набросать форму в каком-нить вижуал си и переписать функции работы с лсд. И отлаживать интерфейс на ПК.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 17 2009, 08:14
Сообщение #5


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Regressor @ Nov 17 2009, 05:12) *
... переделываю, шью, проверяю... На реальном устройстве это долго и муторно sad.gif

Чтобы не перепрошивать во flash, проблемные куски можно отладить загружая программу в ОЗУ.
Go to the top of the page
 
+Quote Post
Regressor
сообщение Nov 17 2009, 11:59
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 10-01-09
Пользователь №: 43 111



У меня MT-Link... Внешнего ram у контроллера нету. Где можно почитать как отлаживать куски в памяти ?
Go to the top of the page
 
+Quote Post
Regressor
сообщение Nov 17 2009, 22:16
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 10-01-09
Пользователь №: 43 111



Вчера чисто ради интереса поменял в симуляторе проц на lpc2124 (как в VSM chess протеусовском) и все заработало нормально млин.... Бывает же такое.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Nov 18 2009, 08:14
Сообщение #8


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Regressor @ Nov 17 2009, 13:59) *
У меня MT-Link... Внешнего ram у контроллера нету. Где можно почитать как отлаживать куски в памяти ?

Подставляете другой скрипт линкера, где есть указание размещать код и векторы прерывания не во flash, а во внутреннем ОЗУ.
В программе придётся сделать перенаправление векторов и может ещё кое-что, сейчас не помню.
Поскольку ОЗУ не много, то вся программа может не влезть. Поэтому я и говорил об отладке не всей программы, а только проблемных кусков.

Цитата(Regressor @ Nov 18 2009, 00:16) *
Вчера чисто ради интереса поменял в симуляторе проц на lpc2124 (как в VSM chess протеусовском) и все заработало нормально млин.... Бывает же такое.

1. Совсем не факт, что заработает на реальном железе.
2. Если есть живой контроллер и MT-Link, то что же ещё Вам надо? Зачем тратить время на глючные модели?

Кстати, по поводу перепрошивки. Я при разработке своих проектов очень редко пользуюсь отладкой в ОЗУ, всегда шью прямо во flash даже пользуясь одной отладочной платой для многих проектов. Ещё ни разу не исчерпал ресурса.
Go to the top of the page
 
+Quote Post
Regressor
сообщение Nov 18 2009, 08:54
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 10-01-09
Пользователь №: 43 111



Почему это не заработает на реальном железе ? Уже работает. Речь о том чтобы красоты на графическом экранчике навести (чтобы видно было, чтобы лишних пикселей не было, чтобы просто, понятно и исчерпывающе) и удобство менюшек урегулировать. Все низкоуровневые вещи вроде LCDUpdate уже сделаны. Я просто перенес код работы с лсд и кнопками на протеус и он там работает.

При прошивке во флеш я нажимаю кнопку прошивки и жду пока шьется и проверяется. А это секунд 20. Потом смотрю, тыкаю кнопки, нахожу косяки, и правлю их. И опять. И по новой. Куча времени уходит. Пока это низкоуровневый код получения данных и дерганья ногами и обработки прерываний его удобнее на плате проверять. А интерфейс... Я вот сел вчера на диван с ноутом, сделаю кусок - скомпиляю, ctrl-f5 - и практически мнгновенно вижу результат. Код этот от железа не зависит, исхитрений особых нет.

Ресурс флеша вроде как 10000 циклов перезаписи. При том, что я пока писал софт перешился раз 200 не больше так что за ресурс то особо не переживаю.
Go to the top of the page
 
+Quote Post
Hmm
сообщение Nov 18 2009, 20:48
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 329
Регистрация: 22-06-04
Пользователь №: 124



Цитата(IgorKossak @ Nov 16 2009, 19:47) *
Поубивал бы за всякие протеусы.

+ Synopsys, Mentor, MODELSIM. Паяло и шнурок завсегда рулит smile3009.gif


--------------------
Талант не пропить ...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01424 секунд с 7
ELECTRONIX ©2004-2016