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   149 / 177
(#) kapu48 válasza Pali79 hozzászólására (») Jún 24, 2020 /
 
Nekem is van ilyen kínai ST-linkem több is semmi gondom nincsen vele.
Frissíteni kellet rajta a programot első használatkor.

Most látom ezt írják is:
Idézet:
„3. Support the firmware upgrade automatically, to ensure that the ST company product support. When they leave the firmware has been upgraded to the latest V2. The J17. S4.”
A hozzászólás módosítva: Jún 24, 2020
(#) vargham válasza kapu48 hozzászólására (») Jún 24, 2020 /
 
Idézet:
„Nekem is van ilyen kínai ST-linkem több is semmi gondom nincsen vele.”

Nem értem ezt a hozzászólást. Senki sem mondta, hogy gond lenne vele.
Az általam küldött teszt firmwareből kifelejtettem az SWDIO és az SWCLK lábakat beállítani, mert fel sem merült bennem, hogy nincs lehetősége resetelni. Így csak "connect under reset" módon lehet csatlakozni a cél MCU-hoz. Viszont ebben a klónban nincs reset kimenet. Erre írtam Pali79-nek, hogy milyen módokon tud ismét kapcsolódni a cél MCU-hoz.
(#) kapu48 válasza vargham hozzászólására (») Jún 24, 2020 /
 
A *.bin programodból semmit nem lehet értelmezni!
A legújabb MX-et pedig most telepítem, hogy be tudjam tölteni a tiedet.

Azért írtam mert eddig semmi problémám nem volt, mindegy mire volt állítva.
(#) vargham válasza kapu48 hozzászólására (») Jún 24, 2020 1 /
 
Idézet:
„A *.bin programodból semmit nem lehet értelmezni!”

Nem is kell semmit értelmezned belőle. A kolléga kért egy LED villogtatást.
(#) kapu48 válasza vargham hozzászólására (») Jún 24, 2020 /
 
Ez már túlzás a részedről!
Te teljesen ki akarod sajátítani a fórumot!
Ha más is merészel hozzászólni valamihez, rögtön rendszeresen beszólsz neki!


Én sem neked címeztem a hozzászólásaimat.
A hozzászólás módosítva: Jún 24, 2020
(#) Pali79 válasza kapu48 hozzászólására (») Jún 24, 2020 /
 
Frissítettem, de ettől nem lett jobb. Ugyanúgy nem tud kapcsolódni. Értem nagyjából amit a kolléga írt, resetben kellene tartani a kontrollert amíg kapcsolódik, mert a program nem úgy lett megírva, hogy enélkül tudjon kapcsolatot létesíteni.
Tehát nincs gond a programozóval csak a kontrollerbe jelenleg működő program akadályozza a kapcsolódást.
(#) vargham válasza Pali79 hozzászólására (») Jún 24, 2020 /
 
Idézet:
„Tehát nincs gond a programozóval csak a kontrollerbe jelenleg működő program akadályozza a kapcsolódást.”

Így van. Miben tudok még segíteni? Én is hibásnak érzem magam, hogy nem gondoltam bele, hogy nálad esetleg nincs bekötve a reset.
(#) kapu48 válasza Pali79 hozzászólására (») Jún 24, 2020 /
 
Akkor talán itt a 3. link segítség lesz:
Bővebben: Link
(#) Pali79 válasza vargham hozzászólására (») Jún 25, 2020 /
 
Köszönöm, nagyon rendes tőled, hogy segítesz! A programozón van egy RST feliratú csatlakozó, azzal nem tudom megoldani?
(#) vargham válasza Pali79 hozzászólására (») Jún 25, 2020 /
 
Ezek nem gyári programozó hardverek, hanem illegális klónok. A szoftverük (valószínűleg) eredeti, de lopott.
Ahány kínai gyártó, annyiféle módon gyártja le a hardvert. Amikkel én eddig találkoztam, az RST kimenet az nem az ARM targethez tartozott, hanem az STM8-hoz, tehát nem jó neked. Ezért írtam, hogy: "Szétszeded a programozódat, és ráforrsztasz a benne lévő STM32F103 MCU PB0 lábára egy vezetéket."
(#) Pali79 válasza vargham hozzászólására (») Jún 26, 2020 /
 
Rendben. A vezeték másik felét a programozandó kontrollernél hova kell kössem?
(#) benjami válasza Pali79 hozzászólására (») Jún 26, 2020 / 2
 
Valószínűnek tartom, hogy te sem fogod sosem használni stm8-hoz ezt a programozót. Érdemes elvágni az eredeti RST és SWIM fóliát (most nem tudom, hogy melyik lábakra mennek ezek), aztán átkötni a PB0 illetve a PA10 lábra. Ezután már működni fog a klón programozóban is az RST és SWIM elnevezéssel az SWO lábra köthető trace support is.
(#) icserny hozzászólása Júl 3, 2020 /
 
Nucleo-F446RE kártyával ismerkedem, ST32CubeIDE környezetben. Debug konfigurálásnál lehet választani ST-Link (ST-Link GDB server) és ST-Link (OpenOCD) között.

Melyik az előnyösebb választás és miért?
(#) cross51 hozzászólása Júl 12, 2020 /
 
Sziasztok,

STM32L451-nél CubeMx-ben a 73. láb VDDUSB néven a datasheetben VDD néven hivatkozik rá viszont a Power distribution blokk diagram alatt megjelölik megint máshol semmi.
Ref manual meg így hivatkozik a VDDUSB-re (129. oldal)
Idézet:
„This section is applicable to STM32L4x2xx and STM32L4x3xx devices only”


Jól gondolom, hogy itt egy Ctlr+C/Ctrl+V hiba történt és az VDDUSB simán csak VDD akart lenni?

Valamint VREF+ ha nincs használva semmi analog és a VREFBUF-se akkor mehet VDD-re?
(#) icserny válasza cross51 hozzászólására (») Júl 12, 2020 /
 
Ez 100 lábú tokozás, ugye?
Az F típusoknál (F411, F446) VCAP_2 láb van abban a pozícióban.
Azt nem tartom valószínűnek, hogy a 73. és a 75. láb is VDD legyen.
(#) Lucifer válasza icserny hozzászólására (») Júl 12, 2020 /
 
Az ST-Link GDB server egy zárt forrású ST által fejlesztett debug megoldás régebben csak ezt támogatta az Atollic. Az openOCD egy nyílt forrású szoftver, régebben revenggel (STlinkV2 support) illetve egyesek ST-től kapott NDA-s doksik alapján (STLinkV3 support) faragták az STM32 supportot bele. Aztán egy ideje az ST saját embereit is ráállította a projektre, igaz nem megy minden egyből upstreambe, ha jól tudom ebből a repoból van a bináris ami az STM32Cube-ban van:
https://github.com/STMicroelectronics/OpenOCD

Kérdésedre explicit választ nem tudok, én ST-Link GDB servert használok.
A hozzászólás módosítva: Júl 12, 2020
(#) icserny válasza Lucifer hozzászólására (») Júl 13, 2020 /
 
Köszönöm a válaszodat. Akkor lehet, hogy nem is kell különbséget várni.
(#) cimopata hozzászólása Aug 5, 2020 /
 
Sziasztok.

Van egy ilyenem: Bővebben: Link

Sajnos elszállt az USB felöli SMT IC. Szerintetek ha teszek bele újat akkor fel tudom valaho programozni az ST_LINK v2 loderrel hogy újból működjön? Csak mert van itthon ilyen F103-as procim.
A hozzászólás módosítva: Aug 5, 2020
(#) vargham válasza cimopata hozzászólására (») Aug 5, 2020 / 1
 
Egyszerűbb megoldás: Vegyél másikat, nem drága. Vagy vegyél hozzá egy külön ST-Linket.
Másik megoldás: Megszerzed hozzá valahonnan a bootlooadert. Ez ott bukik, hogy az STM nem adja ki. Ezt feltöltöd az F103-ra. Ehhez kelleni fog egy programozó hardver, tipikusan egy ST-Link. Ha fent van a bootloader, akkor letöltöd az ST-Link firmware updater V2J32M22 verzióját. Újabb nem jó. Ez felismeri azt, hogy csak bootloder van az MCU-n, és megkérdezi, hogy milyen applikációt szeretnél rá. V2, V2-1, SWD+SWIM, legyen-e virtuális UART vagy USB mass storage. Feltölti, kész.
(#) cimopata válasza vargham hozzászólására (») Aug 5, 2020 /
 
Van másik panelem is, csak kicsit fájó hogy így kuka a panel hiába van hozzá IC-m.

Az lesz veszek majd egy másikat kb 5k.
(#) vargham válasza cimopata hozzászólására (») Aug 5, 2020 /
 
Idézet:
„Van másik panelem is, csak kicsit fájó hogy így kuka a panel hiába van hozzá IC-m.”

Nem kuka. Ha van másik Nucleod, akkor annak az ST-Linkjét rá tudod kötni erre a Nucleora.
(#) benjami válasza cimopata hozzászólására (») Aug 5, 2020 /
 
Itt található egy működő st-link bootloader. Miután kicserélted a panelodon a tönkrement st-link chip-et, egy másik st-link segítségével töltsd bele ezek közül valamelyik bootloadert (ha jól emlékszem én a 2.0 protected verziót próbáltam). Ezután frissítsd fel bármelyik st-link firmware frissítővel a benne levő firmware-t és elvileg működnie kell.
A hozzászólás módosítva: Aug 5, 2020
(#) rascal válasza cimopata hozzászólására (») Aug 5, 2020 /
 
Ilyet is vehetsz, bővebben: Link
(#) cimopata válasza rascal hozzászólására (») Aug 6, 2020 /
 
köszi
(#) cimopata hozzászólása Aug 6, 2020 /
 
Ez az új STM32 CUbeMX egy katasztrófa. Néha jó lenne 1x 1x használni de...
Ronda idétlen bugos elrendezés, és lassú mint a rohadás.

Nem értem miért kellett a régi külsőt lecserélni és elb.. ni ezzel az újjal.
Vélemény nálatok?
(#) cross51 válasza cimopata hozzászólására (») Aug 6, 2020 /
 
Mit értesz új alatt nálam 6.0-van?
Én többnyire csak amiatt tartom, fent mert van hozzá MCU descriptor és a symbol generátorom azzal megy

Szerintem lenne még mit bőven tanulniuk a gyártóknak generator szinten, eddig 3 gyártónak használtam az ilyen olyan generátorait + a uVision-ös configurator, mindben volt kivetni való.
Vagy nem rendezhető, vagy nem tudom kilistázni melyik funkció melyik lábra mappolható vagy ki crashel generálás közben, stb...

Néha azt érzem, altium, visual studio és rendesebben használható (persze ezek is rendetlenkednek) software-ek után, mintha ha a "hardware" le lenne maradva a software-es világtól.
Microsoft-ék újraírták az "egész" .NET-et a gyártóknak meg egy rendes kód generátor nem megy.
(#) szabi95 hozzászólása Aug 9, 2020 /
 
Üdv!
STM32L063C8T6 kontrollerre fejlesztek, és nemrég találtam egy bugot olyan kódban ami jó volt és nem nyúltam hozzá.
Amikor belemegy a "case 2:" utáni végtelen ciklusba, valamiért nem megy bele egyik if-be se, valamiért semelyik gombra se reagál. (a btn változó interruptból kapja a gombok értékeit)
Viszont ha gyorsan egymásután nyomom az entergombot (amivel eljut a "case 2:" -ig) és valamelyik másikat, akkor belemegy az if-be. Akkor is megcsinálja, ha debug módban kézzel átírom a változó értékét.
Van valakinek ötlete hogy mi lehet rossz?
Megnéztem a disassembly-t is, szerintem jónak kellene lennie.
(amúgy STM32 cubeIDE-ben "üres" végtelen ciklus is csak úgy működik ha rakok bele egy inline assembly nop-ot)

Ez egy menü része:

  1. //Backlight////////////////////////////////////////////////////////////
  2. case 7: delete_disp_mat();
  3.             write_text(0, 75, "Backlight:",Pixel_on, size_5x8);
  4.             write_text(0, 62, "intensity:",Pixel_on, size_5x8);
  5.             write_dec_num_int16_t(10, 40, Read_AT25080_EEPROM(EE_PWM_duty_backlight), Pixel_on, size_10x16, ALIGN_LEFT);
  6.             bitek=Read_AT25080_EEPROM(EE_bitek);
  7.             if( bitek & backlight_EN )
  8.             { write_text(6, 20, "Disable", Pixel_on,size_5x8);}
  9.             else{ write_text(6, 20, "Enable", Pixel_on, size_5x8);}
  10.             draw_rectangle_xy_height_width(0, 36,  22, 64, Pixel_on);
  11.             print_disp_mat();
  12.             LL_mDelay(menu_delaytime);
  13.             for(tmp=2;;)
  14.             {
  15.                 while(1)
  16.                {
  17.                    if((btn == jobbgomb) && (tmp<2))
  18.                    {
  19.                       draw_rectangle_xy_height_width(0, tmp*18,  11*tmp, 64, Pixel_off);
  20.                       tmp++;
  21.                       draw_rectangle_xy_height_width(0, tmp*18,  11*tmp, 64, Pixel_on);
  22.                       print_disp_mat();
  23.                       LL_mDelay(menu_delaytime);
  24.                     }   else{}
  25.                     if((btn == balgomb) && (tmp>1))
  26.                     {
  27.                       draw_rectangle_xy_height_width(0, tmp*18, 11*tmp, 64, Pixel_off);
  28.                       tmp--;
  29.                       draw_rectangle_xy_height_width(0, tmp*18, 11*tmp, 64, Pixel_on);
  30.                       print_disp_mat();
  31.                       LL_mDelay(menu_delaytime);
  32.                     }   else{}
  33.                     if(btn == exitgomb)         { break;}       else{}
  34.                     if(btn == entergomb)        { break;}       else{}
  35.                  }
  36.                  if(btn == exitgomb)    {btn=0; break;}//kilépés a backlight beállító almenüből
  37.                  btn=0;
  38.                  LL_mDelay(menu_delaytime);
  39.                  switch(tmp)
  40.                  {
  41.                    case 2:      tmp2=Read_AT25080_EEPROM(EE_PWM_duty_backlight);
  42.                    while(1)
  43.                    {
  44.                       if((btn == jobbgomb) && (tmp2<255))//értéket változtat
  45.                       {
  46.                          fill_rectangle_x1y1_x2y2(10, 40, 43, 56, Pixel_off);
  47.                          tmp2++;
  48.                          write_dec_num_int16_t(10,40,tmp2,Pixel_on, size_10x16, ALIGN_LEFT);
  49.                          print_disp_mat();
  50.                          LL_mDelay(menu_delaytime);
  51.                       } else{}
  52.                       if((btn == balgomb) && (tmp2>1))//értéket változtat
  53.                       {
  54.                          fill_rectangle_x1y1_x2y2(10, 40, 43, 56, Pixel_off);
  55.                          tmp2--;
  56.                          write_dec_num_int16_t(10,40,tmp2,Pixel_on, size_10x16, ALIGN_LEFT);
  57.                          print_disp_mat();
  58.                          LL_mDelay(menu_delaytime);
  59.                       } else{}
  60.                       if(btn == entergomb )//értéket elfogad
  61.                       {
  62.                          if(tmp2 != LL_TIM_OC_GetCompareCH1(TIM21))//ne írjuk fölöslegesen az eepromot
  63.                          {
  64.                             Write_AT25080_EEPROM(EE_PWM_duty_backlight, tmp2);
  65.                             LL_TIM_OC_SetCompareCH1(TIM21,tmp2);
  66.                             LL_mDelay(menu_delaytime);
  67.                          }else{}
  68.                          break;
  69.                       } else{}
  70.                    }
  71.                    break;
  72.                    case 1:
  73.                    if(bitek & backlight_EN)
  74.                    {
  75.                       bitek &= ~backlight_EN;
  76.                       fill_rectangle_xy_height_width(5, 20, 8, 54, Pixel_off);
  77.                       write_text(6, 20, "Enable", Pixel_on,size_5x8);
  78.                       LL_TIM_DisableCounter(TIM21);
  79.                       LL_TIM_CC_DisableChannel(TIM21, LL_TIM_CHANNEL_CH1);
  80.                    }
  81.                    else
  82.                    {
  83.                       bitek |= backlight_EN;
  84.                       fill_rectangle_xy_height_width(5, 20, 8, 54, Pixel_off);
  85.                       write_text(6, 20, "Disable", Pixel_on,size_5x8);
  86.                       LL_TIM_EnableCounter(TIM21);
  87.                       LL_TIM_CC_EnableChannel(TIM21, LL_TIM_CHANNEL_CH1);
  88.                    }
  89.                    if(bitek != Read_AT25080_EEPROM(EE_bitek))   //ne írjuk fölöslegesen az eepromot
  90.                    {Write_AT25080_EEPROM(EE_bitek, bitek);}    
  91.                    else{}
  92.                    print_disp_mat();
  93.                    LL_mDelay(menu_delaytime);
  94.                    btn=0;
  95.                    break;
  96.                 }//switch
  97.             }//for
  98.             break;
A hozzászólás módosítva: Aug 9, 2020
(#) csatti2 válasza szabi95 hozzászólására (») Aug 10, 2020 /
 
Huhh, szuperolvashatatlan ez a kód.
A btn változót gondolom megszakításban is írod. volatile-nak deklaráltad?
(#) szabi95 válasza csatti2 hozzászólására (») Aug 11, 2020 /
 
Sok szenvedés után végre meglett a hiba. Valahol egy global interrupt engedélyezés véletlen a return mögé került. Nem lehet valahogy az STM32CubeIDE-ben beállítani hogy legalább egy warningot dobjon a dead kódra? Kerestem de nem találtam sokat róla. ( CodeBlocksban tudom hogy van ilyen és használtam is anno)
(#) csatti2 válasza szabi95 hozzászólására (») Aug 12, 2020 /
 
Nem tudom, lehet-e ilyesmit. Amikor rájöttem, hogy egy csomó mindent nem tud, amit az Atollic, fogtam és kukáztam az egészet és áttértem VSCode-ra. Az sem tökéletes de a jelenlegi igényeimnek sokkal jobban megfelel.
Következő: »»   149 / 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