12.04.2018 ClonicusDebugBoard

Материал из SRNS
Перейти к: навигация, поиск
(Известные проблемы)
(Известные проблемы)
 
(не показаны 48 промежуточных версий 2 участников)
Строка 12: Строка 12:
 
* Не правильно впаяны разъемы jtag. Исправлено на одной платах. Исправить документацию
 
* Не правильно впаяны разъемы jtag. Исправлено на одной платах. Исправить документацию
 
* SD карточка заблокирована PLD разъемами
 
* SD карточка заблокирована PLD разъемами
 +
* На bootstrap ноги etgPhy влияет zynq. Необходимо хотя бы изменить резисторы. По-хорошему как-то отсекать zynq от phy при bootstrap.
 +
* ВАЖНО: на RJ45 разъеме ногу P10 необходимо вешать на воздух. Некоторые физики с open-drain требуют подтяжку на AVCC. Некоторые (как наш) с push-pull требуют вешание на воздух. Сейчас по схеме подключено к земле. Это точно неверно. Исправил на обоих отладочных платах Проверено только на основном экземпляре. После этого поднялась сеть.
 +
* [Clonicus] Сместить немного sd карту вглубь платы, чтобы было более компактно
 +
* На ответных платах должно быть свободное место под вставку sd карты.
 +
* Разобраться, почему смещены мезанинные разъемы
 +
* [Clonicus] Пздец. Банк 35 -HP поддерживает только 1,8В. Подано 3,3В. ПЛИС должна перейти в protection mode. Это может быть очень серьезной проблемой. Пока не ясно как с этим быть.
 +
* На будущее - ошибки можно избежать, если попробовать собрать проект в вивадо с использованием ног из всех банков и прописыванием желаемых стандартов. Если напряжение стандарта недопустимое - можно получить ошибку при сборке проекта.
 +
* Необходимо вернуть номиналы делителя резисторов и выпаять конденсатор с FB с dc/dc 5v и убедиться, что со штатными номиналами все запускается.
 +
* [Clonicus] В схематике КЗ по питанию антенны. L5 выглядит лишней. '''Не впаиваем. Исправить в монтажной документации!!!!!!!!!!!!!'''
 +
* [Clonicus] '''Важно! Выдерживать требования на ресет''' - задержка не менее 2 мкс на PS_POR_B (UG585 pg.163). На клоникус не выполнено (не мешает загрузке)
 +
* [Clonicus] пожелания/замечания к дизайну PCB (от В. А. Филатова):
 +
** Сделать в дизайне платы технологические планки по периметру шириной 5-10 мм (как будто литник от детали). Иначе напаянные элементы не дают закрепить плату в тисках/направляющих.
 +
** Контактные площадки под микросхемами в корпусе QFN должны выходить за габариты микросхемы, чтобы припой мог вытекать из-под корпуса и напаиваться на вертикальные контакты на корпусе.
 +
** Попробовать (если места хватит) разнести детали поверхностного монтажа чуть подальше друг от друга, а то их может слепить вместе в печке.
 +
* [Clonicus]  На цифровую линию 3,3В пролазит фантомное питание через ПЛИС от интерфейсных ног номады. Необходимо поставить ключ на аналоговые 3,3В.
 +
* [Clonicus] Возможно стоит поставить RC цепочки на открывание ключей питания для настройки последовательности включения линий.
 +
* [Clonicus] Необходимо исправить пады на BGA8 чтобы площать площадок была одинакова. Желательно для QFN также.
 +
* [Clonicus] Перепутаны RX TX в FTDI. '''ИСПРАВИТЬ!''' Есть вопросы к работе FTDI возможно нужен доп ресет
 +
* [Clonicus] Нога PUDC_B определяет состояние мульти-ног до и во время конфигурации. '''Не оставлять в воздухе!'''
 +
* [Clonicus] Был косяк в питании MGTAVTT LDO - мин. вх. напряжения 2,2В. Было 1,8В, исправил на 2,5В.
 +
* [PCB] Замечание от резонита - отверстия для отделения платы от технологической заготовки должны быть не менее 0,5мм и между краями отверстий не менее 0,2мм
 +
 +
== Текущий вывод клоникуса ==
 +
{{Начало скрытого блока|Выравнивание_заголовка = left| Ссылка = left|Заголовок =  ЛОГ ЗАГРУЗКИ:}}
 +
<source lang="bash">
 +
U-Boot [SRNS] 2013.10-dirty (Apr 28 2018 - 15:46:20)                           
 +
                                                                               
 +
