Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по загрузке EP9302 через UART1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
asen
Добрый день !

Вот есть вопрос в докуменьте написано что чтобы сделать загрузку через уарт1 надо:
1 - boot0 и eedat в высокий уровень а boot1 в низкий
2 - COM настоноить 9600:8:1
3- подать питание и получить на экране терминала символ "<"
Все выше описаное делалось и получалось
4- подать на уарт1 4 ASCII символа либо "CRUS" или "SRUC"
5- подать на уарт1 данные 2048 байт (можно ли меньше ? в каком формате ? как отправить их через терминал? как получить его в IAR фиксированой длинны 2048?)
6- Получить на терминале символ ">" сигнализирующий окончание приема!
После чего процессор переходит на физический адресс 0x80014000 и начинает исполнять полученный код в ARM режиме!

Все верно ?

Пока не получается кто знает возможные варианты ?
asen
Вот щас чтото произошло и теперь на входе RSTON как будто включается транзистор и подтягивает внешний резистор к земле как будто работает как выход с открытым коллектором ! что такое не пойму толь вход умер ! частота подтягивания гдето 2Гц ! такого не должно быть это точно или как ?
sff
Цитата(asen @ Mar 1 2007, 10:08) *
Вот щас чтото произошло и теперь на входе RSTON как будто включается транзистор и подтягивает внешний резистор к земле как будто работает как выход с открытым коллектором !

Ну так это задокументировано:
RSTOn Syscon 4ma User Reset in out - open drain

А вот про частоту подтягивания я что-то не понял... Это после подачи PORn через 0.5 сек реагирует RSTOn или как?
asen
Ну прикрутил я просто к входу RSTOn резистор чтоб тот поттягивал к 3,3в и смотрю осцилом а там прямоугольник с частотой 2Гц это нормально нет ?
sff
Цитата(asen @ Mar 1 2007, 11:29) *
Ну прикрутил я просто к входу RSTOn резистор чтоб тот поттягивал к 3,3в и смотрю осцилом а там прямоугольник с частотой 2Гц это нормально нет ?

нет, это не нормально!

А может это влияние схем из аппноутов? посмотрите что на ноге PORn творится...
У вас распаян аппаратный вотчдог (и буфер под 32768) ? как подсмотрел по картинке ревизия кристалла E1 так что он с обоими багами ..
asen
У меня стаит АТmega48 она генерит 32768 кГц и делает сбросы т.е подает низкий уровень на PORn и RSTOn во время включения питания. Т.е алгоритм ее работы такой ждем поевления высокого уровня RDLED после чего выжидаем еще 1 сек и опускаем линии PORn и RSTOn в низкий уровень на 0,2сек. также к ATmega прикручены 2 кнопки по которым при нажатии атмега выдает импульс на нужны вход сброса
К стати PORn все нармально !
Еще идеи есть кроме как сменить проц ?
sff
Цитата(asen @ Mar 1 2007, 12:10) *
У меня стаит АТmega48 она генерит 32768 кГц и делает сбросы т.е подает низкий уровень на PORn и RSTOn во время включения питания. Т.е алгоритм ее работы такой ждем поевления высокого уровня RDLED после чего выжидаем еще 1 сек и опускаем линии PORn и RSTOn в низкий уровень на 0,2сек. также к ATmega прикручены 2 кнопки по которым при нажатии атмега выдает импульс на нужны вход сброса
К стати PORn все нармально !
Еще идеи есть кроме как сменить проц ?

