STM32 projekt! Kan två komponenter dela kristall? NRST upptagen, alternativ?

Permalänk
Medlem

STM32 projekt! Kan två komponenter dela kristall? NRST upptagen, alternativ?

Sitter och pular på ett projekt där jag tänkte använda en STM32G050K6 samt en DSP ADAU1761.

Dessa komponenter behöver så klart en kristall, och då tänkte koppla en kristall till STM32:an, och låta DSP:n få sin klocksignal från STM32 via MCO (master clock output). Påbörjat projekt nedan.

Som ni ser är det PF2 som används för MCO. Men problemet är att PF2 även huserar NRST som jag ju också behöver! Hur tusan kommer man runt detta?

Alternativa sätt att använda NRST kanske? Dubbla kristaller? koppla kristallen direkt till både STM32 och DSP:n? Jag har ingen aning Förslag mottages tacksamt!

Visa signatur

[MSI X470 GAMING PLUS] - [AMD RYZEN 3700X] - [G.SKILL F4-3200C14D-16GTZKW] - [Palit GTX 1080] - [Kingston 1TB NVME] - [Corsair HX 750W] - [Noctua NH-D15] - [Fractal Design XL R2] - [Acer XB270HU]

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av davyp3:

Sitter och pular på ett projekt där jag tänkte använda en STM32G050K6 samt en DSP ADAU1761.

Dessa komponenter behöver så klart en kristall, och då tänkte koppla en kristall till STM32:an, och låta DSP:n få sin klocksignal från STM32 via MCO (master clock output). Påbörjat projekt nedan.

https://www.bildtagg.se/file/thumb/m0lq9jm0b4ukbj1vki2bo2b6

Som ni ser är det PF2 som används för MCO. Men problemet är att PF2 även huserar NRST som jag ju också behöver! Hur tusan kommer man runt detta?

Alternativa sätt att använda NRST kanske? Dubbla kristaller? koppla kristallen direkt till både STM32 och DSP:n? Jag har ingen aning Förslag mottages tacksamt!

Att koppla kristallen till mer än en drivkrets kommer bli pannkaka. Eventuellt hade jag väl även rekommenderat en serie resistor och en parallellresistor för att tune:a kristallen om det behövs eller du inte får tag på exakt den tänka.

Att använda klockutgång på STM till DSP-kretsen låter rimligen som rätt väg att gå.

Vad menar du med NRST?
"reset aktiv låg" "NRST" är så vitt jag vet inte något brett vedertaget utan man kan skriva detta på flera olika sätt, jag skriver nästan uteslutande aktivitetsnivå sist, inledes med 'a' om det är en asynkronreset.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av DavidtheDoom:

Att koppla kristallen till mer än en drivkrets kommer bli pannkaka. Eventuellt hade jag väl även rekommenderat en serie resistor och en parallellresistor för att tune:a kristallen om det behövs eller du inte får tag på exakt den tänka.

Att använda klockutgång på STM till DSP-kretsen låter rimligen som rätt väg att gå.

Vad menar du med NRST?
"reset aktiv låg" "NRST" är så vitt jag vet inte något brett vedertaget utan man kan skriva detta på flera olika sätt, jag skriver nästan uteslutande aktivitetsnivå sist, inledes med 'a' om det är en asynkronreset.

Trodde att jag postade en uppdatering här, den måste inte ha sparats.
Lösningen var pinsamt enkel, det gick att omdirigera MCO till en annan pin på STM32:an, så enkelt var det.
men ja, NRST = NotReset enligt STM32 lingo.

En annan fråga, någon som kört med 4pin oscillator istället för kristall? T.ex den här som har det här usla databladet.
Tänkte på om det behövs några kondingar eller annat. Inte ens pinnarna är beskrivna i databladet.

Visa signatur

[MSI X470 GAMING PLUS] - [AMD RYZEN 3700X] - [G.SKILL F4-3200C14D-16GTZKW] - [Palit GTX 1080] - [Kingston 1TB NVME] - [Corsair HX 750W] - [Noctua NH-D15] - [Fractal Design XL R2] - [Acer XB270HU]

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av davyp3:

Trodde att jag postade en uppdatering här, den måste inte ha sparats.
Lösningen var pinsamt enkel, det gick att omdirigera MCO till en annan pin på STM32:an, så enkelt var det.
men ja, NRST = NotReset enligt STM32 lingo.

En annan fråga, någon som kört med 4pin oscillator istället för kristall? T.ex den här som har det här usla databladet.
Tänkte på om det behövs några kondingar eller annat. Inte ens pinnarna är beskrivna i databladet.

Grejen är ju att alla tillverkare (och företag som designar) har olika standarder/lingo. 😅

Dvs STM:en har säkert en drivkrets som spottar ur sig en viss ström till kristaller för att sätta igång svängningarna. Brukar finnas en formel i databladet för kretsen som använder kristallen.

Oscillatorer är dock lite smidigare då de oftast är "tuta och kör" men de kostar även därefter. Bland annat sitter det en förstärkarkrets i oscillatorerna som justerar frekvensen beroende på drivspänning och ibland även temperatur. (Bara ett (i princip) företag tillverkar dessa kretsar och gissa vilket företag som hade en brand i mitten av 2020? 😅)

Jag tror på rak arm att jag körde en last-konding, 0402 på 22pF bakom oscillatorn (längst bort från processorn) på min senaste design, detta är främst för att dämpa känsligheten för störningar, jitter på enable-pinnen mm. Det var dock en 25 MHz oscillator, inte säkert det behövs på din design. Enable var draget till VCC så bara "out" som är själva klockan gick mellan Osc och CPU på min design.

Notera dock här att jag inte jobbat med en STM.

(Pinnarna är beskrivna i datorbladet, sida 1, till höger om schemat på kapseln).

PAD Function
1. Enable Control
2. GND
3. Out
4. VDD

Out är i detta fallet den viktiga pinnen.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin

Permalänk
Medlem
Skrivet av DavidtheDoom:

Grejen är ju att alla tillverkare (och företag som designar) har olika standarder/lingo. 😅

Dvs STM:en har säkert en drivkrets som spottar ur sig en viss ström till kristaller för att sätta igång svängningarna. Brukar finnas en formel i databladet för kretsen som använder kristallen.

Oscillatorer är dock lite smidigare då de oftast är "tuta och kör" men de kostar även därefter. Bland annat sitter det en förstärkarkrets i oscillatorerna som justerar frekvensen beroende på drivspänning och ibland även temperatur. (Bara ett (i princip) företag tillverkar dessa kretsar och gissa vilket företag som hade en brand i mitten av 2020? 😅)

Jag tror på rak arm att jag körde en last-konding, 0402 på 22pF bakom oscillatorn (längst bort från processorn) på min senaste design, detta är främst för att dämpa känsligheten för störningar, jitter på enable-pinnen mm. Det var dock en 25 MHz oscillator, inte säkert det behövs på din design. Enable var draget till VCC så bara "out" som är själva klockan gick mellan Osc och CPU på min design.

Notera dock här att jag inte jobbat med en STM.

(Pinnarna är beskrivna i datorbladet, sida 1, till höger om schemat på kapseln).

PAD Function
1. Enable Control
2. GND
3. Out
4. VDD

Out är i detta fallet den viktiga pinnen.

Jag råkade bara ha 10x såna där oscillatorer, därför jag tänkte använda dem. Annars är jag van vid kristall.
I databladet fanns det ingen beskrivning av Enable pin på oscillatorn, men enligt andra jag sett så kan den vara NC om man inte vill kunna stänga av outputen. Så dumt att de inte skriver det dock.
Jag vill ju också kunna följa tillverkarens rekommendation på eventuella kondingar, men jag hittar inte ens några glada amatörer som delar med sig av sina designval, förutom du, men du kanske är proffs, vad vet jag

Helt enkelt är jag lite putt på att det ska vara så svårt att hitta korrekt information om sånt här. Jag är van att läsa långa datablad, men när informationen saknas då, vad gör man då!

Visa signatur

[MSI X470 GAMING PLUS] - [AMD RYZEN 3700X] - [G.SKILL F4-3200C14D-16GTZKW] - [Palit GTX 1080] - [Kingston 1TB NVME] - [Corsair HX 750W] - [Noctua NH-D15] - [Fractal Design XL R2] - [Acer XB270HU]

Permalänk
Moderator
Festpilot 2020, Antiallo
Skrivet av davyp3:

Jag råkade bara ha 10x såna där oscillatorer, därför jag tänkte använda dem. Annars är jag van vid kristall.
I databladet fanns det ingen beskrivning av Enable pin på oscillatorn, men enligt andra jag sett så kan den vara NC om man inte vill kunna stänga av outputen. Så dumt att de inte skriver det dock.
Jag vill ju också kunna följa tillverkarens rekommendation på eventuella kondingar, men jag hittar inte ens några glada amatörer som delar med sig av sina designval, förutom du, men du kanske är proffs, vad vet jag

Helt enkelt är jag lite putt på att det ska vara så svårt att hitta korrekt information om sånt här. Jag är van att läsa långa datablad, men när informationen saknas då, vad gör man då!

Finns ju inte jättemånga alternativ för en "Enable"-pinne. Antingen aktiv hög, eller aktiv låg. Dra den till ena eller andra hållet därefter. I databladet så står det "3-state function".

Citat:

Tri-State (Enable/Disable)
An oscillator with a Tri-State function allows the oscillator output to be switched on or off by means of simple logic control. The output pin of the oscillator is either at nominal frequency or at a high impedance state dependent upon the logic level on the Output Enable (OE) pin. Note that when an oscillator with enable/disable funtion implemented is in 'disable' (high impedance) mode, the internal oscillator circuit is still running, therefore power saving attributes are somewhat moderate in this mode.

De jag har stött på fungerar på följande sätt:
Enable = Hög -> Oscillator är kopplad till utgång
Enable låg -> Oscillator går men är frånkopplad
Enable flytande -> Intern pull-up drar upp denna och ser till att Oscillatorn kopplas till utgången.

Det brukar vara smart att lägga dit extra pads på pinnar för att kunna koppla på både kondingar och pull-up/down motstånd om det är som så att man får en kass batch med kretsar eller helt enkelt felmärkta grejer med inverterad funktion.

Kondingvalet på enable är egentligen bara för att se till att klockan ska gå stabilare om spänningen är lite svajig, bra ur EMC-synpunkt. För amatörer rätt irrelevant men viktigt för mig som designar grejer som både ska vara CE-märkta men även fungera i elaka miljöer. Jag är också glad amatör inom många områden men man lär sig inte helt själv utan kunskap från andra!

Däremot så ser jag att jag skrev 22 pF på föregående inlägg, det var för min kristall och inte oscillator. På Oscillatorerna kan man ta sig en snabb funderare på vad en eventuell störning från den egna kapseln eller angränsande frekvens kan röra sig om.
Högre frekvens på Oscillatorn = lägre värde på kondensatorn, ty:
Högre frekvens = lägre tidskonstant för störningarna

Har du bra jord-/spänningsplan så är det oftast skitsamma På ett två-lagerskort kan man slänga dit några extra kondensatorvärden för säkerhetsskull.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin