STM32 Inställningar hjälp?
Re: STM32 Inställningar hjälp?
> Om manualen känns tung är sannolikt http://www.st.com/mcdfiles/1221142709.pdf mer lättsmält att börja med.
Jo, onekligen! Tack för den länken!
Jo, onekligen! Tack för den länken!
Re: STM32 Inställningar hjälp?
Hej igen!
Tack PeSve för tipset till dokumentet, mycket informativt. Riktigt bra tips rent utav
Har precis börjat läsa i dokumentet, och det verkar lovande, det ser ut att fokusera på det som man behöver för att komma igång.
Följer dokumentet användningen av standardbiblioteket?
Hur ligger det till med standard biblioteket rent generellt, är det någon som skulle kunna göra en kort sammanfattning vad standardbiblioteket innehåller och vad det används till. Samt vad det inte innehåller och vad man inte använder det till?
Tack PeSve för tipset till dokumentet, mycket informativt. Riktigt bra tips rent utav

Har precis börjat läsa i dokumentet, och det verkar lovande, det ser ut att fokusera på det som man behöver för att komma igång.
Följer dokumentet användningen av standardbiblioteket?
Hur ligger det till med standard biblioteket rent generellt, är det någon som skulle kunna göra en kort sammanfattning vad standardbiblioteket innehåller och vad det används till. Samt vad det inte innehåller och vad man inte använder det till?
Re: STM32 Inställningar hjälp?
Finns det någon som har erfarenhet av att sätta upp I2S?
Har tittat i koden för att sätta upp I2S, men har svårt att skilja på vad som behövs för att ta emot ljud, och det som används till att skicka ljud.
Själv är jag i behov att att sätta upp ljud ut via I2S med interrupt, med en given plats att fylla på en DMA buffer. Har dock inget behov av ljud in. Jag antar att det inte är något svårt, men har svårt att se skogen för alla träden
. Att få ut en sågtandspuls på DAC'en som exempel skulle i detta läge göra mig överlycklig ( Typ en räknare som räknar uppåt och slår runt vid overflow skulle fixa det). Jobbigt när man inte vet var man ska börja....
Har tittat i koden för att sätta upp I2S, men har svårt att skilja på vad som behövs för att ta emot ljud, och det som används till att skicka ljud.
Själv är jag i behov att att sätta upp ljud ut via I2S med interrupt, med en given plats att fylla på en DMA buffer. Har dock inget behov av ljud in. Jag antar att det inte är något svårt, men har svårt att se skogen för alla träden

Re: STM32 Inställningar hjälp?
Lite Google info om du inte redan har sökt
You can start using the DAC examples provided in the Firmware Library :
http://www.st.com/stonline/products/sup ... ph_lib.zip and then tailor to your application.
har du kollat på den, tror den producerar sågtand eller någon våg iaf
You can start using the DAC examples provided in the Firmware Library :
http://www.st.com/stonline/products/sup ... ph_lib.zip and then tailor to your application.
har du kollat på den, tror den producerar sågtand eller någon våg iaf

