PIC32MX не может получить тактовую частоту 80 МГц от внутреннего RC OSC

Я использую PIC32MX795F512L с внутренним RC-генератором. Изменив настройки конфига, я могу получить макс 60 МГц. Но я не могу получить 80 МГц. Когда я меняю конфигурацию на 80 МГц, PIC32 просто не запускается. Вот мои настройки конфигурации для тактовой частоты 80 МГц.

    #pragma config FNOSC =  001            // 001       // FRCPLL       // Internal Fast RC oscillator (8 MHz) w/ PLL
    //#pragma config JTAGEN = OFF         // Disable JTAG
    #pragma config FSOSCEN = OFF        // Disable Secondary Oscillator
    #pragma config OSCIOFNC = OFF       // Enable CLKO Output on the OSCO Pin
    #pragma config FCKSM = CSECMD       // Enable Clock Switching & Fail-Safe Clock Monitor (FSCM) 
    #pragma config FWDTEN = OFF         // Watchdog Timer Disabled

    //#pragma config ICESEL = ICS_PGx1    // ICE/ICD Comm Channel Select
    #pragma config FPLLIDIV = DIV_2     // Divide FRC before PLL (now 4 MHz)
    #pragma config FPLLMUL =  MUL_20     // PLL Multiply (now 80 MHz)
    #pragma config FPLLODIV = DIV_1     // Divide After PLL (now 40 MHz)
                                        // see figure 8.1 in datasheet for more info
    #pragma config FPBDIV = DIV_1       // PBCLK = SYCLK

Та же конфигурация, что и выше, работает на плате Explorer 16. Но он не работает на моей специально разработанной печатной плате.

Какую отладку вы делали? Работает ли точно такой же код, если просто изменить скорость? У вас есть доступ к осциллографу, чтобы вы могли включить выход CLKO и посмотреть на результирующую скорость?
Точно такой же код работает на моей пользовательской печатной плате, когда я меняю FPLLMUL = MUL_15. Что бы сделать выходные часы 60 МГц. Я вижу это на осциллографе. Но он просто перестает работать, когда я возвращаю его обратно к FPLLMUL = MUL_20.
Может быть ваш макет. Как выглядит ваша печатная плата? Где и какого значения развязывающие колпачки у вас есть?
У меня на печатной плате стоят развязывающие конденсаторы номиналом 0,1 мкФ. Я сохранил его на печатной плате как можно ближе к PIC32. Пара из них может быть больше 6 мм. это большая проблема?
@TheRobotPeople Нет, звучит нормально. Общая компоновка не должна быть такой критической, когда вы используете внутренний генератор — вам просто нужно убедиться, что VDD стабилен и хорошо развязан.
Не знаю, в чем проблема, но я решил ее, просто припаяв всю новую плату. Это была точно такая же печатная плата, но как-то она работает в новой.

Ответы (1)

Если вам нужны скорости до 80 МГц, вам нужно будет использовать внешний генератор.

Максимальная частота FRC (быстрого RC-генератора) составляет 8 МГц, вы можете разделить ее на 2/4/.../256, но вы не можете увеличить ее.

Хороший улов. Это «очевидно» на рис. 8-1 в техническом описании на стр. 141. FRC обходит PLL и идет прямо к постделителю.
С xtal 48 МГц и PLL внутренняя тактовая частота может достигать 192 МГц.
Но если вы измените конфигурацию, чтобы использовать FRC с PLL. Это тоже можно сделать. Следующая ссылка объясняет это хорошо. umassamherstm5.org/tech-tutorials/pic32-tutorials/…
@TheRobotPeople Верно. Я пропустил FRCPLLв одной из стрелок.