Jump to content

    

PowerC™

Участник
  • Content Count

    14
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Проблемы с SPI SLAVE на PIC18F87J50

    Здравствуйте, уважаемые коллеги и те, кто не был на прошлом занятии. Проблема решена. Все оказалось довольно тривиально: 1. В errata на сабжевый девайс (http://ww1.microchip.com/downloads/en/DeviceDoc/80000481B.pdf) (страница 9) написано следующее важное замечание: 2. Мы пишем прошивку на Си. И заметили, что некоторые самописные функции не работают. Тогда мы использовали атрибут inline, и все наши функции запахали. В итоге остались некоторые мелкие проблемы, но все решаемо. Всем успехов в работе! Надеюсь данный топик кому-то станет полезным, и последователи не потратят столь много времени на решение этой довольно неприятной проблемы. Отдельное спасибо отписавшимся в топике!
  2. Проблемы с SPI SLAVE на PIC18F87J50

    Привет, сосед! )))) Компилятор хс8. Сегодня пробуем с18. Также еще смотрим дизассемблер. Ну и в планах написать эспиайную часть кода на ассемблере. Если что-то получится, отпишусь. Кстати, в даташите обнаружен регистр ODCON3 (open drain) для SPI ножек. Попробовал его проинитить разными значениями - результата нет.
  3. Проблемы с SPI SLAVE на PIC18F87J50

    Оффтоп :)))) На мотив песни из к/ф "Весна на Заречной улице": Когда сигнал придет - не знаю,Пройдут дожди, сойдут снега...Но ты мне ПЛИСина роднаяИ в непогоду дорога... ...Теперь и сам не рад, что встретил, Моя душа больна тобой... Зачем, зачем на белом свете Есть безответный SPI
  4. Проблемы с SPI SLAVE на PIC18F87J50

    Спасибо за ответ! Мы позже убрали эту строку из кода. Ситуация не поменялась. Проблема, видимо, может быть и не софтварной. Честно говоря, я в неловкой растерянности... Будем экспериментировать дальше. Буду держать в курсе событий. Но если кто-то все же будет иметь мысли и идеи для проверок, буду очень признателен.
  5. Проблемы с SPI SLAVE на PIC18F87J50

    Спасибо за ответ, Дмитрий. В даташите на сабжевый контроллер нету такого регистра.
  6. Проблемы с SPI SLAVE на PIC18F87J50

    Попробовали. Slave Select - работает, просто не туда подключили сейчас. Получилась следующая, весьма странная осциллограмма. Сигналы сверху вниз: 1. MISO 2. MOSI 3. SCK 4. SS Частота клоков 100кГц. На MOSI задаем число 0х8, в ответ получаем какие-то странные пички синфазно тактовой частоте SPI (SCK) длительностью примерно 2мкс (микросекунды). Также на MOSI виден какой-то странный артефакт в виде небольшой просадки напряжения... Интересно, неправда ли? :)
  7. Проблемы с SPI SLAVE на PIC18F87J50

    Нет, в прерывание не попадаем... Сейчас попробуем! Спасибо вам огромное за ответы!
  8. Здравствуйте, уважаемые коллеги. На руках имеется девайс с указанным в сабже 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кГц. Ответа - нет. Помогите, коллеги, пожалуйста.
  9. написал jtagconfig в консоли, пишет, что не видит устройство TCK пытался поставить 16МГц, как в документации. но квартусом боастеры видятся, ну и в системе - соответственно
  10. Здравствуйте, уважаемые коллеги, и те, кто не был в прошлый раз :) В моем распоряжении имеется сабж. Но никак не получается подсоединиться ни программатором, ни через 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 и все такое. Всем спасибо!
  11. Всем спасибо за ответы. Система потихоньку начинает приобретать ясные очертания. Пока что не все 100% ясно, но стало понятно, что пока не начнешь делать - нифига не будет понятно :) Я попробую попозже сформулировать решения, которые приняты о данной теме.
  12. Спасибо большое всем за ответы! Может быть у кого-то есть конкретные примеры систем удаленной прошивки девайсов? Может быть есть какая-то полезная информация по этому поводу? Ссылки?
  13. Всем большое спасибо за ответы! Проблемы как таковой нету. Но интересны какие-то конкретные способы, которые уже опробованы форумчанами или хотя бы известны. Чтобы, так сказать, не наступать на грабли. Нужно иметь возможность менять файл прошивки в конфигурационной флешке по сети. Но при этом необходимо обеспечить надежность системы с точки зрения того, что устройство при каком-либо сбое или кривой прошивке не должно превратиться в кирпич. Если для ПЛИС SoC я читал про некий "неубиваемый загрузчик", то для, например, Max10 не совсем понятно как обеспечить это условие (м.б. использовать внешний контроллер или типа того?). Спасибо! Про мальчика с ноутом - повеселило, но боюсь, что мальчик станет дедушкой уже после пары пробегов с USB-бластером по всем девайсам. Если есть возможность, поделитесь пожалуйста инфой поподробнее по целочисленным пунктам. :) Согласен, с SoC более-менее понятно.
  14. Здравствуйте, уважаемые коллеги. Я тут у вас новичок, так что пожалуйста сильно не пинайте. В поиске тему, подходящую для решения своей задачи, я не нашел. Предлагаю в данной теме поделиться опытом в следующем весьма интересном аспекте: какие существуют методы для удаленной прошивки ПЛИС (записи прошивки в конфигурационную флешку и т.п.). Ситуация примерно следующая: есть некое помещение с большим количеством шкафов, нафаршированных устройствами с ПЛИСами. Нужно это хозяйство подрубить к сети (сетевые интерфейсы на устройствах есть) и прошить все разного рода прошивками. При этом в хозяйстве имеются ПЛИС с ARM-ядрами (Cyclone V, Arria 10), так и беспроцессорные камни типа max 10. Если что не так, говорите, будем исправлять, уточнять. Надеюсь тема будет полезной.