Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   829 / 840
(#) vladcepes válasza pipi hozzászólására (») Márc 31, 2022 /
 
Köszönöm!
Pontosabban melyik szoftverre gondoltál? ,ha jól látom ott négy van. AVRDUDE ,BASCOM-AVR ,BASCOM-AVR, eXtreme Burner - AVR. Vagy rosszul értelmezem?
(#) vladcepes válasza vladcepes hozzászólására (») Márc 31, 2022 /
 
Egyiket ki hagytam erről néztem videókat: Khazama AVR Programmer. Ezt gondoltam a leg egyszerűbbnek. (ez nem olyan dos-os )
(#) pipi válasza vladcepes hozzászólására (») Márc 31, 2022 /
 
Nyilván az egér kattintgatós GUI-s progik
(#) jan5650 hozzászólása Ápr 11, 2022 /
 
Sziasztok!

LED égőket szeretnék kezelni IRLZ44NPBF MOSFET-el. Régebben már szó volt róla itt, tegnap jutottam el oda, hogy élesben kipróbáljam a próbanyákon. EZ alapján a leírás alapján csináltam. Sajnos a cikkben írt ellenállásaim nem voltak, a GATE-et 7,5Kval húztam le GND-re 10K helyett, az Arduino Mega Digital PWM portja elé (D45) pedig 1K helyett 1,2K-t tettem. Gondoltam ezek megfelelőek.

A programkódot megírtam, semmi extra, a loopban beolvasok egy potméter értékét a FADE változóba, majd azt mapolom 0 és 255 közzé. Ez a rész működik is, Serial porton szépen látni hogy változik a FADE értéke 0 és 255 között a potméter csavarására. Ezt az értéket kiírom analogwrite-al a 45-ös portra ("analogWrite(45,led);").

Valamiért viszont a LED-ek nem aludnak ki. 200-as értéken szépen világítanak, afelett és azalatt pedig villognak/vibrálnak, nem pedig halványodnak. Erre valami tipp?
(#) Kovidivi válasza jan5650 hozzászólására (») Ápr 11, 2022 /
 
A felhasznált lábak kimenetnek vannak beállítva?
(#) jan5650 válasza Kovidivi hozzászólására (») Ápr 11, 2022 /
 
Megmondom őszintén, hogy ezen én is filóztam amikor írtam a kérdést. Sajna most nincs itt a forráskód, arra emlékszem hogy a "pinmode"-okat állítottam, ellenben elképzelhető hogy a 45-ösre nem állítottam be az output-ot, de az is lehet hogy véletlenül input-ra állítottam.

Tehát szerinted azok alapján amit leírtam jónak kellene lennie? Mert akkor tuti hogy az kimenetre állítás maradt el. Az tud ilyet produkálni?
(#) Kovidivi válasza jan5650 hozzászólására (») Ápr 11, 2022 /
 
Az pontisan ezt produkálná. Ha nagyobb teljesítményt vennél le, akkor a FET még forrósodna is, mivel a gate kapacitása egy kb. 100k-on keresztül van csak töltve... Vagyis egy soros 100K, meg a feszültségosztón keresztül.
(#) jan5650 válasza Kovidivi hozzászólására (») Ápr 11, 2022 / 1
 
Most olvasom, hogy az analogwrite() egy speciális parancs, mert teljesen figyelmen kívül hagyja hogy milyen állapotban van a pinmode az adott porton. analogWrite esetében azt átállítja outputra függetlenül attól hogy mit állítottál be előtte.
A hozzászólás módosítva: Ápr 11, 2022
(#) morgo válasza jan5650 hozzászólására (») Ápr 11, 2022 /
 
Az IRLZ lábkiosztására figyeltél? Nem olyan, mint a rajzodon!
(#) jan5650 válasza morgo hozzászólására (») Ápr 11, 2022 /
 
Igen, ezt észrevettem. A GND-t szakítom a FET-el.

A képen látható módon teszem bele. A felső láb megy a D45-re 1,2K-s ellenállással
A középső láb megy tovább a fogyasztó részére (LED)
Az alsó láb pedig a mikrovezérlővel közös GND, amire még lehúzom a felső lábat 7,5K-val
(#) jan5650 válasza jan5650 hozzászólására (») Ápr 11, 2022 /
 
Bocsi, a kép lemaradt
(#) Tambi hozzászólása Ápr 28, 2022 /
 
Kedves Fórumtársak!

Miért vagyok én olyan "aluliskolázott", hogy a biztosítékbiteket megjeleníteni sem tudom, nem hogy beállítani belső oszcillátorosra a 328p-t???

"Mit kellene megnyomni...?"

Köszönöm szépen a segítségeteket!
A hozzászólás módosítva: Ápr 28, 2022
(#) kapu48 válasza Tambi hozzászólására (») Ápr 29, 2022 /
 
Itt találsz segítséget: Bővebben: Link
(#) dokidoki válasza Tambi hozzászólására (») Ápr 29, 2022 /
 
Azért nem jelenik meg a fuse lockbit fül a flash és eeprom mellett mert arduino protokoll szerinti programozó van beállítva. Az a bootloader miatt más elven tölti fel a programot ezért nem engedi elállítani elrontani a fuse beállításokat.
(#) Tambi válasza dokidoki hozzászólására (») Ápr 29, 2022 /
 
Köszönöm szépen! maradt a külső kvarc..., legalább gyors, és stabil.
A hozzászólás módosítva: Ápr 29, 2022
(#) jan5650 hozzászólása Máj 3, 2022 /
 
Sziasztok!

Elképzelhető hogy visszatérő téma már itt, de feszültségméréssel kapcsolatban vannak kérdéseim. Feszültség osztó áramkörrel mérek feszültséget 10-20V között. Idáig minden stimmel. Viszont mivel egyszer fordítva dugtam rá a mérendő tápot az áramkörre szépen végigégettem a NYÁK-ot, így meg kellett oldanom a fordított polarizáció elleni védelmet. Erre diódahidat használok. Ez tökéletesen működik egy dolgot leszámítva: nem lináris a pontatlansága. 18V-nál ha belövöm pontosra, akkor 16V-nál már téved 0,3V-al, 14V-nál már 0,5 V-al, 12V-nál meg már majdnem 1V-al. Ez nyilván a diódák miatt van. Több helyen olvastam, hogy akár el lehet hagyni a diódákat, elég a feszültség osztó is, mert annyira kevés áramerősség folyik át ilyenkor, hogy az Analóg pin belső diódája ezzel simán megbirkózik, és véd a fordított polarizáció ellen is.

Ugyebár említettem, hogy egyszer végigégettem a NYÁK-ot. Ez akkor volt, amikor még a feszültség osztó áramkör GND szála közösítve volt az Arduino GND-jével. Azóta ez a közös GND megszűnt.

1. Kérdés hogy ebben az esetben a fordított polarizációt tényleg túléli-e az Analóg pin?
2. Mivel a mérendő feszültsége egyben betápja is az arduinonak, így okozhat-e gondot, hogy az Analóg bemenetre hamarabb kap pozitív feszültséget mint maga az Arduino? Nyilván itt nagyon-nagyon rövid időről beszélünk...
(#) Kovidivi válasza jan5650 hozzászólására (») Máj 3, 2022 /
 
A tápodra elég lenne egy soros dióda. A dióda utánról táplálod az Arduinot, a dióda előtt (!) pedig van a feszültség osztód, lehetőleg minimum 10k nagyságrendű ellenállásokkal. A fordított polaritású csatlakoztatásnál az Arduini nem fog semmi feszültséget kapni, az analóg bemeneten pedig -0.7V lesz maximum, ami nem károsítja (áram pedig alig folyik a nagy értékű ellenállások miatt). A fesz. mérésed is pontos lesz.
(#) jan5650 válasza Kovidivi hozzászólására (») Máj 3, 2022 /
 
Ezek szerint így kellene megoldanom ahogy a képen is látszik?

És akkor ha a feszmérőt fordítva kötik be akkor is védve van a vezérlő?
Illetve ha a vezérlőre is fordítva dugja rá akkor is?

kapcsolas.jpg
    
(#) lazsi válasza jan5650 hozzászólására (») Máj 3, 2022 /
 
Valami homályos számomra...

"
Ez akkor volt, amikor még a feszültség osztó áramkör GND szála közösítve volt az Arduino GND-jével. Azóta ez a közös GND megszűnt.
"

"
Mivel a mérendő feszültsége egyben betápja is az arduinonak,
"

Ha közös a tápfesz, akkor a föld is közös, nem?
(#) lazsi válasza jan5650 hozzászólására (») Máj 3, 2022 /
 
Így a dióda nem védi meg a fesz.stab-ot...
Tehát a diódát az elé kell tenni.

kapcsolas.jpg
    
(#) jan5650 válasza lazsi hozzászólására (») Máj 3, 2022 /
 
Teljesen jogos hogy homályos, berajzolom neked hogy volt régen. A kék vonal volt még pluszban a nyáklapon.

Gondolom mivel a feszmérést fordítva kötöttem be, így az ardu GND-jére feszültség került, ez okozhatta a GND szál égését.
Ez a kék szál azóta ki lett véve, gondolom felesleges is volt...

kapcsolas.jpg
    
(#) lazsi válasza jan5650 hozzászólására (») Máj 3, 2022 /
 
Ha valóban a rajz szerint volt bekötve, akkor folyamatosan 0-t kellett mérnie, hiszen a bemenet volt a földre kötve.
Feltételezem, hogy a 7.5 kΩ-os ellenállás másik oldalára volt kötve a kék vezeték...

Nem mindegy, hogy hol dugtad fordítva a tápfeszt...
1. Ekkor nagy eséllyel a fesz-stab tönkrement (vagy a vezeték elégése megmentette), és ott volt nagy áram. De ebbe a kék vezeték nem szólt bele.
2-3. Ekkor nagy eséllyel a fesz-stab tönkrement (vagy a vezeték elégése megmentette), és ott volt nagy áram. A kék vezeték okozott zárlatot.
4. A fesz-stab zárlatvédelme korlátozta az áramot, és a kék vezeték megmentette az arduino-t.


Egyébként az ilyen jellegű hibák megelőzése érdekében célszerű (különösen tápfeszültségnél) aszimmetrikus csatlakozókat használni, ahol sem véletlenül, sem szándékosan nem lehet fordítva rádugni. (Sajnos, gyakorlati tapasztalat... )
(#) jan5650 válasza lazsi hozzászólására (») Máj 3, 2022 /
 
A 3-asnál dugtam fordítva, és igazad van, a kék vezeték a 7,5K és a táp között csatlakozik be, én rajzoltam rosszul. ÉS a kék égett meg.

DE akkor ha jól értem ha beteszem a diódát a legelső képen szereplő módon, akkor bár a fesztabot nem védem, de az utána lévő Arduino betáp része, és az Analóg láb védve van? Mert nekem ennyi bőven elég
A hozzászólás módosítva: Máj 3, 2022
(#) alita hozzászólása Máj 8, 2022 /
 
Szervusztok !

Tanácsot kérek MK II égetőm problémájához:Ma jelentkezett először,hogy a piros Led állandóan
világít,és nem is akarja abba hagyni.Van-e megoldás a hiba javítására,vagy irány a kuka?
Továbbá ma váltottam a 7-es verzióra a 4.19-ről.És a Firmware uprgade,az írta ki,hogy on Tool
1.14,és on disk 1.18.Ez azt jelenti,hogy firmwar csere az égetőn?

Köszönöm a tanácsokat.
(#) alita hozzászólása Jún 11, 2022 /
 
Szervusztok!

Az előbbi segítség kérésemet megoldottam úgy,hogy nem kukáztam a programozót,hanem
a AT90USB162-t eltávolítottam és sikerült az újat beépítettem.Valamennyi kivezetését le ellen-
őriztem az eszközkezelőben is megjelenik de AT90USB162DFU néven.Valószínűsítem,hogy a
beültetése sikeres volt.
És most jön a második segítség kérésem hogy tudom szóra bírnom.A firmware beültetés lenne
gondolom a következő lépés,de hiába próbálom nyomni a reset és a HWG gombot előírás szerint
kezelni nem jön a Flip 3.4.7, PC-n fenn van.
No és nem tudom a hex fájlát sem.
Nem vagyok egy számítógép guru,ezért kérem a segítségeteket.

Üdv,és köszönet!Alita
(#) alita hozzászólása Jún 13, 2022 /
 
Szervusztok !

Az előző hozzászólásom problémája időközben megoldódott.
(#) cua hozzászólása Jún 18, 2022 /
 
Hasznal valaki CLion-t avr-gcc-vel?
Szeretnem hozzadni a vprintf full verziot (-Wl,-u,vfprintf -lprintf_flt -lm) de sehogy nem sikerul.
Kenytelen voltam a dtostrf() hasznalni, a mi ugyan teszi a dolgat (es azt hiszem kevesebb memoriat eszik) de igazabol a sprintf() lenne nyero...
(#) cua válasza cua hozzászólására (») Jún 18, 2022 /
 
..kozben kicsit tovabb torpoltem a probleman es rajottem, hogy ezt bizony nem a cmake CMakeListsUser.txt-ben az add_compile_options() vagy add_link_options() fogja megoldani, hanem a platformio config.

Tehat a megoldas a platformio.ini-ben:
[env:ATmega644A]
..
build_flags = -Wl,-u,vfprintf -lprintf_flt -lm
..

Holtig tanul az ember
(#) vargham válasza cua hozzászólására (») Jún 19, 2022 /
 
Az első hozzászólásodból kimaradt, hogy platofrmio-t használsz.
(#) cua válasza vargham hozzászólására (») Jún 19, 2022 /
 
Igen, valoban. Anelkul eleg babras a CLion, legalabbis nekem. Igy nagyon konnyen tudok valtani arduino is pure avrgcc kozott.
Meg assembler-re kellene jo megoldast talalnom (avra-t hasznalok), bar az annyira nem zavaro, ott teljesen jol elvagyok parancssorban. Az egyszeruseg (es fejlesztesi sebessseg) miatt amugy is tobbnyire c-t hasznalok.
Következő: »»   829 / 840
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