Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   76 / 177
(#) kiborg válasza kapu48 hozzászólására (») Okt 7, 2016 /
 
Szia!

Köszi, most már tudom, hogy így hívják a programozót
Mi a különbség az általad linkelt és EZ a programozó között? Nekem nem tűnik fel semmi!
Attól függetlenül, hogy nem látom a support listában, támogatja az Atollic-et is mindkettő vagy nem?
Ha megerősíted,akkor megy a rendelés.
A hozzászólás módosítva: Okt 7, 2016
(#) kapu48 válasza kiborg hozzászólására (») Okt 7, 2016 /
 
Szerintem is egyformák.
Igen!

Bővebben: Hozzávalók
A hozzászólás módosítva: Okt 7, 2016
(#) kiborg válasza kapu48 hozzászólására (») Okt 7, 2016 /
 
Köszönöm a segítséget mindkettőtöknek!
Ment megrendelés.
Majd jelentkezek,ha megjött a cucc és elakadtam, amiben sajnos biztos vagyok.
(#) cimopata hozzászólása Okt 7, 2016 /
 
Tudna valaki linkelni egy működő READ protection kódot? Kb 1 teljes napom ment eddig el vele már nagyon ki van a ***** a fordítóval mindenért nyafog. Linkelem a gyári FLASH.h könyvtárt és már abban is hibákat talál az agyamat eldobom.

Köszönöm.
(#) kapu48 válasza cimopata hozzászólására (») Okt 7, 2016 /
 
Melyik IDE?
Melyik UC?

Nálam semmi hiba: Keil5 és STM32 F 103 C8T6
(#) cimopata válasza kapu48 hozzászólására (») Okt 7, 2016 /
 
Leszedtem a gyári 1.5 ös könytárat az F030 procihoz. Azépen bemásoltam a stm32f0xx_flash.h az inc mappámba a stm32f0xx_flash.c meg az src-be.

Keil5 tök üres program 1db led villogtatás.
Berakom a #include "stm32f0xx_flash.h" és kezdődik a sírás.

(error in include chain ("stm32f0xx_flash.h):" expected '}'

Mindegy futtatom a fordítást hibák sora:

  1. LASH_ERROR_WRP,
  2. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(74): warning:  #47-D: incompatible redefinition of macro "IS_FLASH_LATENCY" (declared at line 73 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h")
  3.   #define IS_FLASH_LATENCY(LATENCY) (((LATENCY) == FLASH_Latency_0) || \
  4. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(97): warning:  #47-D: incompatible redefinition of macro "IS_FLASH_PROGRAM_ADDRESS" (declared at line 95 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h")
  5.    #define IS_FLASH_PROGRAM_ADDRESS(ADDRESS) (((ADDRESS) >= 0x08000000) && ((ADDRESS) <= 0x0800FFFF))
  6. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(110): warning:  #47-D: incompatible redefinition of macro "IS_OB_DATA_ADDRESS" (declared at line 68 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h")
  7.   #define IS_OB_DATA_ADDRESS(ADDRESS) (((ADDRESS) == 0x1FFFF804) || ((ADDRESS) == 0x1FFFF806))
  8. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(226): warning:  #47-D: incompatible redefinition of macro "IS_OB_STOP_SOURCE" (declared at line 76 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h")
  9.   #define IS_OB_STOP_SOURCE(SOURCE) (((SOURCE) == OB_STOP_NoRST) || ((SOURCE) == OB_STOP_RST))
  10. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(238): warning:  #47-D: incompatible redefinition of macro "IS_OB_STDBY_SOURCE" (declared at line 78 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h")
  11.   #define IS_OB_STDBY_SOURCE(SOURCE) (((SOURCE) == OB_STDBY_NoRST) || ((SOURCE) == OB_STDBY_RST))
  12. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(300): warning:  #47-D: incompatible redefinition of macro "IS_OB_SRAM_PARITY" (declared at line 84 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h")
  13.   #define IS_OB_SRAM_PARITY(PARITY) (((PARITY) == OB_SRAM_PARITY_SET) || ((PARITY) == OB_SRAM_PARITY_RESET))
  14. ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_flash.h(405): error:  #147-D: declaration is incompatible with "HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t)" (declared at line 352 of "../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h")
  15.   FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout);
(#) icserny válasza kiborg hozzászólására (») Okt 7, 2016 /
 
1. Az előző beírásomban ajánlott bootloadert az STMFlashLoader letöltő program segítségével lehet letölteni (kell hozzá egy USB-UART átalakító), a gyárilag beépített UART bootloader felhasználásával. Ugyanezt az utat kell járni az ST-Link firmware letöltésnél is, ha az egyik modult ST-Link programozóként akarod használni. Én nem ezt az utat jártam, mert volt kéznél egy ST-Link programozó is.

2. A Keil-t és az Atollic-ot is érdemes megnézni. Előbbi az univerzálisabb, de korlátos...

Idézet:
„Olvasgatom, hogy RX-TX lábon keresztül is lehet programozni. Ehhez is kell bootloader vagy megy nélküle is?”

3. A legtöbb ARM Cortex-M mikrovezérlő gyárilag tartalmaz bootloadert. Ha jól tudom, az általad beszerzett típus csak az UART módú betöltést támogatja. Arduino IDE-hez kényelmesebb a Maple mini USB-s bootloader használata (amit ajánlottam előző beírásomban), de ez a felhasználói területen van, így könnyen felülíródik, ha nem vigyáz rá az ember. A gyári bootloader ebből a szempontból stabilabb, az külön, védett területen van.

Idézet:
„ha egyik vezérlőt "beáldozom" programozónak, akkor ő csak USB-soros átalakítóként viselkedik?”

4. Nem, ugyanolyan ST-Link programozó és hibavadász lesz belőle, mint amilyen például az STM32F0 Discovery kártya ráépített programozója.

Idézet:
„Mi az az SWD only?”

5. Csak az STM32 programozható vele SWD módban (pont úgy, mint az STM32F0 Discovery kártya ráépített programozója). A 8 bites STM8 nem programozható vele (kellene még néhány ellenállás és összekötés, akkor menne az is).
A hozzászólás módosítva: Okt 7, 2016
(#) kapu48 válasza cimopata hozzászólására (») Okt 7, 2016 /
 
Én még nem használtam: STM32F0xx_HAL_Driver-t

De ha már beraktad a projectbe a : stm32f0xx_hal_flash.h-t
Akkor ne akard használni a: stm32f0xx_flash.h-t
Mert ugyanazt csinálják, csak kicsit másképpen, és összevesznek!

Vagy építsd újra a projectet STM32F0xx_HAL_Driver nélkül.
(#) cimopata válasza kapu48 hozzászólására (») Okt 7, 2016 /
 
Megcsináltam HAL nélkül, ugyan úgy nem fogadja be a kódot. Amikor lement hiba nélkül akkor pedig ugyan úgy olvasható maradt.
A hozzászólás módosítva: Okt 7, 2016
(#) cimopata válasza kapu48 hozzászólására (») Okt 7, 2016 /
 
Pointeresen hogy nézne ki a kód ha a 0x1FFF F800 címre kellene írnom az adatot?
Pointerhez egyáltalán nem értek.
(#) cimopata hozzászólása Okt 7, 2016 /
 
Van ez a sor ezt hogy kellene használni?

  1. FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data);


Akár hogy írom bele a címet meg az adatot nem fogadja el. Egyszerűen az interneten annyira nincsen semmilyen példa angolul semmilyen nyelven. Mindenhol csak a könyvtár. Egyszerűen nincs kitől segítséget kérjek.
(#) cimopata hozzászólása Okt 7, 2016 /
 
njhhhh

b.jpg
    
(#) icserny válasza cimopata hozzászólására (») Okt 8, 2016 /
 
Megpróbálhatod így is, implicit mutatóval:
  1. #define AKARMI  (*((volatile unsigned int*)0x1FFF F800))
  2.  
  3. AKARMI = adat;    //vagy amit akarsz
(#) cimopata válasza icserny hozzászólására (») Okt 8, 2016 /
 
Ilyen formában próbáltam én is és a 3. sorra hibát ír. Azt írja hogy:

error: expected identifier or '('
error expected ')'
error expected ')'
(#) cimopata hozzászólása Okt 8, 2016 /
 
Aki ír nekem egy működő read protection kódot annak felajánlok 5eFt-ot.
A hozzászólás módosítva: Okt 8, 2016
(#) kapu48 válasza cimopata hozzászólására (») Okt 8, 2016 /
 
There is a good example within Keil, and probably IAR too
C:\Keil\ARM\Examples\ST\STM32F10xFWLib\Examples\FLASH\Program\main.c
  1. FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPRTERR);
  2.  
  3.     FLASHStatus = FLASH_ErasePage(0x08002000);
  4.  
  5.    FLASHStatus = FLASH_ProgramWord(0x08002000, 0x12345678);
  6.  
  7.  
  8. Reading is just like any other memory, set a pointer to it and read, nothing magic.
  9.  
  10. u32 *mem = (u32 *)0x08002000;
  11.  
  12. printf("%08X\n", *mem);
(#) kapu48 hozzászólása Okt 10, 2016 /
 
Ma még csak adatlapokat bújtam!

De nem sikerült rájönnöm mi a különbség az: STM32F103x6 vagy STM32F103x8 között?
Esetleg tudja valaki a választ?
(#) vzoole válasza kapu48 hozzászólására (») Okt 10, 2016 / 1
 
FLASH és RAM méret. És még néhány periféria mennyiség.
ST MCU
(#) icserny válasza kapu48 hozzászólására (») Okt 10, 2016 /
 
STM32F103x6 és STM32F103x4 szerényebb kiépítésű, mint az STM32F103x8.
Kevesebb Flash, kevesebb RAM, kevesebb timer, kevesebb UART, kevesebb SPI...

Adatlapok: stm32f103c6.pdf, stm32f103cb.pdf
(#) kapu48 hozzászólása Okt 11, 2016 / 1
 
Hosszas keresgélés után, rájöttem a Flash Read Protection Setup, hogyanjára!!!

Programozás után beállítod a ST-LINK Utility-ben:
Target > Option Bites > Read Out Protection = Enable > Flash swctors protection: pipák Select all > APPLY !!!

Utána olvashatatlan lesz a Flash!

Következő programozásnál rákérdez, hogy törölje a Flasht és újra írja?
De ha nincs meg az eredeti Hex fájl???
A hozzászólás módosítva: Okt 11, 2016
(#) kapu48 válasza kapu48 hozzászólására (») Okt 11, 2016 /
 
Még kiegészíteném annyival, hogy utána a programozó jumpert lekel húzni, utána resetelni.
(Teszt panelokon szokott ilyen lenni. De csak soros botloadernál van szerepe, ST-LINK-nél nincsen)
(#) kapu48 hozzászólása Okt 15, 2016 /
 
Üdv!

Szerintetek lehet 2 Keilt telepíteni 1 gépre?
Ez OK: MDK515 + Ezt tesztelném: MDK521a?
Vagy az előzőt előbb lekel szedni?

Köszi!
(#) cimopata hozzászólása Okt 19, 2016 /
 
Találkozott e már valamelyikőtök olyannal, hogy valamelyik port nem működött?

Tegnap felprogramoztam kb 80db STM32F030-ast és 2db nál ugyan az a port egyszerűen nem működött.
Az egyikben kínából származó IC volt (nem volt eddig velük baj) a másikat a Mouser-től vettem.

Nem tudom szimpla véletlennek betudni a dolgot mert mind a 2 panelen furcsa mód ugyan az a port nem működik. A többi 78 jól megy. Még azt sem mondhatnám hogy a rákapcsolt áramkört tehetett benne valami kárt mert csak egy 7 szegmenses kijelző egyik szegmense van rákötve.

Járt már valaki így?

Hasonló helyzet volt az egyik ADC bemenettel is. Egyszerűen nem működött összekötöttem a szomszédos lábra a jelet ott már vette a mintát.
(#) Topi válasza cimopata hozzászólására (») Okt 19, 2016 /
 
Elsőre a helyes / helytelen tárolás és az ültetés módját mondanám komoly meghatározó dolognak.

1. Már volt példa nálunk arra, hogy páratartalomra érzékeny IC-t kinyitottunk, elhúzodott a gépi ültetés (fejhiba, pár nap pihi), ezt követően folytattuk és a nyitva maradt csomagolásban az IC időközben magába szívta a párát, majd vélhetően amikor ültetés után áttoltuk a reflow-n, akkor a pára - víz tágulása szétrepesztette belül az IC-t. Zselés LED-del is volt már ilyen. A leállás előtti panelek működtek, a leállás utániakban az IC-t cserélni, rework-ölni kellett...
Tehát első gyanú: Helytelen tárolás, helytelen hőprofil és belső "repedés"

2. Az STM32-d valójában koppincs GD32 (bár ahogy tudom nekik még nincs F0-juk), ráadásul az eddigi felbukkanások azt mutatják, hogy a GD32 nem rosszabb, hanem kifejezetten jobb is mint az ST az F1-es kategóriában.

3. Szegmens "túláram" kinyírta a pint.

Az a baj, hogy a leírásod alapján ez mindenképp belső sérülés (gyanúsan ültetéskori). Amennyiben code verify-t és flash ellenőrzést csináltál.
Kis sztoriként az ATmega128-ban például a helytelen tárolás / túlhevítés a PORTG 2-t nyírja ki kb. mindig
(#) cimopata válasza Topi hozzászólására (») Okt 19, 2016 /
 
Nem hinném hogy túlhevült volna mivel nem reflow a forrasztás hanem sima pákás. A tárolás tudom hogy nem megfelelő. Statikus töltésre gondoltam de hogy ugyan azt a lábat tegye tönkre azt kizártnak tartom.

A szegmens áram nem túl magas csupán 15mA.
(#) Topi válasza cimopata hozzászólására (») Okt 20, 2016 /
 
Igen, az ESD problémát azért nem is írtam, mert nagyon-nagyon kicsi az esélye, hogy ugyan azt a lábat üsse ki.
(#) vzoole válasza cimopata hozzászólására (») Okt 20, 2016 /
 
Melyik lábról van szó?
Mert van olyan I/O ami csak 3mA-t bír.
(#) cimopata válasza vzoole hozzászólására (») Okt 20, 2016 /
 
PA9 lábról van szó.
(#) Topi válasza cimopata hozzászólására (») Okt 21, 2016 /
 
Nem megfelelő boot mode select bekötés? PA9 és PA10 bootloader USART lábak.
Egy extrém szcenárió, de induláskor tranziens állapotban belép bootloaderbe, ahonnan végül kilép de úgy, hogy a periféria USART-ra konfigolva marad, majd a user kódban nem inicializálod megfelelően a PA9-et, ami így AFIO-ként ketyeg tovább. Ha ez sem, akkor a patás ördög
(#) cimopata hozzászólása Nov 3, 2016 /
 
Tudja valaki esetleg, hogy az STM32 ADC bemenetén a gyakorlatban ha pl a leggyorsabb 1us a mintavételi idő és a bemenetén van elegendő kondi pl 100nF hogy stabil maradjon a mintavételnél akkor mennyi szokott lenni vett minta ingadozása bitekben?
A hozzászólás módosítva: Nov 3, 2016
Következő: »»   76 / 177
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