Fórum témák

» Több friss téma
Fórum » STM32 Discovery Kit programozása
Lapozás: OK   4 / 7
(#) Suncorgo hozzászólása Jan 20, 2015 /
 
Meg is van a megoldás:

Project -> options for ... -> debug fül

és itt kell átírni:

DCM.DLL -pCM3

erre:

DARMSTM.DLL -pSTM32F103C8

(#) Suncorgo hozzászólása Jan 22, 2015 /
 
Ki hogy oldotta meg a delay funkciót? (szoftveres késleltetés) Mert írtam egyet én is csak hátha van jobb megoldás is
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Én elfelejteném a Delayt!
Jobb a Timer interuptban egy számlálót növelni, és azt figyelni a programban.
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 22, 2015 /
 
Ne rohanj le ilyen gyorsan én is így csináltam. Annyival kiegeszitve hogy mikor nincs szükség a funkciora akkor kikapcsolom a systick-et hogy ne ugráljon feleslegesen a megszakítás fügvényre.
A hozzászólás módosítva: Jan 22, 2015
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Ügyes!
(Mondjuk ez már nem (szoftveres késleltetés))

De látatlanba, nem lehet semmi építő javaslatunk!

(Mondjuk, bonyolultabb projectben több időzítésre is szükség lehet!)
A hozzászólás módosítva: Jan 22, 2015
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 22, 2015 /
 
Félig szoftveres, ha hazaérek felteszem a kódot. Egyenlőre us és ms van kész.
(#) Suncorgo hozzászólása Jan 22, 2015 /
 
  1. #include "systick_kesleltetes.h"
  2. #include "stm32f10x.h"                  // Device header
  3.  
  4. u32 szamlalo;
  5.  
  6. void SysTick_Inditasa(void)
  7. {
  8.         SysTick->LOAD  = (SystemCoreClock / 1000000) - 1;                                                       //reload regiszter beállítása (1us)
  9.         NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);             //megszakítás prioritás beállítása
  10.         SysTick->VAL   = 0;                                                                                                                                                                             //számláló nullázása
  11.         SET_BIT(SysTick->CTRL, SysTick_CTRL_CLKSOURCE_Msk);                                             //számláló órajele AHB
  12.         SET_BIT(SysTick->CTRL, SysTick_CTRL_TICKINT_Msk);                                                       //túlcsordulás megszakítás engedélyezése
  13. }
  14.  
  15. void SysTick_Kesleltetes_us(u32 ido)
  16. {
  17.         szamlalo = ido;
  18.         SET_BIT(SysTick->CTRL, SysTick_CTRL_ENABLE_Msk);
  19.         while(szamlalo);
  20.         CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_ENABLE_Msk);
  21. }
  22.  
  23. void SysTick_Kesleltetes_ms(u32 ido)
  24. {
  25.         while(ido--)
  26.         {
  27.                 szamlalo = 1000;
  28.                 SET_BIT(SysTick->CTRL, SysTick_CTRL_ENABLE_Msk);
  29.                 while(szamlalo);
  30.                 CLEAR_BIT(SysTick->CTRL, SysTick_CTRL_ENABLE_Msk);
  31.         }
  32. }
  33.  
  34. void SysTick_Handler(void)
  35. {
  36.         if(szamlalo)
  37.         {
  38.                 szamlalo--;
  39.         }
  40. }


itt is van: 100ms. Ötletek optimalizálásra?
A hozzászólás módosítva: Jan 22, 2015
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Ez nem OK!
Így csak ott állsz a while(szamlalo); ciklusban! És közben mást nem tud a gép csinálni?

Szerintem csak elfecsérelt idő volt a részedről!
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 22, 2015 /
 
Miért ne tudnánk mást csinálni?

  1. while(szamlalo){ mast_csinalunk_fuggveny(); }
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
void SysTick_Kesleltetes_us(u32 ido,? ?)

Ez nincsen benne, hogy átadsz: mast_csinalunk_fuggveny()-t
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 22, 2015 /
 
Igazság szerint azért nem írtam még bele mert egyenlőre nem célom mást csinálni. Viszont ezzel nagyon kell vigyázni mert ha beakad a progi abban a fv-ben egy végtelen ciklusban akkor bizony soha nem lesz vége a késleltetésnek. Most gondolkodom valamin csak még egyszer át futok rajta...
(#) benjami válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Ha a programod beakad egy végtelen ciklusban nem teljesen mindegy, hogy egy késleltető ciklusból hívtad meg vagy máshonnan?
(#) Suncorgo válasza benjami hozzászólására (») Jan 22, 2015 /
 
ez igaz
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Ennél többet én sem tudok róla!
Setting ARM Cortex-M Interrupt Priorities

Ilyenkor jön a teszteléses tapasztalat gyűjtés, amit általában dokumentálok magamnak.
(#) kapu48 válasza kapu48 hozzászólására (») Jan 22, 2015 /
 
Itt is ilyesmit magyaráznak:
How to config interrupts priorities for STM32
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 22, 2015 /
 
Én inkább ilyen időzítésben gondolkoznák:
Timer
Ezt fejleszd tovább!
(#) Suncorgo hozzászólása Jan 28, 2015 /
 
Össze lehet úgy konfigolni kettő timert az STM32F103C8-ban hogy pl a TIM2 OVF legyen az órajele a TIM3-nak? Vagy egyszerűbb ha egy változót használok? Minél több CPU időre van szükségem.
(#) Atielektro válasza Suncorgo hozzászólására (») Jan 28, 2015 /
 
Én úgy látom, hogy igen. A 401-edik oldalon van a regiszter, meg a táblázat, ami segíthet:

User manual

A TIM2-ön aktiválni kell a TRGO szignált, akkor az majd triggereli a TIM3-at, ha nem tévedek.
(#) Suncorgo hozzászólása Jan 28, 2015 /
 
Nálatok működik a logikai analizátor? Nálam nem frissíti a változók értékét. Fut a timer és a számlálóját akartam volna vele vizualizálni (fűrészjel) és nem működik. Pedig ment.
(#) Suncorgo hozzászólása Jan 29, 2015 /
 
Kicsit pontosítom, ha direkt a timer számláló regiszterét olvasom akkor nem frissül az érték. Ha egy végtelen ciklusba mindig olvasom egy változóba akkor jó. Visszaolvasva a KEIL uvision szimulátoráról van szó. Nálatok se megy?
(#) Suncorgo hozzászólása Jan 29, 2015 /
 
Egy kis segítség kellene a kapcsolódáshoz. Az SWD-hez melyik lábakat kell bekötni? A 3.3V a GND az SDIO és SDCLK egyértelmű. A reset kell?

Az STM32 stlink utility beolvassa a memória méretet, a chip típusát de "can not connect to device" hibát kapok. Miért? (első kép)

Ha nyomva tartom a reset-et a panelen akkor sokkal tovább tart a kommunikáció a villogás idejéből ítélve de akkor is hibát kapok.
A hozzászólás módosítva: Jan 29, 2015
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 29, 2015 /
 
Én úgy értelmezem, hogy a régi firmvare van az ST-linken, és kéri, hogy frissítsed!
Igen kel a RESET!
A hozzászólás módosítva: Jan 29, 2015
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 29, 2015 /
 
Letöltöttem a csak firmware frissítőt az visszafele frissít a V2.J21.S4 verzióra.

Ha az st link utility programot nyitom meg és ott nézem meg akkor tényleg újabb verziót ír: V2.J23.S4

de akár melyikkel próbálom ugyan ez a helyzet.

Van egy harmadik helyzet is. Akkor beolvassa ugyan így a uc nevét és a flash méretét is de can read memory-t ír, a memória védelem aktív üzenet nélkül.
A hozzászólás módosítva: Jan 29, 2015

firmware.jpg
    
(#) Suncorgo hozzászólása Jan 29, 2015 /
 
Ez szerint kötöttem be.

kimenet:
17:42:11 : ST-LINK SN : 51FF6F066778505422541167
17:42:11 : ST-LINK Firmware version : V2J23S4
17:42:11 : Connected via SWD.
17:42:11 : SWD Frequency = 1,8 MHz.
17:42:11 : Connection mode : Connect Under Reset.
17:42:11 : Debug in Low Power mode enabled.
17:42:11 : Device ID:0x410
17:42:11 : Device flash Size : 64KBytes
17:42:11 : Device family :STM32F10xx Medium-density
17:42:11 : Can not connect to device!

17:42:13 : Disconnected from device.
17:42:13 : Connection to device is lost: check power supply and debug connection.
17:42:13 : If the target is in low power mode, please enable "Debug in Low Power mode" option from Target->settings menu.
A hozzászólás módosítva: Jan 29, 2015
(#) Suncorgo hozzászólása Jan 29, 2015 /
 
*** Target-> option bytes
volt 3 pipa 2 reset megy egy wdt. A read protect disbled-en volt. Eddig ok. Semmit sem módosítottam. Viszont rutinból az apply-ra nyomtam, elkezdett egy folyamatjelző felfelé menni de 5 perc után megúntam így kihúztam. Nem létezik hogy nem végzett. Most már a beállításokban:
power supply 2.1V (ez ennyi is volt, viszont ez nem alacsony??? multiméterrel 2.98V-ot mérek)
STM32 target info: Detection fail (ez eddig írta a uc típusát de, most már nem akarja)

Sikerült megölni?
A hozzászólás módosítva: Jan 29, 2015
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 29, 2015 /
 
Valószínű el csákányoztad már mikor kézi resetel próbáltál programot feltölteni!

Amíg nem tudjuk az uC adatait helyesen beolvasni, addig nem szabad programot feltölteni!
(#) Suncorgo válasza kapu48 hozzászólására (») Jan 29, 2015 / 1
 
Programot feltölteni nem akartam, mit is töltöttem volna fel mikor nincs is semmilyen programom? Csak kiolvasni szerettem volna a semmit. Hogy hiba nélkül írja az FF értékeket.

Az STVP azt írja: the device is protected akármit is akarok csinálni vele. Szóval ez kuka. Itt Magyarországon lehet venni ilyen minimum sys board-ot? Nem akarok megint 3 hetet várni míg kínából ideér. Nem kell discovery mert programozóm van. Ha nem lehet venni akkor uC kell és összerakni neki egy panelt.
A hozzászólás módosítva: Jan 29, 2015
(#) kapu48 válasza Suncorgo hozzászólására (») Jan 29, 2015 /
 
Próbálkozz itt, Ők a Farnell element14 hazai képviselete:
Bővebben: Link
(#) vzoole válasza Suncorgo hozzászólására (») Jan 29, 2015 /
 
Szerintem nem nyírtad ki, kösd be ezeket:
-TVCC (1) tápra
-SWIO (7)
-SWCLK (9)
-RST (15)
-GND (20)

Linkeld már be, hogy milyen paneled és programozód van.
A hozzászólás módosítva: Jan 29, 2015
(#) icserny válasza Suncorgo hozzászólására (») Jan 29, 2015 /
 
Idézet:
„Nem kell discovery mert programozóm van.”

Miért nem az ARM - Miértek, hogyanok topikban tetted fel a kérdést? Hátha ott többen tudnak válaszolni...
Következő: »»   4 / 7
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem