Jump to content

    

Первый запуск платы

Ситуация такая:

Не могу через COM порт запустить SAM-BA, выдает ошибку про неправильный processor ID. Через USB запускаеться и находит.

Залил в датафлэш два файла: boot и uboot.

Отключаю USB. Выставляю необходимые параметры COM порта, втыкаю USB-COM через нульмодемный кабель в верхний разъем, ставлю перемычки для подключения посл. порта к процу. Перезапускаю плату.

В терминале тишина...

 

Верчу я плату в руках (пару минут), вдруг замечаю что в терминале

RomBoot

>

и тишина. После рестарта полная тишина.

 

RS232 на плате проверил, замкнув RX TX, работает, что на входе то и на выходе.

 

Вопрос почему не загружаеться?

Куда копать?

Share this post


Link to post
Share on other sites

Дополнительная информация:

JTAG не подключен. Нужно ли запаивать S1-S3(по схеме)?

SDRAM- V54C3256164VBT7. AT24, NAND Flash DM9161 не впаяны. На кварцах кондеры вместо 10pF 12pF.

308_03145_0_V54C3256_16_80_40_4V_T_S_B_.pdf

Share this post


Link to post
Share on other sites

точно использовали бинарники взятые с сайта, Romboot - странное приглашение - была подобная програмка которая грузилась во внутреннюю рам и прошивала флэш, boot - вроде не должен выдавать приглашений - посмотрите по текстам, а u-boot - так и выдает u-boot

Share this post


Link to post
Share on other sites

Состояние дел.

При загрузке bootstrap заливал через Send file. Заменил на Send boot file, тепер в терминале выдает Start AT91BootStrap...

Больше ничего не выдает. Грешу на неправильную инициализацию SDRAM. bootstrap uboot с сайта siberia-ge.com.

Как проверить?

Есть ли какие тестовые программы, чтобы залить вместо bootstrap?

С процесором только начинаю, поэтому не пинайте сильно.

 

[EDIT]

При работе с самбой выдавало:

loading history file ... 0 events added                                                              
SAM-BA console display active (Tcl8.4.13 / Tk8.4.13)                                                 
(AT91-ISP v1.10) 1 %                                                                                 
(AT91-ISP v1.10) 1 % DATAFLASH::SelectDataflash AT91C_SPI0_CS1                                       
-I- Init SPI0 for DataFlash interfaces                                                               
-I- Configure SPI0 PIOs
-I- Reset the SPI0
-I- Configure SPI0 in Master Mode (no CS selected)
-I- Configure SPI0 CS0 for DataFlash AT45
-I- Configure SPI0 CS1 for DataFlash AT45
-I- Disable the RX and TX PDC transfer requests
-I- Reset all Counter register Next buffer first
-I- Enable the RX and TX PDC transfer requests
-I- End of Init_DataFlash
-I- Switch to the correct PCS of SPI0 Mode Register (Fixed Peripheral Selected)
-I- Chip Select 1 Selected
-I- Enable the SPI0
-I- Wait for dataflash ready (bit7 of the status register)
-I- DataFlash AT45DB321
-I- End of Select DataFlash
-I- Initialize SDRAM
-I- Configure PIOC as peripheral (D16/D31)
-I- Init MATRIX to support EBI0 CS1 for SDRAM
-I- Init SDRAM
-I- 1. A minimum pause of 200us is provided to precede any signal toggle
-I- 2. A Precharge All command is issued to the SDRAM
-I- *pSDRAM = 0;
-I- 3. Eight Auto-refresh are provided
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- *pSDRAM = 0;
-I- 4. A mode register cycle is issued to program the SDRAM parameters
-I- *(pSDRAM+0x20) = 0;
-I- 5. Write refresh rate into SDRAMC refresh timer COUNT register
-I- 6. A Normal Mode Command is provided, 3 clocks after tMRD is set
-I- *pSDRAM = 0;
-I- End of Init_SDRAM_48

 

Это нормально?

Edited by ecos-rtos_in_ua

Share this post


Link to post
Share on other sites

