Jump to content

    

Alf256

Участник
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Alf256

  • Rank
    Участник

Recent Profile Visitors

715 profile views
  1. Спасибо всем. Понял - надо изучать и создавать тайминговые констрейны.
  2. Не Нет не прописана - ну начинающий я( догадываюсь что это надо, но пока не знаю как делать( Насколько это критично?
  3. Да, проект синхронный - источник АЦП в рабочем режиме и тестовый генератор внутри FPGA подключаются через мультиплексор. входной сигнал домножается на синус и косинус с выхода генератора DDS на DSP48 блоке, затем идёт цепочка однозвенных нерекурсивных фильтров с одним сложением текущего и задержанного на один такт входного сигнала. через 8 таких звеньев идёт прореживание. Затем ещё два звена и ещё прореживание. Сумматоры сделаны на логике - DSP48 не используется. На данный момент мои познания позволили мне только создать файл ограничений для подключения пинов.(
  4. Проблема в следующем: имеется компонент в виде канала из простых цифровых фильтров. Если собрать проект из одного или двух каналов всё работает отлично, но стоит их поставить хотя бы шесть, всё перестаёт работать и идёт мусор. FPGA Xilinx artix-7, среда Vivado 2019.1 , язык VHDL. Ресурсы задействованы максимум на 20%. Тактовая частота 26 МГц. Моего опыта к сожалению пока не достаточно, чтобы в ближайшее время понять откуда "ноги растут" у проблемы. Пока только пытаюсь грешить на синхронизацию, но очень сомневаюсь - тактовая частота слишком низкая для такого кристалла, чтобы так повлиять на работу. Может кто-нибудь подскажет хотя-бы направление поиска.
  5. К сожалению проблема пока решилась только заменой программатора на оригинальный DLC10. Он заработал сразу и без проблем. Но всё-таки остаются вопросы: 1. как запустить китайский DLC9LP? 2. будет ли работать с Artix-7 и Vivado 2019 китайский клон DLC10? надеюсь решения скоро будут.
  6. Да вот в том то и дело что наружу ничего нет. Но больше похоже на проблемы с дровами. Обещали подтащить проверенный программатор, тогда и посмотрим. Надеюсь скоро проблема решится. Спасибо за советы, как будут изменения в ситуации обязательно сообщу. К сожалению другой платы нет, но будет какой то другой программатор. Да кабель вроде короткий и толстый - длинной меньше метра.
  7. Посмотрел Lattice - это LFXP2 - по даташит она работает и с 1.8 и 1.2 В. А 244 запитана от 1.8. Если только китайцы не накосячили подав на питание портов другое напряжение - не с JTAG
  8. Сигналов никаких нет, уровни везде 1.8В очевидно с платы. И не пойму как разобрать - просто так не расщёлкивается - он на винтах похоже, а винты под наклейкой возможно, а портить наклейку пока боюсь - он не мой. Случайно не знаете как он разбирается? он с алиэкспрес вроде. разобрал... стоит lvc244a nxp вроде от 1.2В должна работать и плис lattice
  9. Имеется запускаемая плата с Artix-7 и имеется китайский клон программатора DLC9LP. Установлена среда Vivado 2019 в windows 10 64 бит. Никак не могу заставить их работать вместе. При подключении программатора он определился как: Xilinx USB Cable драйвер 28.08.2017 версия 1.0.0.0 конечно написано: Устройство работает нормально. но при этом во вкладке события последняя запись: Установка драйвера xpcwinusb.inf_amd64_82876d6fbe1ec3a7 для экземпляра устройства с ИД USB\VID_03FD&PID_0008\6&2088E4F&0&4 завершена со следующим состоянием: 0x0. При подключении программатора загорается красный светодиод, при подключении платы, на которой имеется питание 1,8В ничего не меняется. Vivado программатор не видит, а при автоподключении пишет: [Labtools 27-2269] No devices detected on target localhost:3121/xilinx_tcf/Xilinx/00000000000000. Check cable connectivity and that the target board is powered up then use the disconnect_hw_server and connect_hw_server to re-register this hardware target. на сайте Xilinx выложена версия драйвера 2007 года и результат так же отрицательный. помогите разобраться или может я всё же упустил подобный опубликованный вопрос. P.S. это моя первая попытка работать с Xilinx и этим программатором, так что сильно не ругайте за косяки.
  10. Дико извиняюсь - я действительно туп:) переиграл с оптимизацией в ИАРе:) всё работает.
  11. Не могу отобразить данные - всё что записываю появляется в лучшем случае в виде вертикальной линии в нулевой колонке. Перепробовал все виды инициализации которые нашёл на форуме. Сейчас используется та что приведена из апликэйшена. Помогите, может я просто туп:) но уже достало - в трёх берёзах... void Init_SSD1963 (void) { TFT_RES_ON; vTaskDelay(100); TFT_RES_OFF; vTaskDelay(100); TFT_PWM_ON; TFT_LED_ON; Write_Command(0x01); //Software Reset Write_Command(0x01); Write_Command(0x01); vTaskDelay(100); Write_Command(0xe0); Write_Data(0x01); vTaskDelay(1000); Write_Command(0xe0); Write_Data(0x03); vTaskDelay(100); Write_Command(0xb0); //SET LCD MODE SET TFT 18Bits MODE Write_Data(0x08); //SET TFT MODE & hsync+Vsync+DEN MODE Write_Data(0x00); //SET TFT MODE & hsync+Vsync+DEN MODE Write_Data(0x03); //SET horizontal size=800-1 HightByte Write_Data(0x1f); //SET horizontal size=800-1 LowByte Write_Data(0x01); //SET vertical size=480-1 HightByte Write_Data(0xdf); //SET vertical size=480-1 LowByte Write_Data(0x00); //SET even/odd line RGB seq.=RGB Write_Command(0xf0); Write_Data(0x3); Write_Command(0xe2); //SET PLL freq=113.33MHz ; Write_Data(0x22); Write_Data(0x03); Write_Data(0x04); Write_Command(0xe6); //SET PCLK freq=33.26MHz ; pixel clock frequency Write_Data(0x00); Write_Data(0xe7); Write_Data(0x4f); Write_Command(0xb4); //SET HBP, Write_Data(0x20); //SET HSYNC Total = 8367 Write_Data(0xaf); Write_Data(0x00); //SET HBP = 163 Write_Data(0xa3); Write_Data(0x07); //SET VBP 8 = 7 + 1 Write_Data(0x00); //SET Hsync pulse start position Write_Data(0x00); Write_Data(0x00); //SET Hsync pulse subpixel start position Write_Command(0xb6); //SET VBP, Write_Data(0x01); //SET Vsync total 496 = 495 + 1 Write_Data(0xef); Write_Data(0x00); //SET VBP = 4 Write_Data(0x04); Write_Data(0x01); //SET Vsync pulse 2 = 1 + 1 Write_Data(0x00); //SET Vsync pulse start position Write_Data(0x00); Write_Command(0x2a); //SET column address Write_Data(0x00); //SET start column address=0 Write_Data(0x00); Write_Data(0x03); //SET end column address=800 Write_Data(0x1f); Write_Command(0x2b); //SET page address Write_Data(0x00); //SET start page address=0 Write_Data(0x00); Write_Data(0x01); //SET end page address=480 Write_Data(0xdf); Write_Command(0x29); //SET display on Write_Command(0x2c) }
  12. Режим полинга работает точно - я всё устройство уже в нём проверил на десять рядов. сейчас переделал на прерывания и всё также отлично работает, но только при вызове этой функции разрешения прерываний почему-то, а сброс INTM почему-то не запускает прерывания.
  13. На счёт указателей IVPD,IVPH - Вы были правы - я про них забыл, однако после установки ситуация не изменилась, причём код индикации в цикле основной программы продолжает работать. Т.е. это означает что прерывания нет совсем. Был бы не верный вектор - всё бы вешалось из-за отсутствия возврата. Порт настроен на ввод в слейве от АЦП AD73360 ///////////////// McBSP PORT_SPCR1 = 0x0000; //установить сброс PORT_SPCR2 = 0x0000; // PORT_RCR1 = 0x0040; PORT_RCR2 = 0x0001; PORT_XCR1 = 0x0040; PORT_XCR2 = 0x0041; // задержка при передаче на 1 бит PORT_SRGR1 = 0x0000; PORT_SRGR2 = 0x0000; PORT_PCR = 0x0080; PORT_SPCR1 = 0x0001; // убрать сброс PORT_SPCR2 = 0x03c1; // ///////////////// McBSP-1 Интересное дело: стоило заменить разрешение прерываний битом INTM на вызов функции IRQ_globalEnable() - как всё заработало. Значит кроме INTM что-то ещё есть?
  14. Извиняюсь, я ошибся с разрешением прерывания - это я в сообщение скопировал неправильно, а на самом деле использовал ST1_55 &= 0xF7FF
  15. Сразу оговорюсь, что работаю с этим процем недавно и с прерываниями ещё не сталкивался. Есть порт McBSP, прекрасно работающий от АЦП по опросу готовности RRDY. Пытаюсь запустить его на прерывания - всё глухо. Я может что-то пропустил? Для разрешения прерываний использую код: инициализация порта; инициализация АЦП и ввод нескольких слов по опросу; IFR0|=0x20; IER0|=0x20; ST1_55|=(1<<11); while(1); ----------------------------------- в файле vectors.asm .ref _c_int00,_int_timer0,_int_mcbsp0_rx _vecs: .ivec _c_int00,use_reta NMI: .ivec 1 INT0: .ivec 2 INT2: .ivec 3 TINT0: .ivec _int_timer0 RINT0: .ivec _int_mcbsp0_rx ------------------------------------- в программе int d; interrupt void int_mcbsp0_rx() { d=PORT0_DDR1; fl=1; } в обработчик не входит ни разу. Подскажите что я забыл или не так сделал.