реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Digilent программатор Xilinx, кто пользовал?
Corner
сообщение Dec 13 2013, 16:08
Сообщение #31


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Есть у меня HW-USB модуль на FT4232. Кто подскажет - допилить, чтобы ксилинкс поддерживал можно?
Go to the top of the page
 
+Quote Post
ADA007
сообщение Dec 17 2013, 09:04
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(rloc @ Dec 3 2013, 20:30) *
Например для HS2...


Как думаете, если подсунуть impact-у HS2 сделанный не на ft232h , а на ft2232h (двухпортовом) - будет работать? (по идее система команд в драйвере у них должна быть одинаковая на 1-й порт)
и было бы здорово иметь полный dump с eeprom для hs2 - чтобы это попробовать, а не только с 0x50 до 0х78...
Go to the top of the page
 
+Quote Post
rloc
сообщение Dec 17 2013, 11:12
Сообщение #33


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



HS2 full dump
Код
Read EEPROM Device 0
Word
0000: 0100 0304 1460 0009 80FA 0800 0000 A012
0008: B228 DA1A 0000 0000 0000 0000 0000 5600
0010: 0100 C792 6A35 5201 9030 4A74 6167 4873
0018: 3200 0000 0000 0000 0000 0044 6967 696C
0020: 656E 7420 4A54 4147 2D48 5332 0000 0000
0028: 0000 0000 0000 0000 1100 0000 0000 0000
0030: 0000 0000 0000 0000 0000 0000 0000 0000
0038: 0000 0000 0000 0000 0000 0000 0000 0000
0040: 0000 0000 0000 0000 0000 4800 0000 0000
0048: 0000 0000 0000 0000 0000 0000 0000 0000
0050: 1203 4400 6900 6700 6900 6C00 6500 6E00
0058: 7400 2803 4400 6900 6700 6900 6C00 6500
0060: 6E00 7400 2000 5500 5300 4200 2000 4400
0068: 6500 7600 6900 6300 6500 1A03 3200 3100
0070: 3000 3200 3400 3900 3800 3500 3400 3600
0078: 3000 3600 0203 0000 0000 0000 0000 102D

Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 9 2014, 13:16
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(rloc @ Dec 17 2013, 13:12) *
HS2 full dump


Огромное спасибо за dump/ Однако, по ниму есть вопрос:
в ДШ (AN_121_FTDI_Device_EEPROM_User_Area_Usage) про user area сказано, что =
Цитата

First Block=
Size – 128 bytes.
The start address of the user area within this 1st block is as follows:
Start Address = 0x14 (for FT232B and FT245B)
0x16 (for FT2232D)
0x1A (for FT2232H and FT4232H)

Т.е. вроде как user area должна начинаться с 0х14 в вашем случае.

У себя я наблюдаю следующую картину =
Код
Read EEPROM Device 0
Word
0000: 0101 0304 1460 0007 8032 0800 0000 9A12
0008: AC28 D41A 0000 0000 5600 0100 C792 6A35
0010: 5201 9030 4A74 6167 4873 3200 0000 0000
0018: 0000 0000 0044 6967 696C 656E 7420 4A54
0020: 4147 2D48 5332 0000 0000 0000 0000 0000
0028: 0000 1100 0000 0000 0000 0000 0000 0000
0030: 0000 0000 0000 0000 0000 0000 0000 0000
0038: 0000 0000 0000 0000 0000 0000 0000 0000
0040: 0000 0000 0000 0048 0000 0000 0000 0000
0048: 0000 0000 0000 0000 0000 1203 4400 6900
0050: 6700 6900 6C00 6500 6E00 7400 2803 4400
0058: 6900 6700 6900 6C00 6500 6E00 7400 2000
0060: 5500 5300 4200 2000 4400 6500 7600 6900
0068: 6300 6500 1A03 3200 3100 3000 3200 3400
0070: 3900 3800 3500 3400 3600 3000 3600 0000
0078: 0000 0000 0000 0000 0000 0000 0000 6D4A

Как видно из моего dump-a - последним словом перед user area было 0х5600 далее по смещению 0х1А будут находиться user area data.
Однако, у Вас слово 0х5600 находится по смещению дальше моего и user area у вас начинается со смещения 0х20.

Следовательно вопрос: почему 0х20 вместо 0х14? blink.gif

ЗЫ: Правильно ли я понимаю, что CRC16, что стоит в конце eeprom, от user area не считается? rolleyes.gif
Go to the top of the page
 
+Quote Post
alver
сообщение Jan 9 2014, 15:00
Сообщение #35


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 17-11-12
Пользователь №: 74 440



Цитата(ADA007 @ Jan 9 2014, 17:16) *
Т.е. вроде как user area должна начинаться с 0х14 в вашем случае.

Не вижу в списке FT232H
Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 9 2014, 19:13
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(alver @ Jan 9 2014, 17:00) *
Не вижу в списке FT232H

Потому, что про user area упоминают FTDI только в этом документе. И больше ничего не нашел про это - вот и подумал, что распространяется на всю серию микросхем FT232x.
К тому же ребята с сайта используют тот же 232h и ссылаются на тот же документ, что я привел выше.
Если кто подскажет, где написано конкретно про ft232h - буду очень благодарен.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jan 9 2014, 19:58
Сообщение #37


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Действительно, FT232H несколько отличается от остальных. Из открытых источников http://www.intra2net.com/en/developer/libftdi/ можно выудить следующий код:

Код
    // eeprom size check
    switch (ftdi->type)
    {
        case TYPE_AM:
        case TYPE_BM:
            user_area_size = 96;    // base size for strings (total of 48 characters)
            break;
        case TYPE_2232C:
            user_area_size = 90;     // two extra config bytes and 4 bytes PnP stuff
            break;
        case TYPE_R:
            user_area_size = 88;     // four extra config bytes + 4 bytes PnP stuff
            break;
        case TYPE_2232H:            // six extra config bytes + 4 bytes PnP stuff
        case TYPE_4232H:
            user_area_size = 86;
            break;
        case TYPE_232H:
            user_area_size = 80;
            break;
        default:
            user_area_size = 0;
            break;
    }


Там есть и алгоритм вычисления чексуммы, который весьма далек от CRC16:

Код
    // calculate checksum
    checksum = 0xAAAA;

    for (i = 0; i < eeprom->size/2-1; i++)
    {
        value = output[i*2];
        value += output[(i*2)+1] << 8;

        checksum = value^checksum;
        checksum = (checksum << 1) | (checksum >> 15);
    }

    output[eeprom->size-2] = checksum;
    output[eeprom->size-1] = checksum >> 8;
Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 10 2014, 08:54
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(rloc @ Jan 9 2014, 21:58) *
Действительно, FT232H несколько отличается от остальных.


Спасибо, действительно отличается, код чипа (0x56) записывается =>

Код
ft2232h
output[0x18] = eeprom->chip;
ft232h
output[0x1e] = eeprom->chip;


т.е. user_area у 232h начинается действительно с 0х20 адреса...

Цитата(rloc @ Jan 9 2014, 21:58) *
Там есть и алгоритм вычисления чексуммы, который весьма далек от CRC16:


Судя из приведенного кода сумма считается от все памяти и похоже, что ftdi-ка не считывает данные, если контрольная сумма не правильная... laughing.gif
Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 16 2014, 11:38
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Все оказалось до безобразия просто.

Цитата(Flood @ Dec 6 2013, 23:31) *
Перешивать пользовательскую зону FT_Prog не может, надо делать свой софт (или найти готовый, который умеет).

Так и получилось...пришлось написать свой софт, который использует функцию FT_EE_UAWrite. В общем алгоритм следующий, испытанный для FT2232H, которая была у меня под рукой:
1. В FT_Prog-e настраиваем Product Description, Manufacturer, Serial Number, порты в режим 245FIFO и драйвер D2xx - записываем в EEPROM.
2. Прописываем User_Area из дампа в посте , любезно, предоставленного от rloc вписываем данные. User_Area там по адресам с 0х0010 по 0х002С в конце добавляем необходимое кол-во байт 0х00 в зависимости от типа ftdi и используемой eeprom.
Контрольная сумма считается автоматически драйвером ftdi при записи eeprom.
Расположение ног расписано несколькими постами выше. ADBUS0 и ADBUS4 замыкать не нужно - и так все работает!

