<p>Kévin Redon has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10668">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">set main clock for using UART at 921600 bps<br><br>UART baud rate is main clock (MCK) divided by CR*16.<br>The MCK values are chosen >= 48 MHz and <= 64 MHz to have a near<br>integer value CR for a baud rate of 921600 bps.<br>The end MCK frequency between simtrace and qmod differ slightly<br>but are close to 58 MHz.<br><br>Change-Id: Iaa4a97fc68494c93b9d128503515d88049de506c<br>---<br>M firmware/libboard/common/include/board_common.h<br>M firmware/libboard/common/source/board_lowlevel.c<br>M firmware/libboard/owhw/include/board.h<br>M firmware/libboard/qmod/include/board.h<br>M firmware/libboard/simtrace/include/board.h<br>5 files changed, 31 insertions(+), 25 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/68/10668/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/firmware/libboard/common/include/board_common.h b/firmware/libboard/common/include/board_common.h</span><br><span>index 1b29680..db030ad 100644</span><br><span>--- a/firmware/libboard/common/include/board_common.h</span><br><span>+++ b/firmware/libboard/common/include/board_common.h</span><br><span>@@ -53,8 +53,6 @@</span><br><span> /** Core definition */</span><br><span> #define cortexm3</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define BOARD_MCK     48000000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> #define PIO_LED_RED     PIO_PA17</span><br><span> #define PIO_LED_GREEN   PIO_PA18</span><br><span> </span><br><span>diff --git a/firmware/libboard/common/source/board_lowlevel.c b/firmware/libboard/common/source/board_lowlevel.c</span><br><span>index b82f6f3..2be6134 100644</span><br><span>--- a/firmware/libboard/common/source/board_lowlevel.c</span><br><span>+++ b/firmware/libboard/common/source/board_lowlevel.c</span><br><span>@@ -46,39 +46,39 @@</span><br><span> #define BOARD_OSCOUNT   (CKGR_MOR_MOSCXTST(0x8))</span><br><span> #define BOARD_MCKR      (PMC_MCKR_PRES_CLK | PMC_MCKR_CSS_PLLA_CLK)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#if (BOARD_MCK == 48000000)</span><br><span style="color: hsl(0, 100%, 40%);">-#if (BOARD_MAINOSC == 18432000)</span><br><span style="color: hsl(0, 100%, 40%);">-/* Clock settings at 48MHz  for 18 MHz crystal */</span><br><span style="color: hsl(0, 100%, 40%);">-#define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span style="color: hsl(0, 100%, 40%);">-                                          | CKGR_PLLAR_MULA(13-1) \</span><br><span style="color: hsl(0, 100%, 40%);">-                                       | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span style="color: hsl(0, 100%, 40%);">-                                           | CKGR_PLLAR_DIVA(5))</span><br><span style="color: hsl(0, 100%, 40%);">-#elif (BOARD_MAINOSC == 12000000)</span><br><span style="color: hsl(0, 100%, 40%);">-/* QMod has 12 MHz clock, so multply by 8 (96 MHz) and divide by 2 */</span><br><span style="color: hsl(120, 100%, 40%);">+/** configure PLL to generate main clock based on main oscillator frequency */</span><br><span style="color: hsl(120, 100%, 40%);">+#if (BOARD_MAINOSC == 12000000) && (BOARD_MCK == 48000000)</span><br><span> #define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span>                                            | CKGR_PLLAR_MULA(8-1) \</span><br><span>                                     | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span>                                        | CKGR_PLLAR_DIVA(2))</span><br><span style="color: hsl(0, 100%, 40%);">-#else</span><br><span style="color: hsl(0, 100%, 40%);">-#error "Please define PLLA config for your MAINOSC frequency"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif /* MAINOSC */</span><br><span style="color: hsl(0, 100%, 40%);">-#elif (BOARD_MCK == 64000000)</span><br><span style="color: hsl(0, 100%, 40%);">-#if (BOARD_MAINOSC == 18432000)</span><br><span style="color: hsl(0, 100%, 40%);">-/* Clock settings at 64MHz  for 18 MHz crystal: 64.512 MHz */</span><br><span style="color: hsl(120, 100%, 40%);">+#elif (BOARD_MAINOSC == 12000000) && (BOARD_MCK == 58000000)</span><br><span> #define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span style="color: hsl(0, 100%, 40%);">-                                          | CKGR_PLLAR_MULA(7-1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                      | CKGR_PLLAR_MULA(29-1) \</span><br><span>                                            | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span style="color: hsl(0, 100%, 40%);">-                                           | CKGR_PLLAR_DIVA(2))</span><br><span style="color: hsl(0, 100%, 40%);">-#elif (BOARD_MAINOSC == 12000000)</span><br><span style="color: hsl(0, 100%, 40%);">-/* QMod has 12 MHz clock, so multply by 10 / div by 2: 60 MHz */</span><br><span style="color: hsl(120, 100%, 40%);">+                                        | CKGR_PLLAR_DIVA(6))</span><br><span style="color: hsl(120, 100%, 40%);">+#elif (BOARD_MAINOSC == 12000000) && (BOARD_MCK == 60000000)</span><br><span> #define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span>                                        | CKGR_PLLAR_MULA(10-1) \</span><br><span>                                            | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span>                                        | CKGR_PLLAR_DIVA(2))</span><br><span style="color: hsl(0, 100%, 40%);">-#error "Please define PLLA config for your MAINOSC frequency"</span><br><span style="color: hsl(0, 100%, 40%);">-#endif /* MAINOSC */</span><br><span style="color: hsl(120, 100%, 40%);">+#elif (BOARD_MAINOSC == 18432000) && (BOARD_MCK == 47923200)</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span style="color: hsl(120, 100%, 40%);">+                                        | CKGR_PLLAR_MULA(13-1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                     | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                         | CKGR_PLLAR_DIVA(5))</span><br><span style="color: hsl(120, 100%, 40%);">+#elif (BOARD_MAINOSC == 18432000) && (BOARD_MCK == 58982400)</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span style="color: hsl(120, 100%, 40%);">+                                           | CKGR_PLLAR_MULA(16-1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                     | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                         | CKGR_PLLAR_DIVA(5))</span><br><span style="color: hsl(120, 100%, 40%);">+#elif (BOARD_MAINOSC == 18432000) && (BOARD_MCK == 64512000)</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_PLLAR     (CKGR_PLLAR_STUCKTO1 \</span><br><span style="color: hsl(120, 100%, 40%);">+                                           | CKGR_PLLAR_MULA(7-1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                      | CKGR_PLLAR_PLLACOUNT(0x1) \</span><br><span style="color: hsl(120, 100%, 40%);">+                                         | CKGR_PLLAR_DIVA(2))</span><br><span> #else</span><br><span style="color: hsl(0, 100%, 40%);">-       #error "No PLL settings for current BOARD_MCK."</span><br><span style="color: hsl(120, 100%, 40%);">+     #error "Please define PLLA config for your BOARD_MCK/MAINOSC frequency"</span><br><span> #endif</span><br><span> </span><br><span> #if (BOARD_MAINOSC == 12000000)</span><br><span>diff --git a/firmware/libboard/owhw/include/board.h b/firmware/libboard/owhw/include/board.h</span><br><span>index be6bb17..401fb73 100644</span><br><span>--- a/firmware/libboard/owhw/include/board.h</span><br><span>+++ b/firmware/libboard/owhw/include/board.h</span><br><span>@@ -25,7 +25,10 @@</span><br><span> /** Board definition */</span><br><span> #define owhw</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/** oscillator used as main clock source (in Hz) */</span><br><span> #define BOARD_MAINOSC 18432000</span><br><span style="color: hsl(120, 100%, 40%);">+/** desired main clock frequency (in Hz, based on BOARD_MAINOSC) */</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_MCK 58982400 // 18.432 * 16 / 5</span><br><span> </span><br><span> /* USIM 2 interface (USART) */</span><br><span> #define PIN_USIM2_CLK           {PIO_PA2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}</span><br><span>diff --git a/firmware/libboard/qmod/include/board.h b/firmware/libboard/qmod/include/board.h</span><br><span>index c23ad50..a738daa 100644</span><br><span>--- a/firmware/libboard/qmod/include/board.h</span><br><span>+++ b/firmware/libboard/qmod/include/board.h</span><br><span>@@ -28,7 +28,10 @@</span><br><span> /** Board definition */</span><br><span> #define qmod</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+/** oscillator used as main clock source (in Hz) */</span><br><span> #define BOARD_MAINOSC 12000000</span><br><span style="color: hsl(120, 100%, 40%);">+/** desired main clock frequency (in Hz, based on BOARD_MAINOSC) */</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_MCK 58000000 // 18.432 * 29 / 6</span><br><span> </span><br><span> /* USIM 2 interface (USART) */</span><br><span> #define PIN_USIM2_CLK          {PIO_PA2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}</span><br><span>diff --git a/firmware/libboard/simtrace/include/board.h b/firmware/libboard/simtrace/include/board.h</span><br><span>index 6751863..0c1e533 100644</span><br><span>--- a/firmware/libboard/simtrace/include/board.h</span><br><span>+++ b/firmware/libboard/simtrace/include/board.h</span><br><span>@@ -26,8 +26,10 @@</span><br><span> /* Board definition */</span><br><span> #define simtrace</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-/* Board main oscillator frequency (in Hz) */</span><br><span style="color: hsl(120, 100%, 40%);">+/** oscillator used as main clock source (in Hz) */</span><br><span> #define BOARD_MAINOSC 18432000</span><br><span style="color: hsl(120, 100%, 40%);">+/** desired main clock frequency (in Hz, based on BOARD_MAINOSC) */</span><br><span style="color: hsl(120, 100%, 40%);">+#define BOARD_MCK 58982400 // 18.432 * 16 / 5</span><br><span> </span><br><span> /** Pin configuration **/</span><br><span> /* Button to force bootloader start (shorted to ground when pressed */</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10668">change 10668</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/10668"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: simtrace2 </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Iaa4a97fc68494c93b9d128503515d88049de506c </div>
<div style="display:none"> Gerrit-Change-Number: 10668 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Kévin Redon <kredon@sysmocom.de> </div>