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   89 / 176
(#) killbill válasza csatti2 hozzászólására (») Márc 7, 2017 /
 
Idézet:
„Ez a család tantálhoz lett tervezve és instabil egy minimális ESR nélkül.”
Erdekes, amit mondasz. A Texas adatlap ezt irja: A high quality capacitor should be used to assure that the ESR (Effective Series Resistance) is less than 0.5Ω.

En 10µF keramiakkal hasznalom, es teljesen stabilak. Mindig megmerem szkoppal, es soha egy sem gerjedt eddig.
(#) rascal válasza killbill hozzászólására (») Márc 7, 2017 /
 
Én is olvastam egyszer egy adatlapon olyat, hogy legyen valamekkora minimális ESR-je a kondinak, amit az alkatrész mellé kell rakni. (Sajnos nem emlékszem minek az adatlapja volt.)
(#) cimopata válasza killbill hozzászólására (») Márc 7, 2017 /
 
Be fogok rakni azokra a bemenetekre diódákat mindenképp amik nagyobb jelet vagy kívülről jönnek. Ami panelen van poti pl 3db 10k 3.3v ból csinál leosztott feszt annak nem látom értelmét diódázni az proci tövébe úgy is ott van a 100nF kondi a bemeneten ha netán bármi zaj indukálódna a poti és proci közti vezetékben a kondi leszedni.

Holnap majd lövök egy képet a zajról a stabról. Egyébként X7R kondik vannak. 10u/16V
(#) csatti2 válasza killbill hozzászólására (») Márc 7, 2017 /
 
Az adatlapról: A minimum of 10-μF tantalum capacitor is required at the output to improve the transient response and stability. Bővebben: Link
A tantált nem véletlenül írták, hanem mert annak az ESR-je nagyobb mint a kerámiáé.
Itt egy doksi a problémákról ha kerámiát használunk olyan LDO-nál, amit nem arra terveztek: Bővebben: Link
Valahol máshol pedig olvastam (azt hiszem az is TI volt), hogy csak rakjunk simán sorba vele egy pici ellenállást és máris betoltuk a stabil régióba az egészet (ami logikus is).
A hozzászólás módosítva: Márc 7, 2017
(#) killbill válasza csatti2 hozzászólására (») Márc 7, 2017 /
 
Az altalad linkelt adatlap irja is, hogy 0.3 es 22 Ohm kozott kell legyen az ESR. Ami adatlapot en neztem (Texas REG1117), abban annyit irnak osszesen, amennyit bemasoltam. De meg hozzatartozik az elozo postomhoz, hogy en ST LD1117-et hasznalok, es annak az adatlapja mar csak annyit ir: Only a very common 10 μF minimum capacitor is needed for stability. Tantalrol szo sincs, ahogy ESR-rol sem. Szoval a 1117 az egy tág fogalom. Meg a Texas-on belul is.
(#) csatti2 válasza killbill hozzászólására (») Márc 7, 2017 /
 
Nekem LM1117, AMS1117 és APE1117-eseim vannak itthon és mind írja a tantált. Természetesen elképzelhető (sőt szinte biztos), hogy a frissebb fejlesztéseket már felkészítették kerámiára (mondjuk erre figyelmeztethetnének, figyelembe véve a rengeteg tantálos verziót). De maga ez a család (és klónjai) még abban az időben került(ek) forgalomba, amikor ezek a remek olcsó nagy kapacitású kerámiák még nem voltak elérhetőek.
(#) killbill válasza cimopata hozzászólására (») Márc 7, 2017 /
 
Idézet:
„Egyébként X7R kondik vannak. 10u/16V”
Azt erdemes az adott kondi gyartoi adatlapjaban megnezni, hogy ennek a kondinak 3.3V-on mekkora a kapacitasa, mert meglepoen alacsony is tud lenni. De ez elegge gyartofuggo, es a legtobben nem adjak meg.
(#) icserny válasza rolandgw hozzászólására (») Márc 8, 2017 / 1
 
Idézet:
„Nálam a Kinetis linkekhez letiltja a NOD a hozzáférést.”

Az ESET csak azért sipákol, mert a domain név valamikor, valamiért felkerült valahol egy feketelistára. A tartalom statikus weblapokból áll, minimális Javascript kiegészítéssel (szintaxis kiemelés a programlistákban).

Ezeket az anyagokat - hogy ne érje szó a ház elejét - felraktam egy másik helyre is. Remélem, így mindenkinek megfelel. Az anyag még hiányos, fejlesztés alatt...

1. A FRDM-KL25Z kártya programozása mbed környzetben + mintaprogramok + előadás vázlatok

2. A FRDM-KL25Z kártya programozása ARM KEIL MDK5 környezetben + mintaprogramok és előadás vázlatok
(#) rolandgw válasza icserny hozzászólására (») Márc 8, 2017 /
 
Szia!
Eszembe nem jutott szóval illetni a ház elejét , csak jeleztem, illetve a NOD.
Kinetis Studio-val ismerkedem, ezért voltam rá kíváncsi. Köszönöm!
(#) cpt.zoltan.simon hozzászólása Márc 11, 2017 /
 
Hi!

Van valakinek tapasztalata abban, hogy I2C buszon:
1: START. Siker, jön az interrupt.
2: Megy az Slave-Address.
3: Siker, nincs hiba. Betöltöm az Adatot.

- Ekkor megint interrupt van. A TxE (Tx Buffer Empty) flag fent van, de nem értem miért vagyok megszakításban amikor csak az Event-, és az Error Interrupt van engedélyezve. A Buffer történések tiltva vannak, azok nem generálhatnának megszakítást.

Tehát itt ebben a pillanatban a programban az a gond, hogy TxE ugyan 1 (a Tx Buffer üres), de - és itt a lényeg - nem jön fel a BTF (Byte Transfer Finished). Ekkor küldenék egy STOP jelet a buszon, és végeztünk.
Az init kód jónak tűnik, mert ha diret elrontom pl a Slave Address-t rögtön jön az ACK hiba, tehát Slave-em válaszol(gat).
Valakinek valami tapasztalat ezen a környéken? Jah: STM32F429Discovery.
(#) Topi válasza cpt.zoltan.simon hozzászólására (») Márc 12, 2017 /
 
Ha I2C_GetLastEvent(xxx)-el lekéred az event típusát, mibe esett bele?

- I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED
- I2C_EVENT_SLAVE_BYTE_RECEIVED
- I2C_EVENT_SLAVE_STOP_DETECTED
- I2C_EVENT_SLAVE_TRANSMITTER_ADDRESS_MATCHED
- I2C_EVENT_SLAVE_BYTE_TRANSMITTED
- I2C_EVENT_SLAVE_ACK_FAILURE
- Egyéb?
(#) cpt.zoltan.simon válasza Topi hozzászólására (») Márc 12, 2017 /
 
Holnap tudok vele este megint foglalkozni. Akkor leírom pontosan hol van az érdekes rész.
Device Address szépen kimegy (írásnak) aztán amikor küldöm a regiszter címet, azonnal van valami bejövő adatom pedig még nem is csináltam repeated start, Device Address + read -et.

Nem ezt használom amiket fentebb írtál. Bare-Metal-al az egyes Status biteket figyelem egy I2C3-EventInterrupt-ban.
SR1 = 0x01 Start Detecte
SR1 = 0x02 Address sent
SR1 = 0x40 RxNE
SR1 = 0x80 TxE
SR1 = 0x84 TxE + BTF (Byte Transfer Finished)

Ezek köré írtam a megszakítás kezelőt. Ahogy az STM32F429 Reference manualjában az I2C résznél van EV5, EV6, EV8, 8.1 stb.
(#) cimopata hozzászólása Márc 15, 2017 /
 
Üdv.

UART menyire tudna jól dolgozni ha sima belső RC oszcillátorról menne az órajel?

(STMF0 proci továbbra is)
(#) cpt.zoltan.simon válasza cimopata hozzászólására (») Márc 15, 2017 /
 
Minél többet osztasz rajta, annál kevesebb a hiba, arányosan az is kisebb.
Kérdés mire kell, mennyit hibázhatsz. Ha engedélyezed a paritás bitet, már segíthetsz rajta egy csomót.
Én azt csinálnám mérésképpen, hogy XTAL-ról hajtanám a procit, az RC oszcillátort meg MCO kimenetről visszavezetném a prociba és a Capture-Compare modullal mérném a különbséget. Természetesen a CCP modult is hozzá osztani az MCO kimenethez.
(#) Topi válasza cimopata hozzászólására (») Márc 15, 2017 /
 
Ha pár áramkörről van szó (kis mennyiségű gyártás), és főként beltérben használtról (hőstabil környezet), akkor az RC oszcillátort tudod kalibrálni szoftveresen F0-ban is egész finoman.
A hozzászólás módosítva: Márc 15, 2017
(#) csabeszq hozzászólása Márc 17, 2017 /
 
Sziasztok,

STM32F103C8T6 problémám lenne, a specifikáció alapján nem derült ki, hogy az ADC referenciát (Vrefint-et) hogyan kell mintavételezni.

Először 1.5 ADC ciklusonként mintavételeztem (14 MHz ADC clock frekvencia), komplett hülyeséget számolt. 7.5 ADC ciklusnál már ment, most 239.5 ADC ciklussal mintavételezem.

Mi köze a Vrefint-nek a mintavételi frekvenciához? Nem találtam egyértelmű utalást arra, hogy milyen frekvenciával kellene refint-et mintavételezni. A tapasztalat az, hogy az 1.5 ciklus nem megy, a többi hellyel-közzel oké.
(#) csatti2 válasza csabeszq hozzászólására (») Márc 17, 2017 /
 
Parancsolj...

Mivel másra nem használja ezt a belső referenciát (tudtommal), így valószínűleg elég nagy az impedanciája és nem tölti fel megfelelően a mintavételező kondit 1,5 ciklus alatt.
A hozzászólás módosítva: Márc 17, 2017
(#) csabeszq válasza csatti2 hozzászólására (») Márc 17, 2017 /
 
Köszi, így már érthető.
(#) kiborg hozzászólása Márc 19, 2017 /
 
Sziasztok!

Kicsit belemerültem az időzítők világába egy STM32F103C8 kapcsán.
Arra rájöttem, hogy van 4 db időzítőm, TIM1 spéci tudással és TIM2,3,4 általános felhasználású.
Mindegyik 16 bites.
A blokk diagramból látszódik, hogy a TIM1 az APB2-re van kötve, míg a TIM2,3,4 az APB1-ra van kötve. Az APB2 az 72MHz-en ketyeg, míg az APB1 36Mhz-en. Remélem eddig jól követhető vagyok és nem rontottam el sehol? Lásd Clock tree. Ez is azt mutatja, hogy TIM1 72MHz , TIM2,3,4 36 MHz.
Viszont ha nézek egy TIMx characteristics-t, ott egy kalap alá veszi mind a 4-t és max időzítésnek 59,6 sec-t ad meg, ami igaz is 72MHz bemenő esetén, ami TIM1-nek van. De ha jól gondolom, akkor TIM2,3,4 csak 36MHz-n ketyeg, tehát ott 119,2sec a maximális időzíthetőség.
Erősítsetek meg vagy magyarázzátok el, hogy miért nincs igazam.
(csak azért bukott ez most nálam ki,mert TIM2-t szeretném használni 100us időzítésre és nem mindegy, hogy 72MHz-t vagy 36MHz-t veszem alapórajelnek és sajnos nincs kéznél szkóp, hogy tudjak mérni)
A hozzászólás módosítva: Márc 19, 2017
(#) rascal válasza kiborg hozzászólására (») Márc 19, 2017 /
 
Az elméleti kérdésedre nem tudok fejből választ adni, de a gyakorlati kipróbáláshoz egy multiméter frekvencia mérője és egy kis móricka program választ adhat ami figyeli a lefutások számát és alaposan leosztva kapcsolgat egy I/O portot. Ha még jobban leosztod és egy ledet hajtasz meg, akkor egy stopperrel is ellenőrizheted a sebességet.
(#) SBahadurD válasza kiborg hozzászólására (») Márc 19, 2017 /
 
Ha megnézed az órajelfát, akkor láthatod, hogy azon a perifériabuszon a timerek felé van egy szorzó, ami kettővel felszorozza az órajelet, ha az APB osztó értéke több, mint egy.
Így aztán minden timer max órajelfrekvenciája ugyanaz.
(#) kiborg válasza SBahadurD hozzászólására (») Márc 19, 2017 /
 
Lehet, hogy igazad van, de nem látom a szorzót.
Be tudnád karikázni (vagy leírni), hogy hol is van az általam betett órajel fán ez a szorzó?
Nekem elég egyértelműnek tűnik, hogy APB1 Prescaler után Max 36Mhz, míg a APB2 Prescaler után Max 72MHz felirat szerepel.
( a mellékleteim a gyári datasheetből származik)
(#) SBahadurD válasza kiborg hozzászólására (») Márc 19, 2017 /
 
Ott van bekarikázva. Ha látod, ennek a kimenete a timerek felé megy.
(#) rolandgw válasza kiborg hozzászólására (») Márc 19, 2017 /
 
A CubeMX-et miért nem használod? Pontosan látsz mindent.
(#) kiborg válasza SBahadurD hozzászólására (») Márc 19, 2017 /
 
Akkor ugyanannak az analógiájára a TIM1 képes 144MHz-en menni? Mert akkor ott is ott a 2x szorzó ?

(amúgy méricskéltem és tényleg 72MHzen jár a TIM2)

A szorzó működése függ az ABP1 előosztó értékétől.(ABP1 bemenő frekije 72MHz)
Ha ABP1 előosztó értéke 1, akkor 1x szererezi a frekveniát (nem nyúl hozzá).
72MHzx1x1->72MHz
Ha ABP1 előosztó értéke 2,4,8,16, akkor megkétszerezi a frekvenciát, aminek nem látom értelmét,mert ha előosztó értéke 2 és utána meg megkétszerezi, akkor olyan mintha nem csinált volna semmit.
72MHz/2x2 ->72MHz.
Úgyhogy csak oda lyukadtam ki, hogy vagy így van, vagy nem értem.
(bocs ha értetlen vagyok)
(#) rolandgw válasza kiborg hozzászólására (») Márc 19, 2017 / 1
 
ABP1 max 36Mhz. Első adatlap.Ezért kell újra szorozni a timer fele.
(#) SBahadurD válasza kiborg hozzászólására (») Márc 19, 2017 / 1
 
Nem képes 72 MHz felé menni. Ha az osztó több, mint egy, akkor a szorzó sem emeli vissza 72 MHz fölé.
És nem tudom, hogy miért jó a timerek felszorzása, de tegyük föl, hogy ennek van értelme. Az a lényeg, hogy ez csak a timerekre hat, nem a többi perifériára. A többbi perigéria nem a szorzón keresztül kapja az órajelet. Vagyis a timereket visszaszorozza, a többi perifériát nem.
(#) kiborg válasza SBahadurD hozzászólására (») Márc 19, 2017 /
 
OK, kezdem érteni. Segítségeteket köszönöm.
(#) kiborg hozzászólása Márc 26, 2017 /
 
Sziasztok!

Adott egy portláb (B port 9es), amit bemenetnek szeretnék használni.
Így Inicializálom:
  1. GPIO_InitStruccture.GPIO_Pin=button_1;
  2.     GPIO_InitStruccture.GPIO_Mode= GPIO_Mode_IPD;
  3.     GPIO_InitStruccture.GPIO_Speed=GPIO_Speed_50MHz;
  4.     GPIO_Init(GPIOC,&GPIO_InitStruccture);


Így olvasom ki:
user_button_1= GPIO_ReadInputDataBit(butt_port,button_1);

Ha jól gondolom, akkor IPD az jelenti, hogy Internal Pull Down, tehát mindenféle bekötés nélkül 0-t kellene hogy visszaadjon az olvasás. Miért nem? Kipróbáltam IPU-val is, ugyanaz a helyzet.
Ha lehúzom GND-re a portlábat, akkor 0-t olvasok ki. Mi a hibám?
(#) kapu48 válasza kiborg hozzászólására (») Márc 26, 2017 /
 
Az hogy a C portot állítod be:
  1. GPIO_Init(GPIOC,&GPIO_InitStruccture);
Következő: »»   89 / 176
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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