|
AT91RM9200 - мистика? SPI? или romboot.bin?, задачка не для слабонервных.... |
|
|
|
Jan 8 2007, 18:02
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Здравия желаю! уже несколько дней мучительная попытка запустить камешек 9200 и плату к нему Люди вот такая проблемма, помоги решить ее плз собрали макетную платку ( http://projects.org.ua/project/arm/9200/ ) пытаемся загрузить в нее romboot.bin ( следуем как написано в статье - http://heavy-online.ru/arm-linux/ ) и сталкиваемся с мистическим поведением контроллера, а именно: после того, как прицепились гипертерминалом - отсылаем по xmodem файлик - romboot.binон отсылается и появляется сообщение CCCCCCCCCCCCCCCCC AT91F_LowLevelInit(): Debug channel initialized press any key to enter bootloader
ATMEL LOADER VER 1.01 May 3 2006 15:21:06 *----------------------------------------* *----------------------------------------* 1: Download Dataflash [addr] 2: Read Dataflash [addr] 3: Start U-BOOT 4: Clear bootloader section in Dataflash *----------------------------------------* Enter: тут вроде все верно говорим Enter: 1 c0000000 Download Dataflash [0xc0000000] CCCCCCCCCCCCCCCCCC
отсылаем файл (как требует статья) и здесь начинается самое интересное: Modification of Arm Vector 6 :34340015
Write 10240 bytes in DataFlash [0xc0000000] -F- Data Abort detectedтоесть, казалось бы, по какой-то неведомой причине не пишется в DataFlash
Так, берем осциллограф и идем далее... проделываем тоже самое параллельно наблюдая осцилом за SPCK, MOSI и NPCS0и к нашему удивлению - на SPCK, MOSI и NPCS0 нет изменения логического уровня и данных вообще!!!!! аппартно все верно, все прозвонено тестером - с точки зрения железа все корректно, проверяли несколько раз! это настараживает и мы идем читать исходники от romboot-evm9200 (SPI 1:1 + схема почти такая же) только микруха у нас - AT45DB642 в исходнике разобрались - вроде все должно инициализироваться и SPI обязан работать...! фух однако SPI - НЕ РАБОТАЕТ... Люди - у кого есть какие мысли и идеи на этот счет? потому что реально уже отпало понимание происходяших глюков.... HELP PLZ !!!
--------------------
|
|
|
|
|
 |
Ответов
|
Jan 8 2007, 18:44
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(aaarrr @ Jan 8 2007, 17:28)  На висящем процессоре SPI работать и не должен - обратите внимание на строку -F- Data Abort detected. Нужно разобраться, почему возникает Data Abort. Так данные то реально не поступают на пины SPI вообще, как будто не проинициализирован вообще SPI тоесть состояние пинов не изменно... а что значит - "На висящем процессоре" ??? по терминалу то он как-то отвечает 8)))) Вы думанете что процессор по какойто причине завис? или я неверно Вас понял?
--------------------
|
|
|
|
|
Jan 8 2007, 18:57
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(PrSt @ Jan 8 2007, 18:44)  а что значит - "На висящем процессоре" ??? по терминалу то он как-то отвечает 8)))) Вы думанете что процессор по какойто причине завис? или я неверно Вас понял? Я думаю, что случился Data Abort. А судя по тексту init.cpp - Код void AT91F_DataAbort() { AT91F_DBGU_Printk("-F- Data Abort detected\n\r"); while (1); } - процессор должен намертво встать на строке while (1).
|
|
|
|
|
Jan 9 2007, 00:20
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(aaarrr @ Jan 8 2007, 17:57)  Цитата(PrSt @ Jan 8 2007, 18:44)  а что значит - "На висящем процессоре" ??? по терминалу то он как-то отвечает 8)))) Вы думанете что процессор по какойто причине завис? или я неверно Вас понял?
Я думаю, что случился Data Abort. А судя по тексту init.cpp - Код void AT91F_DataAbort() { AT91F_DBGU_Printk("-F- Data Abort detected\n\r"); while (1); } - процессор должен намертво встать на строке while (1). верно, вот когда он встанет на while(1) вопроса нет - но ведь он оказывается здесь и заходит в процедуру _DataAbort() после какой-то проблемы.... и видимо по той причине что где-то какие-то проблемы, а именно как я уже писал реально"физически" не работает SPI как перифирия вообще.... по этой причине он и попадает в эту процедуру... и это логично... но почему нет данных на SPI? ведь и инициализация проведена была корректно (я так подозреваю что всетаки корректно, если верить коду...) и потом попытка отослать данные по SPI, следовательно на пинах должен был осциллографом увидеть клоки и данные, а там девственная тишина как в пещере... Цитата(COMA @ Jan 8 2007, 19:26)  Попробуйте этот загрузчик. Писать по адресу 0x00000000, т. е. 1 00000000 Правда он под 16 МГц. ок, спасибо большое - попробую (кстати - а исходник можно тоже посмотреть - что хоть шить буду?) перепаять кварц с 18.432 на 16.0 не проблема, тем более если верить даташиту, то можно и не перепаивать - должен стартонуть...
--------------------
|
|
|
|
|
Jan 9 2007, 00:45
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(PrSt @ Jan 9 2007, 00:20)  верно, вот когда он встанет на while(1) вопроса нет - но ведь он оказывается здесь и заходит в процедуру _DataAbort() после какой-то проблемы.... и видимо по той причине что где-то какие-то проблемы, а именно как я уже писал реально"физически" не работает SPI как перифирия вообще.... по этой причине он и попадает в эту процедуру... и это логично... Вы путаете причину и следствие. "Физически" SPI работает, просто до его применения дело не доходит из-за вылета в Data Abort. Причиной этому может служить некорректное обращение к памяти - неверный адрес или ошибка выравнивания. Сообщение терминала: Write 10240 bytes in DataFlash [0xc0000000] -F- Data Abort detectedКод из main.cpp: Код printf("\n\rWrite %d bytes in DataFlash [0x%x]\n\r",SizeToDownload, DeviceAddress); crc1 = 0; pAT91->CRC32((const unsigned char *)AddressToDownload, SizeToDownload , &crc1); // write the dataflash write_dataflash (DeviceAddress, AddressToDownload, SizeToDownload); Возможно, ошибка возникает при выполнении CRC32. Соответствующую диагностику добавить проблемы не составит.
|
|
|
|
|
Jan 9 2007, 10:48
|

