Jump to content

    

Ar-han

Участник
  • Content Count

    91
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Ar-han

  • Rank
    Частый гость
  1. Спасибо за информацию. Отладчик купил за 2000 руб: Но еще не успел заказать плату переходника, не пробовал, на днях собираюсь заказать. Как-то попытался подключить XDS100 v2 к плате, тест коннект прошел, а отладка не заработала, в причинах не разобрался. Буду рад помощи в вопросе тестирования платы, и программатора. Плата грузится с загрузочной флешки, терминал с ней работает.
  2. Питание, полагаю, что нужно дополнительное питание, т.к. на JTAG разъеме отладочной платы есть сигнальное напряжение 1.8V, и не известно, можно ли эту ногу нагружать преобразователями уровней. А получить нужно 3.3V и 1.8V. Поставил два LDO, на входе внешние 5V, на выходе 3.3V и второе LDO - 1.8V делает из 3.3V. Будут лишние - можно не паять. Если будет желание покритиковать схему или разводку: PCAD_Jtag_low_voltage_adapter_TI.7z
  3. Да, Вы правы, подтяжка к 1.8v уже реализована на плате. отсюда: https://www.isee.biz/support/downloads/item...erence-manual-2 отсюда: http://www.ti.com.cn/cn/lit/ug/spdu079a/spdu079a.pdf На сколько я понял, питание для преобразователя в 1.8v, не корректно брать с разъёма платы, с контакта PD(VCC) Нужно внешними проводами с платы заводить? "PD (VСС) Обнаружение присутствия. Этот сигнал указывает на то, что кабель эмулятора подключён и что на тестируемое устройство подано питание. PD должен быть связан с VCC в тестируемой системе" Таблица 1. Сигналы 14-контактного разъёма JTAG http://www.scanti.ru/bulleten.php?v=411&p=15 Для питания, 100 mA LDO, полагаю, должно хватить? TPS76918 http://www.ti.com/lit/ug/slvu024/slvu024.pdf https://www.terraelectronica.ru/catalog_info.php?CODE=214906
  4. Подойдут ли для преобразования буферы? SINGLE-BIT DUAL-SUPPLY BUS TRANSCEIVER WITH CONFIGURABLE VOLTAGE TRANSLATION AND 3-STATE OUTPUTS https://www.terraelectronica.ru/catalog_info.php?CODE=66411
  5. Ищу схему преобразователя напряжения на 1.8В для эмулятора XDS510, или информацию, где купить готовый переходник. "A 14 pin JTAG header is provided on board to facilitate the SW development and debugging of the board by using various JTAG emulators. The interface is at 1.8V on all signals. Only 1.8V CMOS levels are supported. DO NOT expose the JTAG header to 3.3V." OMAP demo board IGEP v2 Спасибо.
  6. Новичок, пытаюсь создать периодически запускающиеся задачи. .tfc файл -> Sheduling -> PRD Manager Создаю объект PRD0 и функцию _PRD_ISR1 mode - continuous period (ticks) - 1000 Вижу в SWI Manager появилась функция PRD_F_swi с приоритетом = 1. Объявляю системную функцию: extern "C" { void PRD_ISR1(); } Определяю её: void PRD_ISR1() { LOG_printf(&trace, "PRD_ISR1"); a1= !a1; fnLedOnOff(a1); } Функция PRD_ISR1() не вызывается. Что забыл сделать? Где найти пример? Почему неактивно меню Insert TSK ? Почему неактивно меню Insert SWI ? Почему я могу создать только один объект PRD? Спасибо.
  7. Корпус LFCSP-40, композитный вход, PAL сигнал, на входе Ain2. С регистрами в pdf какая-то неувязка. Есть I2C PROGRAMMING EXAMPLES в ADV7180.pdf Rev. B Которая указывает на регистры, неописанные в даташите. А в новых ревизиях эта секция удалена 1/14—Rev. G to Rev. H ... Deleted I 2 C Programming Examples Section ............................106 Не нашел описания регистров 0x3E 0x3F и 0x55 Переключение в защищенную область регистров описано как: рег 0x0E -> установить бит 5 => 0x20 А в примере: 0x0E -> 0x80 Причем ни так, ни этак запись не проходит в этот неописанный регистр, и в соседний, описанный из защищенной области, к примеру 0x58 - пытаюсь установить в 1, а читаю оттуда 0. Сейчас так пытаюсь конфигурировать: // Composite Uint8 VGAReg03[] = {0x03, 0x0C }; // Output Control Uint8 VGAReg00[] = {0x00, 0x03 }; // Input Control // S-Video (LFCSP) in2 Autodetect PAL B Uint8 VGAReg04[] = {0x04, 0x55 }; // Extended Output Control Uint8 VGAReg17[] = {0x17, 0x41 }; // Shaping Filter Control Uint8 VGAReg3D[] = {0x3D, 0xA2 }; // Manual Window Control Uint8 VGAReg3E[] = {0x3E, 0x6A }; Uint8 VGAReg3F[] = {0x3F, 0xA0 }; Uint8 VGAReg0E[] = {0x0E, 0x80 }; // {0x0E, 0x20 };// ADI Control Interrupt and VDP System Register Map Uint8 VGAReg55[] = {0x55, 0x81 }; Uint8 VGAReg0E_1[] = {0x0E, 0x00 }; // ADI Control // PAL Uint8 VGAReg31[] = {0x31, 0x1A }; // VSYNC Field Control 1 Uint8 VGAReg32[] = {0x32, 0x81 }; // VSYNC Field Control 2 Uint8 VGAReg33[] = {0x33, 0x84 }; // VSYNC Field Control 3 Uint8 VGAReg34[] = {0x34, 0x00 }; // HSYNC Position Control 1 Uint8 VGAReg35[] = {0x35, 0x14 }; // HSYNC Position Control 2 Uint8 VGAReg36[] = {0x36, 0x92 }; // HSYNC Position Control 3 Uint8 VGAReg37[] = {0x37, 0xA1 }; // Polarity Uint8 VGARegE8[] = {0xE8, 0x40 }; // PAL V Bit Begin Uint8 VGARegE9[] = {0xE9, 0x83 }; // PAL V Bit End Uint8 VGARegEA[] = {0xEA, 0x06 }; // PAL F Bit Toggle Uint8 VGAReg58[] = {0x58, 0x05 }; // VS/Field Pin Control Читаю статусный регистр: Status 1 (0x10), и не вижу бита захвата входного PAL сигнала (IN_LOCK). От включения к включению питания меняется состояние регистра от 0x6A, до 0x0A Сигналы синхронизации, данные и клок в процессор идут. Что делаю не так? Спасибо.
  8. Начал слать пакеты на другой компьютер с сетевухой интегрированной в материнскую плату, при тех же параметрах ошибок в 15 раз меньше. Статистика: Num_ALL_line= 258304 Num_Ok_line= 258286 Num_ERR_line= 18 Lines_all/err_relations= 0.0070 num_all_frames= 531 num_ok_frames= 513 num_err_frames= 18 frames__all/err_relation= 3.3898 Ошибки: 1 число - номер кадра, второе число - разница в номерах принятых строк отличная от 1 и от числа строк в кадре (486 - 1). 37251 79 37265 2 37282 3 37295 3 37316 3 37343 -457 37374 -446 37407 3 37471 3 37480 2 37512 2 37513 5 37519 3 37559 79 37670 3 37688 2 37697 2 37706 2 Максимальной скорости отправки не прибавилось. Заменил кабель на более короткий и 6-ой категории, не помогло. Число дескрипторов n_tx_descriptors - 256 вместо 64 не заметил разницы. tcp_tx_checksum - offload - почему-то никаких изменений в максимальной скорости не заметно. tcp_tx_ip_tx_checksum - offload => куча ошибок при компиляции, пока не разбирался с ними (перестал находить какие-то файлы) memp_n_buf - 1024 вместо 16 => не заметил изменений. pbuf_pool_bufsize - у меня 1700 стоит. С выделением памяти еще не совсем разобрался, сейчас выделяю тут и так: pbuf_to_be_sent = pbuf_alloc( PBUF_RAW, 1048, PBUF_RAM); Пробовал менять частоту таймеров, на первый взгляд, ни скорости не прибавило, ни ошибок не убавило.
  9. Кажется, я никакого обмена не видел между UDP пакетами. Пробовал эту функцию вызывать единожды в начале, не проходят. Могу ошибаться, но вроде бы, вначале плата спрашивает мак PC с указанным IP и начинает пулять туда пакеты. Завтра проверю. Функции дергаются по колбеку таймера. Интервал таймера 250 ms и 500 ms, насколько я понимаю. #define MHZ 400 #define PIT_INTERVAL (250*MHZ*1000) Завтра попробую их уменьшить. А как у вас со стороны компьютера организован приём, под какой операционкой? Я пробую через Winsock, с блокирующими функциями чтения, в MFC. При создании отдельного потока для чтения сокета в статический массив, а по выходу сохранение массива в файл, статистика потерь пакетов порядка 0.1%, если во втором отдельном потоке делать распаковку данных, АРУ, сохранение кадра в BMP формате на диск, чтение этого файла и вывод на экран, потери увеличиваются. Реально, около 30 % кадров выкидываю из-за полученного неполного количества строк (частота 26 кадров в сек) Не могу понять в чём дело.
  10. Вы имеете ввиду эти функции? void timer_callback() { /* we need to call tcp_fasttmr & tcp_slowtmr at intervals specified by lwIP. * It is not important that the timing is absoluetly accurate. */ static int odd = 1; tcp_fasttmr(); odd = !odd; if (odd) tcp_slowtmr(); } Не забываю, дергаю. Значит выкидывать xemacif_input(netif); не стоит, упрощать на первый взгляд нечего? Хотел выкинуть чтение порта, хотя может это и пригодиться в дальнейшем. Еще у меня порт выбран 1024, может стоит более высокий номер взять, этот может быть занят чем-то. Ввел нумерацию строк и кадров в пакеты, наблюдаю потерю части строк со стороны PC. Спасибо.
  11. Так и есть, сейчас UDP пакет заполняю данными из DDR, использую DDR как буфер. У меня двупортовая BRAM - 512KByte, со стороны железа в один порт закидываю кадр, когда она полна, дергаю за ногу внешнего прерывания процессор. А через второй порт в процессоре, по флагу прерывания копирую кадр из BRAM, в DDR, с помощью memcpy(), а из DDR, по строкам передаю UDP пакетами. Если просто в бесконечном цикле, один и тот же кадр отсылаю из DRR transfer_utxperf_data() { ... for (zz = 0; zz < N_packets; zz++) // читаю кадр из DDR { memcpy(pbuf_to_be_sent->payload, pData_DDR + (zz*1040),1040); err = udp_send(pcb, pbuf_to_be_sent); } } То сниффер показывает скорость 350 Mbit в сек. (Без ожидания прерывания и копирования кадра из BRAM в DDR) Если в бесконечном цикле, без ожидания прерывания, но с копированием кадра 648*486 из BRAM в DDR, то скорость 250 Mbit в сек. Копирование делаю, чтобы исключить одновременное чтение и запись в BRAM со стороны железа и процессора. main.c ... while (1) { if (is_ext_interrupt == 1) // Флаг внешнего прерывания { is_ext_interrupt = 0; memcpy(pData_DDR, pData_1, frame_size); xemacif_input(netif); // без неё нет отправки transfer_utxperf_data(); // отправка UDP пакета } } Пример отправки UDP пакетов взял из echo - сервера. Не могу понять необходимость вызова функции чтения входного порта перед отправкой UDP пакета: xemacif_input(netif); Без неё пакеты не отправляются.
  12. Получилось! Вместо Fifo для Temaca подключил DMA, частоту проца поднял до 400 Mhz, а частоту шины до 100Mhz. (было 333/83) Скорость 30000 пак в сек (длина пакета с заголовком 1082 байта), примерно 250 Mbit/sec Enable TxCheckSum offload for Temac - галку поставил, он на той же частоте она скорости не прибавила, как и увеличение Fifo Depth 16kB вместо 4kB В XAPP 1041 подсмотрел, что частоту шины поднимают до 133 Mhz на этом же ките (ML507) при частоте процессора 400, но в XPS, BSB помощник не предлагает такого варианта. Стоит ли попробовать? Настраивается ли как-то LWIP ? Увидел, что если в SDK -> Board Support Package setting выделить LWIP, то появятся куча настроек. Control various settings of your Board Support Package. Сейчас всё по умолчанию, включая RAW_API C чем еще можно поэкспериментировать?