Я по опыту с AT91RM9200, 9260 не прошивал, не помню точно как там сделано, поидее должно быть похоже на AT91RM9200, там сделано следующим образом у проца есть ножка если она при ресете в 0 то идет загрузка из внешней флэш {которая на платочке} если в 1 то из внутренней пзу выполняется програмка которая пытается загрузиться с I2C со SPI flash, если там ничего нет то она пытается загрузить внешнюю програмку

во внутреннюю RAM по USB интирфейсу, а если не получается по по DBGU порту, протокол передачи x-модем, соответсвенно у атмела есть посылалка файла по USB.

 

Програмка прогруженая во внутреннюю SRAM может подцепить SDRAM, залить в неё по DBGU или USB файл большего размера и его прошить. Тут наверное также, на сайте я вижу:

 

http://www.siberia-ge.com/doc/boot.bin

http://www.siberia-ge.com/doc/u-boot.bin

 

первая програмка это програмка прошиваемая в первый сектор flash - загрузчик для u-boot-а, она просто инициирует SDRAM, разворачивает u-boot в неё, и передает управление на u-boot. Сам u-boot пишется во второй сектор. Наверное.

 

Самой програмки прошивальщика не видно, надо документацию почитать :-)

 

Те если используете продукты от микрософта, то там по идее должен быть терминал,

а в нем есть пункт меню Send File, если его выбрать выдается диалог в нем указывается

x-модем и отсылаемый файл. Нодо послать сначала програмку прошивальщик, а

потом если она умеет работать с COM портом boot.bin, u-boot.bin, я так думаю.

В линуксе для отслыки фалов по x-модему есть утилиточка sx.

 

Вы там у них спросите, письмом, суппорт есть суппорт .

Edited by dch

Share this post


Link to post
Share on other sites

boot uboot залиты в флэш. Только запуск стопорится на этапе bootstrap.

 

Такой вопросик. Кварц 32 кГц на этапе bootstrap-а должен генерировать. А то я стою осцилографом на нем и генерации не вижу. Щуп обычный, к кончу припаян кондер на 12пик, для компенсации эмкости щупа. Можно так мерять?

 

Платку я паял сам. Покупал чистую ПП.

Edited by ecos-rtos_in_ua

Share this post


Link to post
Share on other sites
пробую тест из http://electronix.ru/forum/index.php?showtopic=58891

 

[edit]

Терминал пустой.

Не на том порте смотрел.

Тесты запускаються, проходит только тест 2. Будем копать...

Share this post


Link to post
Share on other sites

Вот что я узнал в результате тестов:

тестовое число - результат теста

0xcaffffff PASSED

0xcfafffff PASSED

0xcffaffff PASSED

0xcfffafff PASSED

0xcfffffaf PASSED

0xcffffffa PASSED

 

0x0fffffff FAILED

0x1fffffff FAILED

0x2fffffff FAILED

0x3fffffff FAILED

0x4fffffff PASSED

0x5fffffff PASSED

0x6fffffff PASSED

0x7fffffff PASSED

0x8fffffff FAILED

0xAfffffff FAILED

0xBfffffff PASSED

0xCfffffff PASSED

0xDfffffff PASSED

0xEfffffff PASSED

0xFfffffff PASSED

 

Можно ли узнать в чем проблема, с памятью или с шиной?

 

Листинг программы теста