http://uschema.com
   
Группа: Свой
Сообщений: 708
Регистрация: 16-02-06
Из: UK(Ukrainian_Kingdom) Kharkov
Пользователь №: 14 394

|
Цитата(aaarrr @ Jan 8 2007, 23:45)  ... Вы путаете причину и следствие. "Физически" SPI работает, просто до его применения дело не доходит из-за вылета в Data Abort. Причиной этому может служить некорректное обращение к памяти - неверный адрес или ошибка выравнивания. Сообщение терминала: Write 10240 bytes in DataFlash [0xc0000000] -F- Data Abort detectedКод из main.cpp: Код printf("\n\rWrite %d bytes in DataFlash [0x%x]\n\r",SizeToDownload, DeviceAddress); crc1 = 0; pAT91->CRC32((const unsigned char *)AddressToDownload, SizeToDownload , &crc1); // write the dataflash write_dataflash (DeviceAddress, AddressToDownload, SizeToDownload); Возможно, ошибка возникает при выполнении CRC32. Соответствующую диагностику добавить проблемы не составит. Вы по ходу правы, если верить огрызку кода... этого я не заметил честно говоря... так...веселье наступает... тогда, вопросиком плавно переходим к новому вопросику связанным с корректной работой схемы... а именно с работой с памятью... вопрос по памяти: используется SAMSUNG K4S561632E-IC75 + абсолютно на всех цепях от МК до RAM стоят резюки на 33 Ом... - могут ли они както влиять? или может проще Вам показать схему, на эту плату, что бы посмотреть правильно ли мы память вообще прицепили к МК?
--------------------
|
|
|
|
|
Jan 9 2007, 12:07
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(PrSt @ Jan 9 2007, 10:48)  Вы по ходу правы, если верить огрызку кода... этого я не заметил честно говоря... так...веселье наступает... тогда, вопросиком плавно переходим к новому вопросику связанным с корректной работой схемы... а именно с работой с памятью... Стоп! Причем здесь корректная работа памяти? С ней, скорее всего, все в порядке. Data Abort возникает из-за некорректного обращения к памяти, а не по причине неисправности оной. У AT91RM9200 есть MC Abort Status Register и MC Abort Address Register - выведите их значения printf'ом в DataAbort(), и станет ясно, где происходит глюк.
|
|
|
|
Сообщений в этой теме
PrSt AT91RM9200 - мистика? SPI? или romboot.bin? Jan 8 2007, 18:02       PrSt Цитата(aaarrr @ Jan 9 2007, 11:07) Стоп... Jan 9 2007, 16:52        PrSt Цитата(PrSt @ Jan 9 2007, 15:52) что это ... Jan 10 2007, 11:57         aaarrr Цитата(PrSt @ Jan 10 2007, 11:57) дело в ... Jan 10 2007, 13:18          PrSt Цитата(aaarrr @ Jan 10 2007, 12:18) Могу ... Jan 10 2007, 15:40           aaarrr Цитата(PrSt @ Jan 10 2007, 15:40) а как э... Jan 10 2007, 15:49            PrSt Цитата(aaarrr @ Jan 10 2007, 14:49) Посмо... Jan 10 2007, 17:25             aaarrr Цитата(PrSt @ Jan 10 2007, 17:25) в асмов... Jan 10 2007, 18:22              PrSt Цитата(aaarrr @ Jan 10 2007, 17:22) Посмо... Jan 11 2007, 12:09               aaarrr Цитата(PrSt @ Jan 11 2007, 12:09) Подскаж... Jan 11 2007, 12:23                PrSt Цитата(aaarrr @ Jan 11 2007, 11:23) Честн... Jan 12 2007, 17:38                 aaarrr Цитата(PrSt @ Jan 12 2007, 17:38) Честно ... Jan 12 2007, 18:06                  PrSt Цитата(aaarrr @ Jan 12 2007, 17:06) Кодas... Jan 12 2007, 18:44                   aaarrr Цитата(PrSt @ Jan 12 2007, 18:44) тоесть ... Jan 12 2007, 19:00                    PrSt Цитата(aaarrr @ Jan 12 2007, 18:00) Тепер... Jan 12 2007, 19:12                     aaarrr Цитата(PrSt @ Jan 12 2007, 19:12) если я ... Jan 12 2007, 20:49                      PrSt Цитата(aaarrr @ Jan 12 2007, 19:49) Значи... Jan 15 2007, 00:31         AlexBoy Цитата(PrSt @ Jan 10 2007, 10:57) Цитата(... Jan 10 2007, 18:16          PrSt Цитата(AlexBoy @ Jan 10 2007, 17:16) JTAG... Jan 10 2007, 18:32           AlexBoy Цитата(PrSt @ Jan 10 2007, 17:32) Цитата(... Jan 10 2007, 20:09 COMA Попробуйте этот загрузчик.
Писать по адресу 0x0000... Jan 8 2007, 20:26 PrSt Цитата(COMA @ Jan 8 2007, 19:26) Попробуй... Jan 9 2007, 10:27 COMA Исходники - без проблем.
Переделанный атмеловский... Jan 9 2007, 01:15 Dron_Gus Пытаюсь скачать этот файл. Все нормально. Только в... Jan 9 2007, 04:23 COMA Проект не мой. Попробую разобраться. Jan 9 2007, 08:49 COMA Дайте схему.
P.S. Можете помочь ?
http://electron... Jan 9 2007, 10:57 PrSt Цитата(COMA @ Jan 9 2007, 09:57) Дайте сх... Jan 9 2007, 11:15 Uree Насчет модели - проверял. При наличии резисторов ... Jan 9 2007, 11:33 COMA Насчет модели - у меня двухслойка. Резисторы 68 Ом... Jan 9 2007, 11:49 khach Вы что, с дуба все упали?ИМХО. Кто и где сказал за... Jan 15 2007, 18:46 aaarrr Цитата(khach @ Jan 15 2007, 18:46) Вы что... Jan 15 2007, 18:56  Lelick А вам кажется подозрительной фраза:
Modification... Jan 15 2007, 19:13   aaarrr Цитата(Lelick @ Jan 15 2007, 19:13) А вам... Jan 15 2007, 19:22    PrSt Цитата(aaarrr @ Jan 15 2007, 18:22) Совер... Jan 15 2007, 22:33    PrSt Цитата(aaarrr @ Jan 15 2007, 18:22) Совер... Jan 16 2007, 11:09     aaarrr Цитата(PrSt @ Jan 16 2007, 11:09) и - УРА... Jan 16 2007, 11:36      PrSt Цитата(aaarrr @ Jan 16 2007, 10:36) Цитат... Jan 16 2007, 16:29       PrSt Цитата(PrSt @ Jan 16 2007, 15:29) первая ... Jan 17 2007, 14:16        PrSt Цитата(PrSt @ Jan 17 2007, 13:16) а вот н... Jan 18 2007, 10:10         Lelick проверь в rm9200.h значения master_clock и main_cl... Jan 18 2007, 12:36          PrSt Цитата(Lelick @ Jan 18 2007, 11:36) прове... Jan 18 2007, 14:48           vanokuten если используется romboot.bin и uboot загрузка из ... Jan 18 2007, 22:16            PrSt Цитата(vanokuten @ Jan 18 2007, 21:16) ес... Jan 31 2007, 13:47 aaarrr Попробую кратко изложить свои мысли по поводу Ваше... Jan 16 2007, 00:18 PrSt Цитата(aaarrr @ Jan 15 2007, 23:18) Попро... Jan 16 2007, 10:15 nvn >CCCCCCCCCCCCCCCCC
>AT91F_LowLevelInit(): De... Jan 16 2007, 11:09 AlexMad Цитата(nvn @ Jan 16 2007, 11:09) З.Ы.: да... Feb 13 2007, 21:57  PrSt Цитата(AlexMad @ Feb 13 2007, 20:57) Цита... Feb 14 2007, 10:39   AlexMad Цитата(PrSt @ Feb 14 2007, 10:39) Цитата(... Feb 14 2007, 10:54    PrSt Цитата(AlexMad @ Feb 14 2007, 09:54) Снач... Feb 14 2007, 11:08     AlexMad Цитата(PrSt @ Feb 14 2007, 11:08) Цитата(... Feb 17 2007, 18:10      PrSt Цитата(AlexMad @ Feb 17 2007, 17:10) Срав... Feb 18 2007, 00:25 boez Стас, а ты не пробовал прицеплять к 9200 CrossWork... Jan 16 2007, 11:22 COMA Помочь не чем
У меня все заработало с полпинка п... Feb 1 2007, 08:59 PrSt Цитата(COMA @ Feb 1 2007, 07:59) Помочь н... Feb 1 2007, 11:42  PrSt Цитата(PrSt @ Feb 1 2007, 10:42) пробую и... Feb 6 2007, 13:03   vanokuten Цитата(PrSt @ Feb 6 2007, 12:03) Цитата(P... Feb 7 2007, 13:04    PrSt Цитата(vanokuten @ Feb 7 2007, 12:04) Цит... Feb 8 2007, 16:15     vanokuten С каким bootargs запускаемся ?
Поставь пару print... Feb 12 2007, 13:36      PrSt Цитата(vanokuten @ Feb 12 2007, 12:36) С ... Feb 12 2007, 16:14       Lelick tftpboot 20007fc0 uImage;bootm 20007fc0 Feb 12 2007, 18:59        PrSt Цитата(Lelick @ Feb 12 2007, 17:59) tftpb... Feb 13 2007, 10:17         Lelick эти адреса зависят от утилиты mkinitrd, которой ну... Feb 13 2007, 10:58          vanokuten а вообще включен в Linux kernel
CONFIG_SERIAL_AT9... Feb 13 2007, 11:37           PrSt Цитата(vanokuten @ Feb 13 2007, 10:37) а ... Feb 13 2007, 22:07            vanokuten >bootargs=root=/dev/ram rw initrd=0x21100000,60... Feb 14 2007, 01:47             PrSt Цитата(vanokuten @ Feb 14 2007, 00:47) ... Feb 14 2007, 10:23      PrSt Цитата(vanokuten @ Feb 12 2007, 12:36) С ... Feb 14 2007, 11:34       Lelick должна быть выполнена следующая последовательность... Feb 14 2007, 14:24        PrSt Цитата(Lelick @ Feb 14 2007, 13:24) должн... Feb 14 2007, 14:50         Lelick пункт 3, а именно обработку утилитой mkinitrd, нуж... Feb 14 2007, 14:58          PrSt Цитата(Lelick @ Feb 14 2007, 13:58) пункт... Feb 14 2007, 15:05           Lelick выполни c опциями -A arm -O linux -T kernel -C gz... Feb 14 2007, 15:10            PrSt Цитата(Lelick @ Feb 14 2007, 14:10) выпол... Feb 14 2007, 15:44             Lelick Цитата(PrSt @ Feb 14 2007, 15:44) Цитата(... Feb 14 2007, 15:56              PrSt Цитата(Lelick @ Feb 14 2007, 14:56)
load... Feb 14 2007, 16:24               Lelick попробуй не зипованый кернел, возможно в u-boot ко... Feb 14 2007, 16:40                PrSt [quote name='Lelick' post='210866... Feb 14 2007, 16:47                 Lelick ты меня неправильно понял, ты взял тот же самый фа... Feb 14 2007, 16:55                  PrSt Цитата(Lelick @ Feb 14 2007, 15:55) ты ме... Feb 14 2007, 17:09                   Lelick авторизуй меня в Icq Feb 14 2007, 17:17                    PrSt Цитата(Lelick @ Feb 14 2007, 16:17) автор... Feb 14 2007, 17:19                    PrSt Цитата(Lelick @ Feb 14 2007, 16:17) автор... Feb 20 2007, 15:29 AlexMad Разобрался, почти сразу после того как написал. Пр... Feb 18 2007, 02:05 This is j.b а можно поделиться loader(от lelick)
у меня анало... Feb 21 2007, 18:30 PrSt B)-->(This is j.b @ Feb 21 2007, 17:30) ... Feb 21 2007, 18:50  AlexMad [quote name='PrSt' date='Feb 21 2007, ... Feb 22 2007, 09:45   PrSt Цитата(AlexMad @ Feb 22 2007, 08:45) Дума... Feb 22 2007, 10:20    PrSt Цитата(PrSt @ Feb 22 2007, 09:20) щяс у м... Feb 22 2007, 12:22 nvn у меня с romboot тоже были проблемы AT45DB321 не ш... Feb 22 2007, 08:35 This is j.b полистал исходники romboot
нашел такие вот строки... Feb 22 2007, 16:24 PrSt B)-->(This is j.b @ Feb 22 2007, 15:24) ... Feb 22 2007, 17:47 This is j.b код взял из даташита. (это маскированые биты стаус... Feb 23 2007, 01:29
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|