Memory: ECC disabled                                                           
 +
DRAM:  128 MiB                                                                 
 +
MMC:  zynq_sdhci: 0                                                           
 +
Using default environment                                                     
 +
                                                                               
 +
In:    serial                                                                 
 +
Out:  serial                                                                 
 +
Err:  serial                                                                 
 +
Hit any key to stop autoboot:  0                                               
 +
Device: zynq_sdhci                                                             
 +
Manufacturer ID: 74                                                           
 +
OEM: 4a60                                                                     
 +
Name: USD                                                                     
 +
Tran Speed: 50000000                                                           
 +
Rd Block Len: 512                                                             
 +
SD version 3.0                                                                 
 +
High Capacity: Yes                                                             
 +
Capacity: 7.5 GiB                                                             
 +
Bus Width: 4-bit                                                               
 +
reading uEnv.txt                                                               
 +
** Unable to read file uEnv.txt **                                             
 +
Copying Linux from SD to RAM...                                               
 +
reading uImage                                                                 
 +
3083120 bytes read in 311 ms (9.5 MiB/s)                                       
 +
reading devicetree.dtb                                                         
 +
9192 bytes read in 15 ms (597.7 KiB/s)                                         
 +
reading uramdisk.image.gz                                                     
 +
5622371 bytes read in 555 ms (9.7 MiB/s)                                       
 +
## Booting kernel from Legacy Image at 03000000 ...                           
 +
  Image Name:  Linux-3.12.0-xilinx                                           
 +
  Image Type:  ARM Linux Kernel Image (uncompressed)                         
 +
  Data Size:    3083056 Bytes = 2.9 MiB                                       
 +
  Load Address: 00008000                                                     
 +
  Entry Point:  00008000                                                     
 +
  Verifying Checksum ... OK                                                   
 +
## Loading init Ramdisk from Legacy Image at 02000000 ...                     
 +
  Image Name:  Initial Ram Disk                                             
 +
  Image Type:  ARM Linux RAMDisk Image (gzip compressed)                     
 +
  Data Size:    5622307 Bytes = 5.4 MiB                                       
 +
  Load Address: 00000000                                                     
 +
  Entry Point:  00000000                                                     
 +
  Verifying Checksum ... OK                                                   
 +
## Flattened Device Tree blob at 02a00000                                     
 +
  Booting using the fdt blob at 0x2a00000                                     
 +
  Loading Kernel Image ... OK                                                 
 +
  Loading Ramdisk to 07605000, end 07b61a23 ... OK                           
 +
  Loading Device Tree to 075ff000, end 076043e7 ... OK                       
 +
                                                                               
 +
Starting kernel ...                                                           
 +
                                                                               
 +
Uncompressing Linux... done, booting the kernel.                               
 +
Booting Linux on physical CPU 0x0                                             
 +
Linux version 3.12.0-xilinx (sorenb@xsjandreislx) (gcc version 4.7.3 (Sourcery C
 +
odeBench Lite 2013.05-40) ) #1 SMP PREEMPT Fri Jan 10 16:03:43 PST 2014       
 +
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d               
 +
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache       
 +
Machine: Xilinx Zynq Platform, model: Xilinx Zynq                             
 +
bootconsole [earlycon0] enabled                                               
 +
Memory policy: Data cache writealloc                                           
 +
PERCPU: Embedded 8 pages/cpu @c0814000 s8384 r8192 d16192 u32768               
 +
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024     
 +
Kernel command line: console=ttyPS0,115200 root=/dev/ram rw earlyprintk       
 +
PID hash table entries: 1024 (order: 0, 4096 bytes)                           
 +
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)               
 +
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)                 
 +
Memory: 248068K/262144K available (4201K kernel code, 249K rwdata, 1344K rodata,
 +
176K init, 182K bss, 14076K reserved, 0K highmem)                             
 +
Virtual kernel memory layout:                                                 
 +
    vector  : 0xffff0000 - 0xffff1000  (  4 kB)                             
 +
    fixmap  : 0xfff00000 - 0xfffe0000  ( 896 kB)                             
 +
    vmalloc : 0xd0800000 - 0xff000000  ( 744 MB)                             
 +
    lowmem  : 0xc0000000 - 0xd0000000  ( 256 MB)                             
 +
    pkmap  : 0xbfe00000 - 0xc0000000  (  2 MB)                             
 +
    modules : 0xbf000000 - 0xbfe00000  (  14 MB)                             
 +
      .text : 0xc0008000 - 0xc0572820  (5547 kB)                             
 +
      .init : 0xc0573000 - 0xc059f0c0  ( 177 kB)                             
 +
      .data : 0xc05a0000 - 0xc05de5f0  ( 250 kB)                             
 +
      .bss : 0xc05de5fc - 0xc060c1e8  ( 183 kB)                             
 +
Preemptible hierarchical RCU implementation.                                   
 +
        Dump stacks of tasks blocking RCU-preempt GP.                         
 +
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.                   
 +
NR_IRQS:16 nr_irqs:16 16                                                       
 +
ps7-slcr mapped to d0802000                                                   
 +
Zynq clock init                                                               
 +
sched_clock: 16 bits at 54kHz, resolution 18432ns, wraps every 1207ms         
 +
ps7-ttc #0 at d0804000, irq=43                                                 
 +
Console: colour dummy device 80x30                                             
 +
Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)                       
 +
pid_max: default: 32768 minimum: 301                                           
 +
Mount-cache hash table entries: 512                                           
 +
CPU: Testing write buffer coherency: ok                                       
 +
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000                               
 +
Setting up static identity map for 0xc03f95e0 - 0xc03f9638                     
 +
L310 cache controller enabled                                                 
 +
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72360000, Cache size: 512 kB     
 +
CPU1: Booted secondary processor                                               
 +
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001                               
 +
Brought up 2 CPUs                                                             
 +
SMP: Total of 2 processors activated.                                         
 +
CPU: All CPU(s) started in SVC mode.                                           
 +
devtmpfs: initialized                                                         
 +
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4       
 +
NET: Registered protocol family 16                                             
 +
DMA: preallocated 256 KiB pool for atomic coherent allocations                 
 +
zynq_gpio e000a000.ps7-gpio: gpio at 0xe000a000 mapped to 0xd0850000           
 +
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.   
 +
hw-breakpoint: maximum watchpoint size is 4 bytes.                             
 +
zynq_ocm f800c000.ps7-ocmc: ZYNQ OCM pool: 256 KiB @ 0xd0880000               
 +
bio: create slab <bio-0> at 0                                                 
 +
vgaarb: loaded                                                                 
 +
SCSI subsystem initialized                                                     
 +
usbcore: registered new interface driver usbfs                                 
 +
usbcore: registered new interface driver hub                                   
 +
usbcore: registered new device driver usb                                     
 +
pps_core: LinuxPPS API ver. 1 registered                                       
 +
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@l
 +
inux.it>                                                                       
 +
PTP clock support registered                                                   
 +
EDAC MC: Ver: 3.0.0                                                           
 +
Switched to clocksource ttc_clocksource                                       
 +
NET: Registered protocol family 2                                             
 +
TCP established hash table entries: 2048 (order: 2, 16384 bytes)               
 +
TCP bind hash table entries: 2048 (order: 2, 16384 bytes)                     
 +
TCP: Hash tables configured (established 2048 bind 2048)                       
 +
TCP: reno registered                                                           
 +
UDP hash table entries: 256 (order: 1, 8192 bytes)                             
 +
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)                       
 +
NET: Registered protocol family 1                                             
 +
RPC: Registered named UNIX socket transport module.                           
 +
RPC: Registered udp transport module.                                         
 +
RPC: Registered tcp transport module.                                         
 +
RPC: Registered tcp NFSv4.1 backchannel transport module.                     
 +
Trying to unpack rootfs image as initramfs...                                 
 +
ê
 +
 +
</source>
 +
{{Конец скрытого блока}}
 +
== Ethernet ==
 +
 +
* Не использовать RGMII 3.3V!!! Xilinx не поддерживает, только 1.8/2.5
 +
 +
В клоникусе сделано 1.8. В PLDA сделано 3.3
 +
 +
* Необходимо помнить про задержку в линиях RGMII, возможны режимы:
 +
  * "rgmii" (RX and TX delays are added by the MAC when required)
 +
  * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
 +
    MAC should not add the RX or TX delays in this case)
 +
  * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
 +
    should not add an RX delay in this case)
 +
  * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
 +
    should not add an TX delay in this case)
 +
 +
* Также подключаем в ядре поддержку физика и его дров.
 +
 +
<source lang="bash">
 +
$ petalinux-config -c kernel
 +
</source>
 +
 +
<source lang="bash">
 +
Device Drivers->
 +
    [*]Network device support ->
 +
          [*]Ethernet driver support ->
 +
              [*] Micrel devices
 +
          [*] PHY Device support and infastructure -->
 +
              [*] Drivers for Micrel PHYs
 +
</source>
 +
 +
В Oryx_custom работает сеть только на 10Мбит/с. Предположительно из-за неправильных задержек в RGMII.
 +
 +
[https://ethernetfmc.com/rgmii-interface-timing-considerations/ описание задержек]
 +
 +
Запускается с помощью утилиты ethtool(необходимо подключать в rootfs). Команда включения 10Мбит/с:
 +
<source lang="bash">
 +
ethtool -s eth0 speed 10 autoneg off
 +
ifdown eth0
 +
ifup eth0
 +
</source>
 +
 +
Под вопросом решение о выводе eth напрямую в type-c. Не известно что будет, если подключить его как есть в usb3.0
 +
 +
Включил в настройках ядра рандомизацию MAC-адреса
 +
 +
---------------------
 +
 +
Eth_phy
 +
 +
Предполагалось разделить 2 физика по адресам настройками bootstrap резисторов. 0 адрес на клоникус и 12 адрес на отладочную плату. Реально получается 15 адрес на обоих. Предположительно из-за подтяжки ног плисиной.
 +
 +
Исправляется отключением pull-up в вивадо на ногах RX_D0; RX_D2; RX_CTRL
 +
 +
При попытке определить phy  с помощью lwip необходимо включить отладочные сообщения или вручную добавить принтф в функцию detect_phy.
 +
 +
При отладке eth очень помогает утилита ethtool. Ставится в настройках rootfs
 +
 +
== Всякое ==
 +
 +
Включить в rootfs "libstdc++"
 +
 +
Возможно нужно еще glibc
 +
 +
При использовании LVDS интерфейсов необходимо проверять совместимость напряжений и терминаторов [https://www.xilinx.com/support/answers/43989.html ссылка]
 +
 +
Для создания красивых надписей на плате на шелкографии:
 +
 +
* Пишем красивым текстом надпись
 +
* Переводим маск-генератором слой текста на юзер слой в режиме extract as shape без заливки
 +
* Открываем юзер слой и если нельзя включить заливку, то переводим объекты на плейншейп и обратно в дро-обджект.
 +
* Включаем заливку
 +
* Чистим плейншейп! и радуемся
  
 
[[Category:Clonicus]]
 
[[Category:Clonicus]]
 
{{wl-publish: 2018-04-12 16:56:17 +0300 | Lipa }}
 
{{wl-publish: 2018-04-12 16:56:17 +0300 | Lipa }}

Текущая версия на 16:29, 5 июля 2018

Содержание

[править] Известные проблемы

  • Не был расчитан и замонтирован резистор R80. Необходимо впаять 0 Ом. Исправлено на обеих платах
  • Не правильно впаяны разъемы jtag. Исправлено на одной платах. Исправить документацию
  • SD карточка заблокирована PLD разъемами
  • На bootstrap ноги etgPhy влияет zynq. Необходимо хотя бы изменить резисторы. По-хорошему как-то отсекать zynq от phy при bootstrap.
  • ВАЖНО: на RJ45 разъеме ногу P10 необходимо вешать на воздух. Некоторые физики с open-drain требуют подтяжку на AVCC. Некоторые (как наш) с push-pull требуют вешание на воздух. Сейчас по схеме подключено к земле. Это точно неверно. Исправил на обоих отладочных платах Проверено только на основном экземпляре. После этого поднялась сеть.
  • [Clonicus] Сместить немного sd карту вглубь платы, чтобы было более компактно
  • На ответных платах должно быть свободное место под вставку sd карты.
  • Разобраться, почему смещены мезанинные разъемы
  • [Clonicus] Пздец. Банк 35 -HP поддерживает только 1,8В. Подано 3,3В. ПЛИС должна перейти в protection mode. Это может быть очень серьезной проблемой. Пока не ясно как с этим быть.
  • На будущее - ошибки можно избежать, если попробовать собрать проект в вивадо с использованием ног из всех банков и прописыванием желаемых стандартов. Если напряжение стандарта недопустимое - можно получить ошибку при сборке проекта.
  • Необходимо вернуть номиналы делителя резисторов и выпаять конденсатор с FB с dc/dc 5v и убедиться, что со штатными номиналами все запускается.
  • [Clonicus] В схематике КЗ по питанию антенны. L5 выглядит лишней. Не впаиваем. Исправить в монтажной документации!!!!!!!!!!!!!
  • [Clonicus] Важно! Выдерживать требования на ресет - задержка не менее 2 мкс на PS_POR_B (UG585 pg.163). На клоникус не выполнено (не мешает загрузке)
  • [Clonicus] пожелания/замечания к дизайну PCB (от В. А. Филатова):
    • Сделать в дизайне платы технологические планки по периметру шириной 5-10 мм (как будто литник от детали). Иначе напаянные элементы не дают закрепить плату в тисках/направляющих.
    • Контактные площадки под микросхемами в корпусе QFN должны выходить за габариты микросхемы, чтобы припой мог вытекать из-под корпуса и напаиваться на вертикальные контакты на корпусе.
    • Попробовать (если места хватит) разнести детали поверхностного монтажа чуть подальше друг от друга, а то их может слепить вместе в печке.
  • [Clonicus] На цифровую линию 3,3В пролазит фантомное питание через ПЛИС от интерфейсных ног номады. Необходимо поставить ключ на аналоговые 3,3В.
  • [Clonicus] Возможно стоит поставить RC цепочки на открывание ключей питания для настройки последовательности включения линий.
  • [Clonicus] Необходимо исправить пады на BGA8 чтобы площать площадок была одинакова. Желательно для QFN также.
  • [Clonicus] Перепутаны RX TX в FTDI. ИСПРАВИТЬ! Есть вопросы к работе FTDI возможно нужен доп ресет
  • [Clonicus] Нога PUDC_B определяет состояние мульти-ног до и во время конфигурации. Не оставлять в воздухе!
  • [Clonicus] Был косяк в питании MGTAVTT LDO - мин. вх. напряжения 2,2В. Было 1,8В, исправил на 2,5В.
  • [PCB] Замечание от резонита - отверстия для отделения платы от технологической заготовки должны быть не менее 0,5мм и между краями отверстий не менее 0,2мм

[править] Текущий вывод клоникуса

[править] Ethernet

  • Не использовать RGMII 3.3V!!! Xilinx не поддерживает, только 1.8/2.5

В клоникусе сделано 1.8. В PLDA сделано 3.3

  • Необходимо помнить про задержку в линиях RGMII, возможны режимы:
 * "rgmii" (RX and TX delays are added by the MAC when required)
 * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
    MAC should not add the RX or TX delays in this case)
 * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
    should not add an RX delay in this case)
 * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
    should not add an TX delay in this case)
  • Также подключаем в ядре поддержку физика и его дров.
$ petalinux-config -c kernel
Device Drivers->
     [*]Network device support ->
          [*]Ethernet driver support ->
               [*] Micrel devices
          [*] PHY Device support and infastructure -->
               [*] Drivers for Micrel PHYs

В Oryx_custom работает сеть только на 10Мбит/с. Предположительно из-за неправильных задержек в RGMII.

описание задержек

Запускается с помощью утилиты ethtool(необходимо подключать в rootfs). Команда включения 10Мбит/с:

ethtool -s eth0 speed 10 autoneg off
ifdown eth0
ifup eth0

Под вопросом решение о выводе eth напрямую в type-c. Не известно что будет, если подключить его как есть в usb3.0

Включил в настройках ядра рандомизацию MAC-адреса


Eth_phy

Предполагалось разделить 2 физика по адресам настройками bootstrap резисторов. 0 адрес на клоникус и 12 адрес на отладочную плату. Реально получается 15 адрес на обоих. Предположительно из-за подтяжки ног плисиной.

Исправляется отключением pull-up в вивадо на ногах RX_D0; RX_D2; RX_CTRL

При попытке определить phy с помощью lwip необходимо включить отладочные сообщения или вручную добавить принтф в функцию detect_phy.

При отладке eth очень помогает утилита ethtool. Ставится в настройках rootfs

[править] Всякое

Включить в rootfs "libstdc++"

Возможно нужно еще glibc

При использовании LVDS интерфейсов необходимо проверять совместимость напряжений и терминаторов ссылка

Для создания красивых надписей на плате на шелкографии:

  • Пишем красивым текстом надпись
  • Переводим маск-генератором слой текста на юзер слой в режиме extract as shape без заливки
  • Открываем юзер слой и если нельзя включить заливку, то переводим объекты на плейншейп и обратно в дро-обджект.
  • Включаем заливку
  • Чистим плейншейп! и радуемся

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.

Персональные инструменты
Пространства имён

Варианты
Действия
SRNS Wiki
Рабочие журналы
Приватный файлсервер
QNAP Сервер
Инструменты