/*******************************************************************************
;
;    This module is presented here only to serve as a sample for
;    AT91SAM9260 program development. 
;    BiPOM Electronics provides this module as is and 
;    does not guarantee its functionality or suitability for a particular purpose.
;    Please e-mail any questions and suggestions to tech@bipom.com
;
;    Module: mmarm9_sdram.c
;
;    Revision: 1.01
;
;    Description:    The example allows to check all 64-MByte SDRAM on Mini-Max/ARM9
;                    Target processor: AT91SAM9260    
;
;    This program is written using GNU ARM Compiler (www.gnuarm.org)
;
********************************************************************************
*/
#include "Bootstrap/include/part.h"
#include "Bootstrap/include/main.h"
#include "Bootstrap/include/debug.h"
#include "Bootstrap/include/dataflash.h"
#include "mmarm9_hw_init.h"
//
#include "mmarm9_sdram.h"
//
void TestValue_SDRAM(unsigned long value,unsigned long test)
{
    unsigned long *ptSDRAM;
    unsigned long ndx;
    unsigned char flag=0;
    unsigned long memStart = 0x20000000;    /* SDRAM starts here */    
    unsigned long memSize = (16*1024*1024); /* 16x4=64-MByte SDRAM */
    char testStr[3];
    //
    testStr[0]=test+'0';
    testStr[1]=' ';
    testStr[2]=0;
    dbg_print("\n\rTEST");
    dbg_print(testStr);
    //
    ptSDRAM=(unsigned long*)memStart;
    for(ndx=memStart;ndx<memStart+memSize;ndx++)
    {
        // Special tests 5,6
        if(test == 5) value = ndx;
        if(test == 6) value = ((ndx & 0xFFFF)<<16)|(ndx & 0xFFFF);
        if(test == 7) value = ((ndx & 0xFFFF)<<16);
        if(test == 8) value = (ndx & 0xFFFF);
        //
        *ptSDRAM++=value;
    }
    //
    ptSDRAM=(unsigned long*)memStart;
    for (ndx=memStart;ndx<memStart+memSize;ndx++) 
    {
        // Special tests 5,6
        if(test == 5) value = ndx;
        if(test == 6) value = ((ndx & 0xFFFF)<<16)|(ndx & 0xFFFF);
        if(test == 7) value = ((ndx & 0xFFFF)<<16);
        if(test == 8) value = (ndx & 0xFFFF);
        //
         if((*ptSDRAM++)!=value)    flag= 1;
    }
    //
    if( flag)    dbg_print("FAILED");
    else        dbg_print("PASSED");
}
//
int main(void)
{
    /* Hardware Initialization */
    hw_init();
    /* Download some code to process DF recovery feature */
    load_df(AT91C_SPI_PCS_DATAFLASH, IMG_ADDRESS, IMG_SIZE, JUMP_ADDR);
    /* Loop forever */
    while(1)
    {
        dbg_print("\n\rStart Mini-Max/ARM9 SAM9260 SDRAM test...");
        TestValue_SDRAM(0x00000000,1);
        TestValue_SDRAM(0xFFFFFFFF,2);
        TestValue_SDRAM(0xAAAAAAAA,3);
        TestValue_SDRAM(0x55555555,4);
        TestValue_SDRAM(0x00000000,5);
        TestValue_SDRAM(0x00000000,6);
        TestValue_SDRAM(0x00000000,7);
        TestValue_SDRAM(0x00000000,8);
        dbg_print("\n\rStop SDRAM test");
    }
}
/*EOF*/

Share this post


Link to post
Share on other sites

Продолжаю мучать плату.

Помыл ее спиртом, высушил, включил.

Теперь в тесте после записи всех 0 в память при чтении первым читается число 0000393216(десятичное) или 1100000000000000000 (двоичное). После него читаються единички во всех разрядах FFFFFFFF. Память имеет максимальную частоту 143МГц. Настройки памяти в тесте не менял.

Помогите страждующему, а то совсем грустно...

Share this post


Link to post
Share on other sites
Такой вопросик. Кварц 32 кГц на этапе bootstrap-а должен генерировать.

да на AT91RM9200 - этот работает, а мегагерцовый нет, програмка стартует и его заводит в явном виде. Я обычно использовал ЧД - тип корпуса, около 400 мв - у него размах. У них там по форуму был какой то баг в железке - связанный с дисплейчиком, типа если запаять - питание посажено на землю. У Вас наверное поправлено, надо наверное прозвонить - у них вроде работает по форуму, маловероятно что Вы так разошлись по памяти. Маин кварц такого же номинала ?

Edited by dch

Share this post


Link to post
Share on other sites
Маин кварц такого же номинала ?

да

насчет бага в ПП, то ПП последней ревизии Siberia 5 Rev 1.02

Edited by ecos-rtos_in_ua

Share this post


Link to post
Share on other sites

Легким движением руки ... (с паяльником) память, память, память возращается к жизни.

Один этап пройден.

С памятью наконец разобрался.

Был непропаян ChipSelect. Когда звонил тестером, он зараза прижимался и показывал, что связь есть. Вот такая вот засада может быть.

 

Идем дальше.

Записал загрузчик bootstrap(0x0000) u-boot (0x8000). На экране терминала виден только загрузчик bootstrap.

 

Через сколько секунд запускаеться u-boot? Запуститься ли он если нет чипа Ethernet (не запаян DM9161)?

Share this post


Link to post
Share on other sites

Процес пошел:

Скомпилировал bootstrap v1.11 от ATMEL.

RomBOOT                                                                                                           
>Start AT91Bootstrap...                                                                                           


U-Boot 1.1.5 (Feb  9 2008 - 19:28:48)

DRAM:  64 MB
NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 ( NAND 1GiB 3,3V 8-bit)
NAND: Pagesize: 2048, Blocksize: 256K, OOBsize: 64                              
1024 MiB                                                                        
DataFlash:AT45DB321                                                             
Nb pages:   8192                                                                
Page Size:    528                                                               
Size= 4325376 bytes                                                             
Logical address: 0xD0000000                                                     
Area 0: D0000000 to D0003FFF (RO)                                               
Area 1: D0004000 to D0007FFF                                                    
Area 2: D0008000 to D0037FFF (RO)                                               
Area 3: D0038000 to D041FFFF                                                    
In:    serial                                                                   
Out:   serial                                                                   
Err:   serial                                                                   
PHY not reset!!                                                                 
Hit any key to stop autoboot:  0                                                
U-Boot> bootm 22200000                                                          
## Booting image at 22200000 ...                                                
   Image Name:   linux-2.6                                                      
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    1400392 Bytes =  1.3 MB                                        
   Load Address: 20008000                                                       
   Entry Point:  20008000                                                       
   Verifying Checksum ... OK                                                    
OK                                                                              

Starting kernel ...

