STM32F303 HSE doet het niet.

(HSE = High Speed External, het externe processor-klok-kristal).

Ik heb een printje gemaakt met een STM32F303RB er op.

Ik heb altijd bij STM het kristal gewoon direct op het de osc pinnen aangesloten, en tegenwoordig bij RP2040 ook.

Nu ben ik het bord aan het opbrengen en HSE komt niet op.

Nu heb ik op STM altijd ST gevolgd en tot gisteren altijd een 8MHz kristal gemonteerd, maar dit keer een 12MHz. Levert natuurlijk wat gezeik op met configureren van de software, maar ik dacht dat ondertussen wel aan te kunnen. Alleen de hele HSE draait niet. :-(

Nu ben ik aan het kijken wat er op de nucleo/discovery boards zit en... ze hebben in 2020 de schemas uit de manuals gehaald. :-( Maar in een locaal bewaard copie:

... zit er een 220 ohm weerstand in serie.

Die zit natuurlijk niet op m'n print. :-(

Ik vond in het datasheet een 200k "feedback resistor". Ik heb nu een 220k weerstand tussen de OSC-IN en OSC-OUT gesoldeerd en... nog steeds niets.

179       while (!(RCC->CR & RCC_CR_HSERDY))
180         ;                                       /* Waits until HSE is stable.   */

Volgende stap is een lompe (=HC49, er zit nu een 3.2x2.5mm op) er op solderen.

Maar iemand andere ideeen?

OK. Ik heb nu "HSE UIT" geconfigureerd (in chibios, het framework wat ik voor STM32 gebruik).

Dan kan ik op de HSI 8MHz tenminste code draaien. Dan kan ik ledjes laten knipperen, dus "de rest" doet het voorlopig.

En nu heb ik met de hand:

  RCC->CR |= RCC_CR_HSEON;

gezet voor mijn mainloop.

En in de mainloop: indien klok loopt, knipper OOK ledje2:

  while (1) {
    palTogglePad (GPIOB, 2);
    if (RCC->CR & RCC_CR_HSERDY)
      palTogglePad (GPIOB, 3);
    _delay_us (500000);
  }

Zodat ik gewoon met het ledje kan zien of de klok loopt of niet....

En gedownload en..... ledje knippers. Verrek! Dus met de scoop kijken of ie echt draait en:

Hij doet het gewoon. Geen zin om precies te tellen, maar ziet er toch echt wel uit als 12MHz.

Dus: Zucht.... waarom krijgt Chibios bij het opstarten de klok niet aan de praat, maar ik wel (*)????

(*) met een regel code die ik copy-paste uit chibios heb gecopieerd.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

HEBBES!

Blijkt dat ST, zag je natuurlijk al in het schema hierboven, het kristal niet monteert. Dan is er een optie om vanuit de STLINK op de evaluationboards een klok naar de te evalueren CPU te sturen.

Dus dan moet de OSCILLATOR uit geconfigureerd worden en alleen "CLOCK IN" gebruikt worden ("HSE bypass" heet dat). Zo stond de config, maar in chibios handig: op een andere plek dan alle andere clock config dingen.

Anyway, nu oscillator op de CPU aan, en hij draait.

Toen ik het "met de hand" deed, zag je dat ie de eerste keer door de loop ging de clock het nog niet deed, maar 500ms later... wel! De leds liepen uit sync (om en om). Nu komt ie met "werkende HSE" mijn test in en lopen de leds in sync (alletwee aan / alletwee uit).

EDIT: Hmm. Nu alleen HSEbypass goed(uit) gezet en draait direct als een tierelier... En als ik het goed zie, moet ik nu op 108MHz draaien terwijl max 72MHz is. ... Yup een 500ms delay duurt 333ms.

Update: USB doet het nu ook. Ik was even vergeten dat deze CPU zo oud is dat ie geen ingebouwde 1.5k pullup op USB_DP heeft.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
PE9SMS

Golden Member

Ik vond in het datasheet een 200k "feedback resistor". Ik heb nu een 220k weerstand tussen de OSC-IN en OSC-OUT gesoldeerd en... nog steeds niets.

Die 200k zit IN de STM32, hoef je niet zelf toe te voegen.

Hij doet het gewoon. Geen zin om precies te tellen, maar ziet er toch echt wel uit als 12MHz.

Je scoop zegt 11,4 MHz. Maar dat komt mogelijk door de belasting van je probe+scoop?

This signature is intentionally left blank.

Op woensdag 10 juli 2024 10:16:36 schreef PE9SMS:
[...]Die 200k zit IN de STM32, hoef je niet zelf toe te voegen.

Ah! Had ik tot nu toe ook nooit gedaan, maar als het niet werkt ga je proberen alles "volgens de regels" te doen(*)... Bij FTDI moet je bij sommige chips zelf een 1M weerstand monteren. Met ongeveer 100k doet hij het kennelijk ook.

[...]Je scoop zegt 11,4 MHz. Maar dat komt mogelijk door de belasting van je probe+scoop?

Ohja. Inderdaad. Volgens mij met 5% lagere frequentie hoort USB het absoluut niet te doen, en die doet het dus wel. Ik heb op OSC-OUT gemeten, om de boel zo min mogelijk te beinvloeden. Ik denk dat ik dan met 10pF extra WEL de frequentie beinvloed, maar minder kans heb op het afslaan van de oscillator. Dat laatste wil ik dus absoluut niet. Je gaat helemaal met een kluitje het riet in als de oscillator WEL draait maar je meting zegt van niet.

(*) De eerste 220k die ik uit het bakje "220k 0805" pakte blijkt 1206 te zijn. Dat kwam prima uit, want de afstand tussen de pootjes van de condensatoren waar ik hem tussen wilde zetten was precies die 3mm (lengte 1206).

[Bericht gewijzigd door rew op woensdag 10 juli 2024 12:31:34 (11%)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/