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

PowerC™

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о PowerC™

  • Звание
    Участник
    Участник

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Спасибо за оперативность! В моем случае "поиск" означает нахождение координат(X, Y) региона плис рядом с определенным пином/пинами для того, чтобы создать там pblock, и поместить туда необходимую мне логику.
  2. Добрый день, уважаемые коллеги! Работаю в Vivado 2020. Пытаюсь понять, есть ли возможность в .xdc файле закодить поиск региона ПЛИС рядом с назначенными ранее пинами? Идея заключается в том, чтобы поместить заданную иерархическую единицу проекта в pblock рядом с назначенными пинами . Заранее благодарен!
  3. Здравствуйте, уважаемые коллеги и те, кто не был на прошлом занятии. Проблема решена. Все оказалось довольно тривиально: 1. В errata на сабжевый девайс (http://ww1.microchip.com/downloads/en/DeviceDoc/80000481B.pdf) (страница 9) написано следующее важное замечание: 2. Мы пишем прошивку на Си. И заметили, что некоторые самописные функции не работают. Тогда мы использовали атрибут inline, и все наши функции запахали. В итоге остались некоторые мелкие проблемы, но все решаемо. Всем успехов в работе! Надеюсь данный топик кому-то станет полезным, и последователи не потратят столь много времени на решение этой довольно неприятной проблемы. Отдельное спасибо отписавшимся в топике!
  4. Привет, сосед! )))) Компилятор хс8. Сегодня пробуем с18. Также еще смотрим дизассемблер. Ну и в планах написать эспиайную часть кода на ассемблере. Если что-то получится, отпишусь. Кстати, в даташите обнаружен регистр ODCON3 (open drain) для SPI ножек. Попробовал его проинитить разными значениями - результата нет.
  5. Оффтоп :)))) На мотив песни из к/ф "Весна на Заречной улице": Когда сигнал придет - не знаю,Пройдут дожди, сойдут снега...Но ты мне ПЛИСина роднаяИ в непогоду дорога... ...Теперь и сам не рад, что встретил, Моя душа больна тобой... Зачем, зачем на белом свете Есть безответный SPI
  6. Спасибо за ответ! Мы позже убрали эту строку из кода. Ситуация не поменялась. Проблема, видимо, может быть и не софтварной. Честно говоря, я в неловкой растерянности... Будем экспериментировать дальше. Буду держать в курсе событий. Но если кто-то все же будет иметь мысли и идеи для проверок, буду очень признателен.
  7. Спасибо за ответ, Дмитрий. В даташите на сабжевый контроллер нету такого регистра.
  8. Попробовали. Slave Select - работает, просто не туда подключили сейчас. Получилась следующая, весьма странная осциллограмма. Сигналы сверху вниз: 1. MISO 2. MOSI 3. SCK 4. SS Частота клоков 100кГц. На MOSI задаем число 0х8, в ответ получаем какие-то странные пички синфазно тактовой частоте SPI (SCK) длительностью примерно 2мкс (микросекунды). Также на MOSI виден какой-то странный артефакт в виде небольшой просадки напряжения... Интересно, неправда ли? :)
  9. Нет, в прерывание не попадаем... Сейчас попробуем! Спасибо вам огромное за ответы!
  10. Проблемы с SPI SLAVE на PIC18F87J50

    Здравствуйте, уважаемые коллеги. На руках имеется девайс с указанным в сабже PIC18F87J50 (80 pin). Задача: включить и настроить SPI SLAVE на втором (из двух) канале SPI. Воздействия Master я подаю с крейта NI с плисины. Контроллер самописный, но выдает все верно (проверил осциллографом). По железячной части все хорошо вроде бы. Грешу на код, но не могу понять что не так. Настраиваю SPI slave, задаю назначение входов и выходов, результат - нет ответа от PIC. Код прилагаю: #include <stdio.h> #include <xc.h> #include "pic18f87j50.h" // Set Clock Freq. & Delays #ifndef _XTAL_FREQ #define _XTAL_FREQ 5000000 #endif // ports #define SPI_SCK TRISD6 #define SPI_SDI TRISD5 #define SPI_SDO TRISD4 #define SPI_SS TRISD7 int main(void); int main() { SpiInit(); while(1) { } return 0; } // инициализация SPI-интерфейса int SpiInit(void) { SSP2CON1bits.SSPEN = 0; SSP2CON1bits.SSPM3 = 0; SSP2CON1bits.SSPM2 = 1; SSP2CON1bits.SSPM1 = 0; SSP2CON1bits.SSPM0 = 0; SSP2CON1bits.SSPEN = 0; // Allow Programming of serial port SSP2CON1bits.CKP = 0; // Idle state for clock is a HIGH level SSP2STATbits.CKE = 1; // Transmit occurs on idle to active clock state SSP2STATbits.SMP = 0; // Input data sampled at middle data output time SPI_SCK = 1; SPI_SDI = 1; SPI_SDO = 0; SPI_SS = 1; INTCONbits.GIE = 1; // Global Interrupt Enable bit INTCONbits.PEIE = 1; // Peripheral Interrupt Enable bit PIE3bits.SSP2IE = 1; // SSP interrupt Enabled SSP2CON1bits.SSPEN = 1; return 0; } // обработка прерываний void __interrupt() isr(void) { unsigned char buf = 0; if(PIR3bits.SSP2IF) { while ( !SSP2STATbits.BF ); // Wait for Buffer Empty buf = SSP2BUF; SSP2BUF = buf; PIR3bits.SSP2IF = 0; } } } Пробовал и в SSP2BUF подсовывать константные значения. Частоту SPI (sck) снизил до 100кГц. Ответа - нет. Помогите, коллеги, пожалуйста.
  11. написал jtagconfig в консоли, пишет, что не видит устройство TCK пытался поставить 16МГц, как в документации. но квартусом боастеры видятся, ну и в системе - соответственно
  12. Здравствуйте, уважаемые коллеги, и те, кто не был в прошлый раз :) В моем распоряжении имеется сабж. Но никак не получается подсоединиться ни программатором, ни через onboard USB blaster к JTAG цепочке. Пишет следующую ошибку при попытке просканировать JTAG-цепочку: "Unable to scan device chain. Can't scan JTAG chain. Do you want to open the JTAG Chain Debugger to troubleshoot the JTAG chain?". М.б. кто-то сталкивался? Понимаю, что можно приконнектиться к HPS по ssh, например, и залить свою прошивку на флешку, но хотелось бы поюзать SignalTap и все такое. Всем спасибо!
  13. Всем спасибо за ответы. Система потихоньку начинает приобретать ясные очертания. Пока что не все 100% ясно, но стало понятно, что пока не начнешь делать - нифига не будет понятно :) Я попробую попозже сформулировать решения, которые приняты о данной теме.
  14. Спасибо большое всем за ответы! Может быть у кого-то есть конкретные примеры систем удаленной прошивки девайсов? Может быть есть какая-то полезная информация по этому поводу? Ссылки?
  15. Всем большое спасибо за ответы! Проблемы как таковой нету. Но интересны какие-то конкретные способы, которые уже опробованы форумчанами или хотя бы известны. Чтобы, так сказать, не наступать на грабли. Нужно иметь возможность менять файл прошивки в конфигурационной флешке по сети. Но при этом необходимо обеспечить надежность системы с точки зрения того, что устройство при каком-либо сбое или кривой прошивке не должно превратиться в кирпич. Если для ПЛИС SoC я читал про некий "неубиваемый загрузчик", то для, например, Max10 не совсем понятно как обеспечить это условие (м.б. использовать внешний контроллер или типа того?). Спасибо! Про мальчика с ноутом - повеселило, но боюсь, что мальчик станет дедушкой уже после пары пробегов с USB-бластером по всем девайсам. Если есть возможность, поделитесь пожалуйста инфой поподробнее по целочисленным пунктам. :) Согласен, с SoC более-менее понятно.
×
×
  • Создать...