Перейти к содержанию
    

zombi

Свой
  • Постов

    3 504
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные zombi


  1. 6 hours ago, toweroff said:

    отдельные биты считывались то "0", то "1"

    Интересно, при любом допустимом питании и температуре наблюдалось такое поведение бит?

    И если нет, то при определённых условиях оригинал мог посчитать себя подделкой!

    Так себе защита...

    On 4/8/2021 at 2:30 PM, xvr said:

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

    вот вот, в случае принятия решения о клоне - вообще ничего не должно работать.

    Иначе может получиться себе же хуже. :biggrin:

  2. :wacko2: а можно как-то попроще сформулировать Вашу мысль?

    3 hours ago, Leka said:

    Целостность полигонов питания важнее температуры LDO.

    Тоже раньше всегда думал и заботился о целостности внутренних полигонов питания на 4-х слойках.

    И вот совсем недавно пришлось развести BGA 324 и 169 с шагом 0.8 мм.,

    мало того что пады питания раскиданы по всему чипу практически равномерно так пойди еще изнутри dedicated сигналы вытащи.

    Представляете какая там "целостность" полигонов под чипом? :biggrin:

    С тех пор стал смотреть на эту целостность несколько проще.

    Однако под клоковыми сигналами разрыва земляного полигона не допускаю ни в коем случае!

  3. Господа, прошу не писать о том как установлены конденсаторы и об отсутствии термобарьеров у оных.

    Меня лишь интересует вопрос :

    большое количество пер.отв. (все отв. диаметром 0,3 мм) вокруг термопада чипа способствует лучшему отводу тепла на

    нижние полигоны или достаточно только тех отверстий которые на самом паде?

  4. 2 hours ago, HardEgor said:

    Полезны.

    Т.е. вот так вот еще лучше будет?

    5.jpg.aab46c10be39530b9d42d42f0b86747d.jpg

    2 hours ago, _4afc_ said:

    Полезны, особенно если доведёте дорожку из них до радиатора или крепления к корпусу

    Радиатора никакого нет, к корпусу плата крепится на пластиковые стойки, а полигонами и ПО я и пытаюсь сделать некое подобие радиатора :biggrin:

  5. Подскажите, отверстия на самом Thermal Pad LDO способствуют отводу тепла на внутр. и нижний полигоны - проверено,

    а внешние отверстия (те что по контуру за пределами пада) полезны или только мешают?

    Про опасность вытекания припоя в эти отверстия прошу не писать.

     

    4.jpg

  6. Приклеил теплопроводным клеем Kafuter K-5204k несколько радиаторов 11х11 15х15 без термопасты, полностью на клей посадил.

    Тепло клей проводит отлично, все радиаторы быстро нагревались.

    Через неделю решил их оторвать путём введения скальпеля между радиатором и чипом.

    Все прекрасно отскочили, но на чипе глубокая царапина от скальпеля осталась.

    Однако как мне показалось - толку он таких радиаторов ноль, т.е. какой никакой эффект то есть конечно, но он на столько мал что ...

    Разве что для красоты... ну или типа по баХатому.

  7. Всё может быть. Беру листик и ручку - начинаю считать вручную :biggrin:

     

    Посчитал по бумажке, и получил 0xE496 (что совпадает с калькулятором).

    Значит ошибка где-то в другом месте, теперь будет легче её искать.

    Всем спасибо!

    0	f[1]  = d[0]  ^ crc[15];
    1	f[2]  = d[1]  ^ crc[14];
    0	f[3]  = d[2]  ^ crc[13];
    0	f[4]  = d[3]  ^ crc[12];
    1	f[5]  = d[4]  ^ crc[11] ^ f[1];
    1	f[6]  = d[5]  ^ crc[10] ^ f[2];
    1	f[7]  = d[6]  ^ crc[9]  ^ f[3];
    0	f[8]  = d[7]  ^ crc[8]  ^ f[4];
    0	f[9]  = d[8]  ^ crc[7]  ^ f[5];
    1	f[10] = d[9]  ^ crc[6]  ^ f[6];
    0	f[11] = d[10] ^ crc[5]  ^ f[7];
    1	f[12] = d[11] ^ crc[4]  ^ f[1] ^ f[8];
    0	f[13] = d[12] ^ crc[3]  ^ f[2] ^ f[9];
    1	f[14] = d[13] ^ crc[2]  ^ f[3] ^ f[10];
    1	f[15] = d[14] ^ crc[1]  ^ f[4] ^ f[11];
    0	f[16] = d[15] ^ crc[0]  ^ f[5] ^ f[12];
    	 
    0	c[0]  = f[16];	
    1	c[1]  = f[15];
    1	c[2]  = f[14];
    0	c[3]  = f[13];
    
    1	c[4]  = f[12];
    0	c[5]  = f[11] ^ f[16];
    0	c[6]  = f[10] ^ f[15];
    1	c[7]  = f[9]  ^ f[14];
    
    0	c[8]  = f[8]  ^ f[13];
    0	c[9]  = f[7]  ^ f[12];
    1	c[10] = f[6]  ^ f[11];
    0	c[11] = f[5]  ^ f[10];
    
    0	c[12] = f[4]  ^ f[9]  ^ f[16];
    1	c[13] = f[3]  ^ f[8]  ^ f[15];
    1	c[14] = f[2]  ^ f[7]  ^ f[14];
    1	c[15] = f[1]  ^ f[6]  ^ f[13];

     

  8. 18 minutes ago, des00 said:

    может быть у вас разная инициализация а проверка должна быть не на ноль, а на magic word.

    Из DS :

    The CRC function in the host and the device shall be initialized with a seed of 4ABAh at the
    beginning of an Ultra DMA burst before any data is transferred.

    Так и инициализирую if (INIT) CRC <= 16'H4ABA;

    А в RTL наблюдаю на входе мультиплексора перед регистром CRC 16'h5D52 :biggrin:

    Вот и думаю почему перевёрнуто? Надо мне переворачивать или нет?

     

    -----------------

    По поводу magic word. Вот что в DS:

    The device shall then compare the CRC data from the host with the calculated value in its
    own CRC calculation function. If the two values do not match, the device shall save the error
    and report it at the end of the command.

     

    Вроде как нужно просто полное совпадение.

    28 minutes ago, new123 said:

    Посимулировать наверное надо и свериться с онлайн калькуляторами crc16.

    Конечно просимулировал.

    Получил при начальной инициализации 0x4ABA и следующих данных 0x0000 :

    0xFA66 / 0xEE9A / 0x0FBE / 0x48DB

    Посоветуйте онлайн калькулятор где это можно проверить

  9. 5 hours ago, new123 said:

    В инете есть целый ряд готовых генераторов кода crc.

    Да, я знаю о таких.

    Даже однажды в проекте использовал, но помню долго выяснял необходимость инверсии шины вх и вых данных и тд. и тп.

    А тут решил избежать всех этих танцев с бубном и реализовать именно так как в DS рекомендуют.

    5 minutes ago, new123 said:

    Может там какой порядок байт важен. Обратный/прямой

    Все что есть это информация на моём скриношоте из DS. Ни о каком порядке байт там речи не идёт. Есть шина 16 бит и у нее есть мл. и ст.

    8 minutes ago, des00 said:

    Так то по коду забито то правильно

    Вот, спасибо. Мне пока хотя бы в чем-то быть уверенным.

  10. 4 hours ago, des00 said:

    подробности нефурычения будут?

    Подробность одна - внешнее устройство ( СF карта) после транзакции считает что CRC не верная и устанавливает бит ошибки.

    Я не уверен ни в том что данные верно читаю ни в том что CRC правильно передаю карте (хотя судя по диаграмме все должно быть правильно).

    Мне сейчас хотя бы быть уверенным что сам подсчёт CRC сделал верно.

    Поскольку приходится решать уравнение со всеми неизвестными. :biggrin:

  11. Производитель требует и приводит пример расчёта CRC16

    Quote

    The CRC generator polynomial is: G(X) = X16 + X12 + X5 + 1. Table 26 describes the
    equations for 16-bit parallel generation of the resulting polynomial (based on a word
    boundary).

    3.thumb.jpeg.41380e06dfcadc04f777b9330921409b.jpeg

    Попытался это на verilog записать, но что-то не фурычит оно.

    Гляньте плиз где я накосячил?

    function [15:0] CRC16;
    
      input  [15:0] d, crc;
      reg    [16:1] f;
      reg	 [15:0] c;
    
      begin
    	f[1]  = d[0]  ^ crc[15];
    	f[2]  = d[1]  ^ crc[14];
    	f[3]  = d[2]  ^ crc[13];
    	f[4]  = d[3]  ^ crc[12];
    	f[5]  = d[4]  ^ crc[11] ^ f[1];
    	f[6]  = d[5]  ^ crc[10] ^ f[2];
    	f[7]  = d[6]  ^ crc[9]  ^ f[3];
    	f[8]  = d[7]  ^ crc[8]  ^ f[4];
    	f[9]  = d[8]  ^ crc[7]  ^ f[5];
    	f[10] = d[9]  ^ crc[6]  ^ f[6];
    	f[11] = d[10] ^ crc[5]  ^ f[7];
    	f[12] = d[11] ^ crc[4]  ^ f[1] ^ f[8];
    	f[13] = d[12] ^ crc[3]  ^ f[2] ^ f[9];
    	f[14] = d[13] ^ crc[2]  ^ f[3] ^ f[10];
    	f[15] = d[14] ^ crc[1]  ^ f[4] ^ f[11];
    	f[16] = d[15] ^ crc[0]  ^ f[5] ^ f[12];
    	 
    	c[0]  = f[16];	
    	c[1]  = f[15];
    	c[2]  = f[14];
    	c[3]  = f[13];
    	c[4]  = f[12];
    	c[5]  = f[11] ^ f[16];
    	c[6]  = f[10] ^ f[15];
    	c[7]  = f[9]  ^ f[14];
    	c[8]  = f[8]  ^ f[13];
    	c[9]  = f[7]  ^ f[12];
    	c[10] = f[6]  ^ f[11];
    	c[11] = f[5]  ^ f[10];
    	c[12] = f[4]  ^ f[9]  ^ f[16];
    	c[13] = f[3]  ^ f[8]  ^ f[15];
    	c[14] = f[2]  ^ f[7]  ^ f[14];
    	c[15] = f[1]  ^ f[6]  ^ f[13];
    	
    	CRC16 = c;
      end
    endfunction
    

     

  12. 52 minutes ago, murmur said:

    читает серийный номер микросхемы, берет оттуда некий байт, присваивает его значение другой переменной, а эта переменная уже определяет координаты элементов интерфейса. 

    Годная защита, но при условии что все эти четыре пункта сможете "спрятать" в коде.

    Но в современных реалиях и возможностях реверсинжиниринга это мало вероятно.

  13. Да, спасибо, разобрался уже. Много разных документов и везде по разному.

    Вот так у CFA выглядит.

    2.thumb.jpg.96939df393485301e688cd5c65076d19.jpg

    Все сигналы перед которыми минус должны быть инвертированы, включая CS0 и CS1.

    А состояние A00-A02 может быть любым.

    Пол дня убил пока получил DSTROBE от карты. :gamer3:

  14. Так какие именно инвертированы, те перед которыми минус в скобках, те где минус без скобок или и те и другие?

    И вообще, а зачем вот так вот диаграммы рисовать? Запутать хотят что-ли.

  15. Пытаюсь подключить CF карту к плис по протоколу UDMA 0...4

    Начитался всяких даташитов.

    И как понял, что в конце любой UDMA транзакции именно host всегда должен выставить на шину посчитанную им CRC16.

    T.е. направление передачи данных не важно, CRC всегда выставляет host.

    Подскажите так ли это на самом деле?

     

  16. На сайте ссылка :

    1.thumb.jpg.eef24d3bedb1ab59b823dd41a1f04d8d.jpg

    В DS табличка:

    2.thumb.jpg.9f408460301b5d0a2ec425becc5da477.jpg

    При этом на стр.14 DS вижу :

    Quote

    SDRAM provides a wide variety of fast access modes. In a singleCAS cycle, serial data read or write operations are allowed at up to a 166 MHz data rate.

    :wacko2:

    ----------------------

    Вот к примеру у аналогичной Micron памяти IS42S86400F-7TL (IS42S86400D-7TL) при CL=3 частота 143 MHz.

    3.jpg.522145b2991058f7aa742a5d8a933938.jpg

     

    Так какая же на самом деле максимально допустимая частота AS4C64M8SC-7TIN при CAS Latency = 3?

     

×
×
  • Создать...