Вручную трогать RSTOn не обязательно, хоть она и помечена, как IO .. В референс дизайне у цирруса дергается только PORn.
Так что для чистоты эксперимента можно на меге ногу, идущую к цирюку RSTOn, вообще в 3 состояние...
asen
Вообщем так выставил на ноге меги отвечающей за RSTOn третие состояние но она по прежнему притянута к 3,3 через резистор 2,2к
Сейчас действия разворачиваются так включаем питание если долго плата лежала без питания и загрузка выставлена с уарт1 то прив включении питания красны светодиод сначало не горит примерно 1 сек потом подается на PORn импульс длятельностью 0,2с и он загарается и однаврименно на входе RSTOn опять появляется меандр частотой 2Гц да еще в терминал приходит символ < что толлько мне пока от этого не тепло не жарка какие эксперементы еще поставим
Andrei....
Цитата(asen @ Mar 1 2007, 13:43) *
Вообщем так выставил на ноге меги отвечающей за RSTOn третие состояние но она по прежнему притянута к 3,3 через резистор 2,2к
Сейчас действия разворачиваются так включаем питание если долго плата лежала без питания и загрузка выставлена с уарт1 то прив включении питания красны светодиод сначало не горит примерно 1 сек потом подается на PORn импульс длятельностью 0,2с и он загарается и однаврименно на входе RSTOn опять появляется меандр частотой 2Гц да еще в терминал приходит символ < что толлько мне пока от этого не тепло не жарка какие эксперементы еще поставим


как я понимаю - постоянно перегружается процессор! у меня была такое было при нестабильной работе часового кварца (подключённого к процессору), проверьте его запуск (обратите внимание на номиналы емкостей).
asen
А можно по подробней у меня сигнал 32768 Гц подается на сигнал XTAL1 c микроконтроллера АТмега через ограничитель из 2 последовательно включенных диодов т.е. в уровнях 0 и 1,2В какие там могут быть кварцы и конденсаторы? можете сказать как справились с этой проблемой? может уровень синнала еще уменьшить?
Andrei....
Цитата(asen @ Mar 2 2007, 06:01) *
А можно по подробней у меня сигнал 32768 Гц подается на сигнал XTAL1 c микроконтроллера АТмега через ограничитель из 2 последовательно включенных диодов т.е. в уровнях 0 и 1,2В какие там могут быть кварцы и конденсаторы? можете сказать как справились с этой проблемой? может уровень синнала еще уменьшить?


У меня использовался обычный часовой кварц, были проблемы с запуском. Без кварца, как известно процессор не стартует. Поскольку вы используете внешний генератор, вам должно быть виднее что делать. Но просто обратите внимание на этот момент. Если возможно, то попробуйте в качестве эксперемента часовой кварц.
asen
А при загрузкее с уарта должен вывод зеленого светодиода в 1 переключится или красного ?
Andrei....
Цитата(asen @ Mar 2 2007, 10:22) *
А при загрузкее с уарта должен вывод зеленого светодиода в 1 переключится или красного ?


во премя ресета горят одновремнно зелёный и красный, потом
при загрузке с UARTа должен загораться зелёный светодиод, красный выключается.
asen
А насчет алгоритма написанного в начале топа все правельно ? или я чтото не так понял ?
Andrei....
Цитата(asen @ Mar 2 2007, 11:45) *
А насчет алгоритма написанного в начале топа все правельно ? или я чтото не так понял ?


насколько я помню, всё так!
asen
А в каком формате отправлять фаил в bin или hex и как его получить спомощью IARа вы как отправляли по гипер терминалу
sff
Цитата(asen @ Mar 2 2007, 13:14) *
А в каком формате отправлять фаил в bin или hex и как его получить спомощью IARа вы как отправляли по гипер терминалу

В секции 4.1.2.2 (так она для 9315 называет подробно описано что когда передается и когда диод выключается)

Ну как написано в доке она эти первые 2048 байт внутренняя ROM помещает в eth буфер, расположенный в 0x80014000 и стартует в режиме арм супервизора.