Re: STM32 Inställningar hjälp?
Jo det var ju fina exempel du hitta lizerdboy... Precis vad jag önska mig, men de är ju skrivna till DAC'en, attans, inte till en extern DAC via I2S.
Re: STM32 Inställningar hjälp?
Du kan alltid kolla på CircleOs och då på audio.c och stm32f10x_circle_it
Där kör de i2s med dma och med interrupt på dma:n
http://www.stm32circle.com/projects/project.php?id=49
Där kör de i2s med dma och med interrupt på dma:n
http://www.stm32circle.com/projects/project.php?id=49
Re: STM32 Inställningar hjälp?
Tackar för ditt svar Micke_s!
Jag satt just och fundera på just det här med DMA och interrupt och hur man kan använda dessa tillsammans med olika enheter.
Insett att jag är tvungen att sätta mig in i allt från grunden, så det är vad jag försöker göra nu.
Så att lära sig allt om interrupt och dma hanteringen i stm32 verkar ju avgörande för att kunna göra något vettigt överhuvud taget.
Läst på det där fina dokumentet som någon tipsade om...
http://www.st.com/mcu/files/mcu/1221142709.pdf
Där kan man läsa följande under 4.2.3 Direct Memory Access ...
"To make this process more efficient, we can enable the circular buffer support so that the ADC data will
continuously write to our buffer. Then, by using the half complete and transfer complete interrupts, we can create
a double buffer. So when the first half of the buffer is full, an interrupt will be generated and we can process this
data while the DMA continues to fill the second half. Once the second half is full, we can process this data while
the DMA starts to refill the buffer from the top. All the other peripherals with DMA support are handled in a similar
way."
Har jag då förstått det hela rätt om jag säger det följande? ...
Så i princip så borde jag kunna skapa en buffer med DMA som matar data till I2C. Och att jag får interrupt när DMA bufferten är halvfull och full. Detta ger mig en dubbelbuffer.
Några frågor som dyker upp är...
Hur vet DMA'n när han ska ge data till I2C? Är detta förinställt i processorn om jag kopplar DMA' till I2S utgången, så man inte behöver tänka på det?
Hur vet man vilken buffer man ska skriva till?
Är det samma DMA interrupt till halvfull och full?
Kan man få DMA buffertern själv, eller måste jag göra om inställningarna varje gång jag får en buffer-full interrupt?
Jag satt just och fundera på just det här med DMA och interrupt och hur man kan använda dessa tillsammans med olika enheter.
Insett att jag är tvungen att sätta mig in i allt från grunden, så det är vad jag försöker göra nu.

Läst på det där fina dokumentet som någon tipsade om...
http://www.st.com/mcu/files/mcu/1221142709.pdf
Där kan man läsa följande under 4.2.3 Direct Memory Access ...
"To make this process more efficient, we can enable the circular buffer support so that the ADC data will
continuously write to our buffer. Then, by using the half complete and transfer complete interrupts, we can create
a double buffer. So when the first half of the buffer is full, an interrupt will be generated and we can process this
data while the DMA continues to fill the second half. Once the second half is full, we can process this data while
the DMA starts to refill the buffer from the top. All the other peripherals with DMA support are handled in a similar
way."
Har jag då förstått det hela rätt om jag säger det följande? ...
Så i princip så borde jag kunna skapa en buffer med DMA som matar data till I2C. Och att jag får interrupt när DMA bufferten är halvfull och full. Detta ger mig en dubbelbuffer.
Några frågor som dyker upp är...
Hur vet DMA'n när han ska ge data till I2C? Är detta förinställt i processorn om jag kopplar DMA' till I2S utgången, så man inte behöver tänka på det?
Hur vet man vilken buffer man ska skriva till?
Är det samma DMA interrupt till halvfull och full?
Kan man få DMA buffertern själv, eller måste jag göra om inställningarna varje gång jag får en buffer-full interrupt?
Re: STM32 Inställningar hjälp?
Dma:n vet att den ska skriva data för det finns ett dma request från periferienheter.
Det är samma interrupt för half full och full, men det finns flaggor.
Med hjälp av flaggorna vet du om du ska skriva i den låga eller höga delen av bufferten.
Sista frågan är lite konstigt formulerat, vad menar du med "Kan man få DMA buffertern själv"?
Själva bufferten ligger som en array i minnet bara eller så frågar du om dma:n måste ställas in varje gång den är full så ställer den om sig själv(i cirkulärt läge).
Det är samma interrupt för half full och full, men det finns flaggor.
Med hjälp av flaggorna vet du om du ska skriva i den låga eller höga delen av bufferten.
Sista frågan är lite konstigt formulerat, vad menar du med "Kan man få DMA buffertern själv"?
Själva bufferten ligger som en array i minnet bara eller så frågar du om dma:n måste ställas in varje gång den är full så ställer den om sig själv(i cirkulärt läge).
Re: STM32 Inställningar hjälp?
Vill passa på och tacka för hjälpen.
Jo jag lyckades tappa halva meningen i min minst sagt svårtolkade fråga
Jag behöver nog korrekturläsa mig själv
T.ex. så handla min fråga om vilken buffert man skulle skriva till givetvis vilken halva man ska skriva till, men det fick jag ju svar på 
Det jag ville fråga var nog om var nog följande...
Om man ställer in DMA kanalen som cirkulär buffert (för I2S ut i detta fallet), hämtar den då data från bufferten automatiskt hela tiden eller är det något man måste ställa om för att den ska fortsätta fylla på?
Jo jag lyckades tappa halva meningen i min minst sagt svårtolkade fråga



Det jag ville fråga var nog om var nog följande...
Om man ställer in DMA kanalen som cirkulär buffert (för I2S ut i detta fallet), hämtar den då data från bufferten automatiskt hela tiden eller är det något man måste ställa om för att den ska fortsätta fylla på?
Re: STM32 Inställningar hjälp?
Den kommer snurra över bufferten i all evighet eller tills dma:n ställs om alternativ processorn dör/resettas/dör av ålderdom osv..
Re: STM32 Inställningar hjälp?
Har för mig att de körde i2s med dma utan interrupt, men att de läser av full och halvfull flaggorna?Micke_s skrev:Du kan alltid kolla på CircleOs och då på audio.c och stm32f10x_circle_it
Där kör de i2s med dma och med interrupt på dma:n
http://www.stm32circle.com/projects/project.php?id=49
Är det någon som vet om de finns något exempel där man använder DMA med cirkulär buffer och med interrupt på full och halvfull flaggorna...
Half-Transfer Interrupt Enable bit (HTIE).
Transfer Complete Interrupt Enable bit (TCIE).
Det behöver inte vara till i2s, det kan vara till vilket tillbehör som helst? För jag skulle behöva något att gå på för att få någon ledtråd.
Re: STM32 Inställningar hjälp?
Prova gå in på STM32 Forum och ställ dina frågor.
https://my.st.com/public/STe2ecommuniti ... fault.aspx
Där kan de säker svara på dina frågor.
https://my.st.com/public/STe2ecommuniti ... fault.aspx
Där kan de säker svara på dina frågor.
Re: STM32 Inställningar hjälp?
Om du tycker databladet är för avancerat så bör du tänka igenom vilka HW moduler du vill använda och endast läsa om dessa.
Mitt tips är att beställa ett devkit (jag beställde från http://www.micro4you.com/store/) och sedan göra följande:
* Installera Yagarto (GCC toolchain för ARM till Windows)
* Ladda ned STs Flashloader (www.st.com) för programladdning
* Leta upp startfil (startup.s) för GCC ( www.st.com men man får leta lite) som innehåller interruptvektorer och annat
* Leta upp makefil och .ld för för Cortex M3 och göra dessa kompatibla mot startupfilen
* Ladda ned exempelprogram från ST (de har interrupt, DMA, ADC, USB m.m.)
* Koda!
Det är lite jobb att få igång det, men det är det värt, en cortex M3 är helt överlägsen PIC och AVR.
Givetvis om man ska blinka lite lysdioder är en Cortex M3 overkill.
Mitt tips är att beställa ett devkit (jag beställde från http://www.micro4you.com/store/) och sedan göra följande:
* Installera Yagarto (GCC toolchain för ARM till Windows)
* Ladda ned STs Flashloader (www.st.com) för programladdning
* Leta upp startfil (startup.s) för GCC ( www.st.com men man får leta lite) som innehåller interruptvektorer och annat
* Leta upp makefil och .ld för för Cortex M3 och göra dessa kompatibla mot startupfilen
* Ladda ned exempelprogram från ST (de har interrupt, DMA, ADC, USB m.m.)
* Koda!
Det är lite jobb att få igång det, men det är det värt, en cortex M3 är helt överlägsen PIC och AVR.
Givetvis om man ska blinka lite lysdioder är en Cortex M3 overkill.
- SeniorLemuren
- Inlägg: 8415
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: STM32 Inställningar hjälp?
Nån som vet vart man kan hitta documentet nu för tiden ?snigelen skrev:> Om manualen känns tung är sannolikt http://www.st.com/mcdfiles/1221142709.pdf mer lättsmält att börja med.
Jo, onekligen! Tack för den länken!
Re: STM32 Inställningar hjälp?
Sedan ST bytte web-system är alla gamla länkar trasiga (skickligt?). Men det aktuella dokumentet är väl "The Insiders Guide To The STM32 Arm Based Microcontroller", om jag inte missminner mig. Det finns på flertalet ställen på nätet t.ex. här (första google-träffen som inte kräver registrering för nedladdning).