mirror of
https://github.com/hathach/tinyusb.git
synced 2026-08-18 11:02:16 +00:00
lpc18: mcb1800 etm-trace - disable pull-ups on trace lines
60 MHz TRACECLK (CCLK/2) width 4 with J5 DBG_EN fitted; board.h drops the trace-line pull-ups and the ozone reference points at the device example. A badly-mated ribbon reads register-perfect yet silent - re-seat first.
This commit is contained in:
@ -48,15 +48,6 @@
|
||||
|
||||
static inline void board_lpc18_pinmux(void) {
|
||||
const PINMUX_GRP_T pinmuxing[] = {
|
||||
// ETM Trace
|
||||
#ifdef TRACE_ETM
|
||||
{ 0xF, 4, SCU_MODE_FUNC2 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 5, SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 6, SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 7, SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 8, SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
#endif
|
||||
|
||||
// LEDs
|
||||
{ 0xD, 10, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4) },
|
||||
{ 0xD, 11, (SCU_MODE_INBUFF_EN | SCU_MODE_INACT | SCU_MODE_FUNC4 | SCU_MODE_PULLDOWN) },
|
||||
@ -96,6 +87,24 @@ static inline void board_lpc18_pinmux(void) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TRACE_ETM
|
||||
// Must run AFTER Chip_SetupCoreClock: muxing the trace pins earlier starts
|
||||
// TRACECLK at the boot clock and the mid-init frequency switch desyncs the
|
||||
// trace decoder ("Unknown trace data packet").
|
||||
static inline void board_trace_pinmux(void) {
|
||||
// SCU_MODE_INACT: disable the pull-up on the 60 MHz trace lines - leaving it
|
||||
// enabled degrades the edges enough for intermittent decode corruption.
|
||||
const PINMUX_GRP_T trace_pinmux[] = {
|
||||
{ 0xF, 4, SCU_MODE_INACT | SCU_MODE_FUNC2 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 5, SCU_MODE_INACT | SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 6, SCU_MODE_INACT | SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 7, SCU_MODE_INACT | SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
{ 0xF, 8, SCU_MODE_INACT | SCU_MODE_FUNC3 | SCU_MODE_HIGHSPEEDSLEW_EN },
|
||||
};
|
||||
Chip_SCU_SetPinMuxing(trace_pinmux, sizeof(trace_pinmux) / sizeof(PINMUX_GRP_T));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
*/
|
||||
void OnProjectLoad (void) {
|
||||
Project.AddSvdFile ("Cortex-M3.svd");
|
||||
Project.AddSvdFile ("../../../../../../../cmsis-svd/data/NXP/LPC18xx.svd");
|
||||
//Project.AddSvdFile ("../../../../../../../cmsis-svd/data/NXP/LPC18xx.svd");
|
||||
|
||||
Project.SetDevice ("LPC1857");
|
||||
Project.SetHostIF ("USB", "");
|
||||
@ -20,8 +20,8 @@ void OnProjectLoad (void) {
|
||||
Project.SetTraceSource ("Trace Pins");
|
||||
Project.SetTracePortWidth (4);
|
||||
|
||||
//File.Open ("../../../../../../examples/cmake-build-mcb1800/device/cdc_msc/cdc_msc.elf");
|
||||
File.Open ("../../../../../../examples/cmake-build-mcb1800/host/cdc_msc_hid/cdc_msc_hid.elf");
|
||||
File.Open ("../../../../../../examples/cmake-build-mcb1800/device/cdc_msc/cdc_msc.elf");
|
||||
//File.Open ("../../../../../../examples/cmake-build-mcb1800/host/cdc_msc_hid/cdc_msc_hid.elf");
|
||||
}
|
||||
/*********************************************************************
|
||||
*
|
||||
|
||||
@ -69,6 +69,7 @@ void SystemInit(void) {
|
||||
#ifdef TRACE_ETM
|
||||
// Trace clock is limited to 60MHz, limit CPU clock to 120MHz
|
||||
Chip_SetupCoreClock(CLKIN_CRYSTAL, 120000000UL, true);
|
||||
board_trace_pinmux(); // after clock setup so TRACECLK starts at its final frequency
|
||||
#else
|
||||
// CPU clock max to 180 Mhz
|
||||
Chip_SetupCoreClock(CLKIN_CRYSTAL, MAX_CLOCK_FREQ, true);
|
||||
|
||||
Reference in New Issue
Block a user