Я вот для записи во flash пользуюсь утилитой download (как я понял, она сначало по указанной схеме отправляет так называемы primary boot code, потом этот код уже сам загружает по UART основной прошивщик secondary boot code, который уже и вытягивает весь образ флеши (с 0 байта).

И как отправить по гипертерминалу я вообще не представляю..

Чем вам download не устраивает? (download также поддерживает запись в SPI flash)
Andrei....
Цитата(asen @ Mar 2 2007, 13:14) *
А в каком формате отправлять фаил в bin или hex и как его получить спомощью IARа вы как отправляли по гипер терминалу


отправлять бинарный файл, видимо это bin (я c IARом не работал)
asen
Вообщем с загрузкой с SPI EEPROM разобрался все работает нармально светодиоды мигают а вот с загрузкой через уарт пока глухо !
Описываю что произходит включаю поддтяжку как написано в документе как написано для загрузки с уарта включаю питание сначало загараются все светодиоды потом красный гаснет и горит только зеленый в этот же момент на терминал выводится символ < далее пишу в терминале символы CRUS гаснет и зеленый светодиод далее посылаю в порт файл формата бин длинной 2048 байт с следующим содержанием

#include <ioep9302.h>

void Delay (unsigned long a) {
while (--a!=0);
}
int main()
{
int addr,data,status_reg;
PEDDR=3;

for (;;)
{


PEDR |=3;
Delay (500000);
PEDR=0;
Delay (500000);
}

return 0;
}

и все глухо встает намертво не мигает светодиод никак хоть ты лопни в чем ошибка не знаю !!!
Поможите кто знает или какие идеи есть на этот счет !
Andrei....
а этот же файл из eeprom нормально работает?
asen
Да работает нармально !
Andrei....
Цитата(asen @ Mar 15 2007, 14:08) *
Да работает нармально !


честно говоря с eeprom'не пробовал загрузку, но судя по описанию ситуациция аналогична UART'у.
сейчас снова проверил загрузку через UART - у меня всё работает (как вариант проверки можете загрузить мой бинарник). Однако следует учесть что:
1) полный размер загружаемого файла должен составлять 2048 байт, с учётом записи CRUS, причём весь файл грузится с 0x80014000, а потому управление передаётся на точку 0x80014004 (надо учесть этот момент при компиляции!!!)
2) при попытке загрузить больший файл почему то у меня запуска не происходило, так и не понял почему, но это уже видимо другие глюки.
asen
Огромное спасибо у меня какраз фаил был 2048 без учета CRUS и распрологался не по адрессу 80014004 а по адресу 80014000 вот вечером посмотрю наверное в этом и косяк если что выложу бинарник Спасибо !!!
Andrei....
Цитата(asen @ Mar 16 2007, 05:22) *
Огромное спасибо у меня какраз фаил был 2048 без учета CRUS и распрологался не по адрессу 80014004 а по адресу 80014000 вот вечером посмотрю наверное в этом и косяк если что выложу бинарник Спасибо !!!


Проверил загрузку из eeprom'а - один и тот же файл у меня загружается как с eeprom'а так и через UART (что вполне логично).
Viktor26
Товарищи, выложите пожалуйста проэкт в ИАРе мигания ледами загружаемый по UART1, а то толи я не туда в линкере данные бросаю:

-DROMSTART=80014004
-DROMEND=800147B1

-Z(CODE)INTVEC=800147C1-80014800

Толи другие проблеммы типа стартапа неправильного. Буду премного благодарен.
ПС: redboot_EP9302 грузится без проблемм, так что все ждамперы стоят правильно
aaarrr
Странный у Вас скрипт для линкера:
Цитата(Viktor26 @ Apr 18 2008, 11:07) *
-DROMSTART=80014004
-DROMEND=800147B1

-Z(CODE)INTVEC=800147C1-80014800


Цитата(Viktor26 @ Apr 18 2008, 11:07) *
Толи другие проблеммы типа стартапа неправильного. Буду премного благодарен.

Стартапа там как раз не требуется, только SP установить. Стандартный стартап и библиотеки лучше отключить.

Примером могу поделиться только под ADS.
Viktor26
Цитата(aaarrr @ Apr 18 2008, 10:28) *
Примером могу поделиться только под ADS.

Буду оч признателен. Мне побольшому счёту неважено наполнение, главное чтобы при загрузке по сериалу я почувствовал что что-то дышит, а там я уже внутренность переделаю.
aaarrr
Вот очень простой проект: Нажмите для просмотра прикрепленного файла
Грузить надо load_me.bin
Если захотите разобраться, что-то изменить и т.п., то придется поставить ADS 1.2
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.