Hjälp med mitt första kretskort (STM32 + audio codec)
Postat: 3 januari 2014, 23:42:39
Hej!
Det här blir mitt första inlägg här på Elektronikforumet. Ursäkta inläggets enorma längd. Jag är nybörjare på elektronik, men jag har programmerat mycket, så mjukvaran är inget större problem. Jag har läst och experimenterat lite med elektronik på kvällarna det senaste halvåret. Nu har jag gett mig på det kanske överambitiösa projektet att bygga en digital synt och jag har kört fast ordentligt. Har någon möjlighet att hjälpa mig vidare, eller har jag tagit mig vatten över huvudet och borde ge mig på ett enklare projekt?
Jag vill som sagt bygga en digital synth (eller något liknande). Mitt första (eller egentligen mitt andra) steg i denna riktning är att göra ett kretskort med en mikrokontroller (STM32F4, dvs en ARM Cortex-M4) samt en DAC (Wolfson WM8731). Jag ritade mitt kretsschema (heter det så?) och PCB i Eagle och beställde kretskort och komponenter, "youtubade" videos om hur man löder SMD-komponenter och lödde dit mina komponenter, jag bad en stilla bön, kopplade in ström och testade. (Bifogat är bilder på kretsschema, PCB och ett foto på kortet.)
Till en början verkade allt helt okej. PWR LED lyste med ett vackert rött sken. Jag testade att koppla in programmeraren (ett STM32F4 Discovery utvecklingskort som också fungerar som SWD-programmerare) och skickade över ett enkelt "blinky"-program som skulle få en av mina LED-lampor att blinka. Men ingenting händer. Jag testar att debugga via GDB, och jag ser att processorn faktiskt kör, men att programmet är fast i en initialiseringsruting som ska gå över till den externa klockan HSE (High Speed External Clock), som i mitt fall drivs av en 8 MHz kristall. Till en början drivs MCU:n av en intern klocka. Så, där är jag fast, och jag vet inte vad jag gör för att felsöka detta.
Jag testade med att göra ett nytt försök och lödde på bara de mest essentiella komponenterna (för att minska möjliga misstag), använde mig av en annan teknik för att löda dit QFP:n, alltså själva STM32F4-mikrokontrollern (mindre lödkolvspets, och lödde ben för ben istället för att "dra" över alla ben i ett svep och sen rengöra med lödfläta). Mitt andra kort startade inte över huvud taget, jag lyckas inte programmera den ens över SWD.
Så frågan är: Vad gör jag nu? På mitt "halvfungerade" kort har jag alltså en STM32F4 som jag har lött dit för hand, processorn verkar boota upp men oscillatorn verkar inte starta. Det enda jag har som mätinstrument är en billig multimeter som jag har använt för att testa att jag har kontakt (continuitetstest) mellan olika punkter på kretskortet. Jag har inget oscilloskop och det är inte inom min budget just nu att köpa ett (och jag vill inte köpa något billigt för att sedan inse att jag har köpt skräp).
Har någon en idé på hur jag kan felsöka detta? Tror ni det är fel i mitt kretsschema, på min PCB-design, fel på min lödning eller något annat? Tacksam för all hjälp jag kan få!
Min design är rejält inspirerad av följande projekt: STM32F4 + Codec.
PS. Jag hoppas jag har placerat tråden i rätt kategori. Eftersom tråden är mer en fråga (ett rop på hjälp) än att jag vill visa upp mitt projekt, så placerade jag tråden i Allmänt / "Allmänna funderingar och frågor om elektronik". Om det var en feltolkning, så flytta gärna tråden.
EDIT: Bifogade kretsschemat i högre upplösning.
Det här blir mitt första inlägg här på Elektronikforumet. Ursäkta inläggets enorma längd. Jag är nybörjare på elektronik, men jag har programmerat mycket, så mjukvaran är inget större problem. Jag har läst och experimenterat lite med elektronik på kvällarna det senaste halvåret. Nu har jag gett mig på det kanske överambitiösa projektet att bygga en digital synt och jag har kört fast ordentligt. Har någon möjlighet att hjälpa mig vidare, eller har jag tagit mig vatten över huvudet och borde ge mig på ett enklare projekt?
Jag vill som sagt bygga en digital synth (eller något liknande). Mitt första (eller egentligen mitt andra) steg i denna riktning är att göra ett kretskort med en mikrokontroller (STM32F4, dvs en ARM Cortex-M4) samt en DAC (Wolfson WM8731). Jag ritade mitt kretsschema (heter det så?) och PCB i Eagle och beställde kretskort och komponenter, "youtubade" videos om hur man löder SMD-komponenter och lödde dit mina komponenter, jag bad en stilla bön, kopplade in ström och testade. (Bifogat är bilder på kretsschema, PCB och ett foto på kortet.)
Till en början verkade allt helt okej. PWR LED lyste med ett vackert rött sken. Jag testade att koppla in programmeraren (ett STM32F4 Discovery utvecklingskort som också fungerar som SWD-programmerare) och skickade över ett enkelt "blinky"-program som skulle få en av mina LED-lampor att blinka. Men ingenting händer. Jag testar att debugga via GDB, och jag ser att processorn faktiskt kör, men att programmet är fast i en initialiseringsruting som ska gå över till den externa klockan HSE (High Speed External Clock), som i mitt fall drivs av en 8 MHz kristall. Till en början drivs MCU:n av en intern klocka. Så, där är jag fast, och jag vet inte vad jag gör för att felsöka detta.
Jag testade med att göra ett nytt försök och lödde på bara de mest essentiella komponenterna (för att minska möjliga misstag), använde mig av en annan teknik för att löda dit QFP:n, alltså själva STM32F4-mikrokontrollern (mindre lödkolvspets, och lödde ben för ben istället för att "dra" över alla ben i ett svep och sen rengöra med lödfläta). Mitt andra kort startade inte över huvud taget, jag lyckas inte programmera den ens över SWD.
Så frågan är: Vad gör jag nu? På mitt "halvfungerade" kort har jag alltså en STM32F4 som jag har lött dit för hand, processorn verkar boota upp men oscillatorn verkar inte starta. Det enda jag har som mätinstrument är en billig multimeter som jag har använt för att testa att jag har kontakt (continuitetstest) mellan olika punkter på kretskortet. Jag har inget oscilloskop och det är inte inom min budget just nu att köpa ett (och jag vill inte köpa något billigt för att sedan inse att jag har köpt skräp).
Har någon en idé på hur jag kan felsöka detta? Tror ni det är fel i mitt kretsschema, på min PCB-design, fel på min lödning eller något annat? Tacksam för all hjälp jag kan få!
Min design är rejält inspirerad av följande projekt: STM32F4 + Codec.
PS. Jag hoppas jag har placerat tråden i rätt kategori. Eftersom tråden är mer en fråga (ett rop på hjälp) än att jag vill visa upp mitt projekt, så placerade jag tråden i Allmänt / "Allmänna funderingar och frågor om elektronik". Om det var en feltolkning, så flytta gärna tråden.
EDIT: Bifogade kretsschemat i högre upplösning.