В общем можно это отдельной статьей оформить, чтоб не затерялась инфа на просторах форума, главное, чтобы Digilent не обиделись rolleyes.gif
ЗЫ: vid/pid нужно оставлять оригинальными, а иначе не из той области eeprom будет вычитываться.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jan 16 2014, 13:05
Сообщение #40


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Поздравляю! ПЛИС прошивали?

Цитата(ADA007 @ Jan 16 2014, 15:38) *
ADBUS0 и ADBUS4 замыкать не нужно - и так все работает!

Предполагаю, в какой-то из версий вместо этой перемычки была петля по печатной плате по длине JTAG-цепочки для определения задержки тактового сигнала и автоматической установки максимальной частоты. Владельцы ZedBoard, откликнитесь!
Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 16 2014, 13:47
Сообщение #41


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(rloc @ Jan 16 2014, 15:05) *
Поздравляю! ПЛИС прошивали?

Да...прошивал...кабель определяется impact-ом как HS2...на днях еще попробую ChipScope
Go to the top of the page
 
+Quote Post
rloc
сообщение Jan 16 2014, 13:56
Сообщение #42


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Возьму на заметку, пока использовал только FT232H: мультиплексировал между JTAG и пользовательскими данными. С дополнительным портом проще.
Go to the top of the page
 
+Quote Post
rloc
сообщение Jan 17 2014, 17:54
Сообщение #43


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Ради такого случая решил поиздеваться над FT4232H mini module. В 14.7 версии софта импакт находит устройство, как программатор Digilent, это видно по лог-файлу, но потом выдает ошибку - "failed to open device handle". Так что не все йогурты одинаково полезны. И еще подтверждаю - доступа к eFUSE регистрам через Digilent нет, даже меню соответствующее не появляется, через Platform Cable на той же плате все программируется. Алгоритм расчета контрольной суммы в драйверах D2XX - какой-то свой, не CRC16 и не как в libftdi.
Go to the top of the page
 
+Quote Post
ADA007
сообщение Jan 20 2014, 19:21
Сообщение #44


Местный
***

Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266



Цитата(rloc @ Jan 17 2014, 19:54) *
Алгоритм расчета контрольной суммы в драйверах D2XX - какой-то свой, не CRC16 и не как в libftdi...

Я тут только что проверил алгоритм подсчета вот этот
Код
    // calculate checksum
    checksum = 0xAAAA;

    for (i = 0; i < eeprom->size/2-1; i++)
    {
        value = output[i*2];
        value += output[(i*2)+1] << 8;

        checksum = value^checksum;
        checksum = (checksum << 1) | (checksum >> 15);
    }

    output[eeprom->size-2] = checksum;
    output[eeprom->size-1] = checksum >> 8;


Он рабочий....мне удалось с его помощью посчитать выложенный вами dump и свой тоже - все сошлось (правда пришлось немного допилить,чтобы идея суммы сохранилась)...сырцы прилагаю, если что
ЗЫ: за код больно не бить....писал на скорую руку
Прикрепленные файлы
Прикрепленный файл  main.c.tar ( 10 килобайт ) Кол-во скачиваний: 158
 
Go to the top of the page
 
+Quote Post
rloc
сообщение Jan 20 2014, 19:36
Сообщение #45


Узкополосный широкополосник
******

Группа: Свой
Сообщений: 2 316
Регистрация: 13-12-04
Из: Moscow
Пользователь №: 1 462



Опа, никак под Линукс проверяли? Т.е. еще не факт, что FT2232H под Виндоус подойдет. Код завтра проверю. По-началу писал побайтно и контрольную сумму вычислял сам, но Импакт не видел программатор, потом - через запись юзеровской области целым блоком, драйвера сами посчитали контрольную сумму и все определилось.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
23 чел. читают эту тему (гостей: 23, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 03:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.02213 секунд с 7
ELECTRONIX ©2004-2016