Fórum témák
» Több friss téma |
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
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?
Egyiket ki hagytam erről néztem videókat: Khazama AVR Programmer. Ezt gondoltam a leg egyszerűbbnek. (ez nem olyan dos-os )
Nyilván az egér kattintgatós GUI-s progik
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?
A felhasznált lábak kimenetnek vannak beállítva?
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?
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.
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
Az IRLZ lábkiosztására figyeltél? Nem olyan, mint a rajzodon!
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
Bocsi, a kép lemaradt
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
Itt találsz segítséget: Bővebben: Link
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.
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
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...
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.
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?
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?
Így a dióda nem védi meg a fesz.stab-ot...
Tehát a diódát az elé kell tenni.
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...
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... )
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
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.
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
Szervusztok !
Az előző hozzászólásom problémája időközben megoldódott.
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...
..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
Az első hozzászólásodból kimaradt, hogy platofrmio-t használsz.
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. |
Bejelentkezés
Hirdetés |