Uncompressing Linux...........................................................................
................ do.
Linux version 2.6.22 (root@slava2005) (gcc version 4.2.0 20070413 (prerelease) (CodeSourcery Sourcery G++ Lite 208
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177                                                     
Machine: Atmel AT91SAM9260-EK                                                                                     
Memory policy: ECC disabled, Data cache writeback                                                                 
Clocks: CPU 198 MHz, master 99 MHz, main 18.432 MHz                                                               
CPU0: D VIVT write-back cache                                                                                     
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets                                                
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets                                                
Built 1 zonelists.  Total pages: 16256                                                                            
Kernel command line: noinitrd mem=64M root=/dev/mmcblk0p1 rw                                                      
AT91: 96 gpio irqs in 3 banks                                                                                     
PID hash table entries: 256 (order: 8, 1024 bytes)                                                                
Console: colour dummy device 80x30                                                                                
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)                                                     
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)                                                      
Memory: 64MB = 64MB total                                                                                         
Memory: 61952KB available (2572K code, 242K data, 120K init)                                                      
Mount-cache hash table entries: 512                                                                               
CPU: Testing write buffer coherency: ok                                                                           
NET: Registered protocol family 16                                                                                
Generic PHY: Registered new driver                                                                                
SCSI subsystem initialized                                                                                        
usbcore: registered new interface driver usbfs                                                                    
usbcore: registered new interface driver hub                                                                      
usbcore: registered new device driver usb                                                                         
NET: Registered protocol family 2                                                                                 
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                                                    
TCP established hash table entries: 2048 (order: 2, 16384 bytes)                                                  
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)                                                          
TCP: Hash tables configured (established 2048 bind 2048)                                                          
TCP reno registered                                                                                               
NetWinder Floating Point Emulator V0.97 (double precision)                                                        
JFFS2 version 2.2. (NAND) (SUMMARY)  �© 2001-2006 Red Hat, Inc.                                                   
io scheduler noop registered                                                                                      
io scheduler anticipatory registered (default)                                                                    
Epson S1D13XXX FB Driver                                                                                          
s1d13xxxfb: regs mapped at 0xc485c000, fb 2048 KiB mapped at 0xc4c00000                                           
Console: switching to colour frame buffer device 80x30                                                            
fb0: S1D13806 frame buffer device                                                                                 
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL                                               
atmel_usart.1: ttyS1 at MMIO 0xfffb0000 (irq = 6) is a ATMEL_SERIAL                                               
atmel_usart.2: ttyS2 at MMIO 0xfffb4000 (irq = 7) is a ATMEL_SERIAL                                               
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize                                             
loop: module loaded                                                                                               
Davicom DM9161E: Registered new driver                                                                            
Davicom DM9161A: Registered new driver                                                                            
Davicom DM9131: Registered new driver                                                                             
macb macb: Failed to detect PHY, aborting.                                                                        
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)                                  
Scanning device for bad blocks                                                                                    
Creating 2 MTD partitions on "NAND 1GiB 3,3V 8-bit":                                                              
0x00000000-0x04000000 : "Partition 1"                                                                             
0x04000000-0x40000000 : "Partition 2"                                                                             
atmel_spi atmel_spi.1: Atmel SPI Controller at 0xfffcc000 (irq 13)                                                
usbmon: debugfs is not available                                                                                  
at91_ohci at91_ohci: AT91 OHCI                                                                                    
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1                                                
at91_ohci at91_ohci: irq 20, io mem 0x00500000                                                                    
usb usb1: configuration #1 chosen from 1 choice                                                                   
hub 1-0:1.0: USB hub found                                                                                        
hub 1-0:1.0: 1 port detected                                                                                      
Initializing USB Mass Storage driver...                                                                           
usb 1-1: new full speed USB device using at91_ohci and address 2                                                  
usb 1-1: configuration #1 chosen from 1 choice                                                                    
hub 1-1:1.0: USB hub found                                                                                        
hub 1-1:1.0: 4 ports detected                                                                                     
usbcore: registered new interface driver usb-storage                                                              
USB Mass Storage support registered.                                                                              
udc: at91_udc version 3 May 2006                                                                                  
mice: PS/2 mouse device common for all mice                                                                       
i2c /dev entries driver                                                                                           
at91_i2c at91_i2c: AT91 i2c bus driver.                                                                           
usbcore: registered new interface driver usbhid                                                                   
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver                                                           
Advanced Linux Sound Architecture Driver Version 1.0.14 (Thu May 31 09:03:25 2007 UTC).                           
ALSA device list:                                                                                                 
  #0: AT73C213                                                                                                    
TCP cubic registered                                                                                              
NET: Registered protocol family 1                                                                                 
NET: Registered protocol family 17                                                                                
Root-NFS: No NFS server available, giving up.                                                                     
VFS: Unable to mount root fs via NFS, trying floppy.                                                              
VFS: Cannot open root device "mmcblk0p1" or unknown-block(2,0)                                                    
Please append a correct "root=" boot option; here are the available partitions:                                   
1f00      65536 mtdblock0 (driver?)                                                                               
1f01     983040 mtdblock1 (driver?)                                                                               
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

 

Возникли еще вопросы. Пробовал подключать монитор. Изображение сильно размыто. Чем это может быть вызвано?

Критичны ли значение L6,L7,L9 R103-R105 на выходе VGA. У меня значения резисторов по 75 Ом вместо 150. Значения дроселей все одинаково, величину не помню. Если необходимо, могу приложить фотографию снимка монитора.

 

Помогите пожалуйста.

Edited by ecos-rtos_in_ua

Share this post


Link to post
Share on other sites

Перепаял резистроры с 75 на 150 Ом. Убрал дроселя. запаял вместо них перемычки. Теперь изображение четкое, Но кусок изображения в нижней четверти экрана отображается сверху. Внизу мусор из разноцветных точек. В центре экрана изображение отличное.

 

К чему бы это?

 

Фото экрана

Edited by ecos-rtos_in_ua

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this