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   585 / 840
(#) TavIR-AVR válasza Koncsar hozzászólására (») Jan 19, 2014 /
 
A blink programot írdd át, ahol a millis helyett Miliseconds() van.
Kész.

U.i.: Az arduinonak nincs FET kimenete.
(#) Koncsar válasza TavIR-AVR hozzászólására (») Jan 19, 2014 /
 
A zárójelbe, mondj egy számot légyszives.
(#) Koncsar válasza TavIR-AVR hozzászólására (») Jan 19, 2014 /
 
Valamelyik PWM kimenetre FETet tettem egy IRLZ44 et. Most már csak megkéne szaggatni 20-25 KHz között.
(#) TavIR-AVR válasza Koncsar hozzászólására (») Jan 19, 2014 /
 
Pi.

A programban:

ujra:
be
vár x usec
ki
vár xmicrosec
ujra

Ha a frekvencia 20 kHz, akkor x mennyi?
(#) dB_Thunder hozzászólása Jan 19, 2014 /
 
Hali mindenki!

Van nekem egy ATtiny45-tel egy elemes táplálású (3V) készülékem, ami jelen pillanatban úgy kapcsolódik be, hogy megnyomok egy nyomógombot amitől egy tranzisztoros kapcsolás öntartásba kerül, és tápot ad az avr-nek. A kikapcsolást avr csinálja időzítve, kikapcsolja az öntartást.
Ezt szeretném "modernizálni", milyen lehetőségek vannak erre?? (sleep mód?)
(#) Bari- válasza TavIR-AVR hozzászólására (») Jan 19, 2014 /
 
Szia!

Sikerült az attiny2313-akat felprogramozni. Igaz csak az STK200-as párhuzamos portos égetővel (az usb-el még küzdők, de egyelőre félretettem). A megoldás az volt, hogy a reset és a VCC közé beraktam egy 10kohmos ellenállást, persze a tápfeszültségre ment a 100nF-os kondi is. Viszont két példány sikeresen tetszhalott lett . Kicsit gyorsabban járt a kezem mint kellett volna és felpogramozása helyett a konfig biteket írattam bele, miután már nem volt elérhető a chip.
  1. avrdude -p attiny2313 -c stk200 -P /dev/parport0 -U lfuse:w:0xff:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m

Avr-ek terén nem vagyok igazán otthon, az adatlapból sem sikerül semmi értelmeset kisilabizálnia, vagy csak nem jól keresem. De akitől az avr-eket meg a beleírandó progit kaptam, azt mondja külső kvarcra állítja be a belső oszci helyett így a konfig bitek írása után ezért nem érem el. A két tetszhalott chipet van esély életre kelteni, hogy a megfelelő kristályt és a hozzá való kondenzátorokat a helyére bekötöm?
Bari
(#) Topi válasza poznamokus hozzászólására (») Jan 19, 2014 /
 
Először is, próbáld ki terheletlenül a kimeneteket mérni. Ha úgy sincs jelszint, akkor kisebb az esélye, hogy 10uH a gond.
Próbáld meg, egy működő prociból vagy függvénygenerátorból származó órajellel közvetlen megtáplálni az XTAL input-ot. Ezzel kizárhatod az órajel problémát.

Minden próbát, egyszerű üres IO vagy LED ki-be kapcsolással teszteld. Utána jelentkezz az eredményekkel, és ha még mindig kérdéses, akkor boncoljuk tovább
(#) tecsa hozzászólása Jan 19, 2014 /
 
Sziasztok!

Nekem is van egy USBASP programozóm, azzal tudok debugolni? Vagy inkább nem is érdemes szenvedni vele? Egyenlőre még driverem sincs hozzá.
(#) zombee válasza tecsa hozzászólására (») Jan 19, 2014 /
 
Hány programozót nyúztál már el?

Az USBASP biztosan nem jó debuggolásra, arra minimum egy JTAG ICE kell.
(#) tecsa válasza zombee hozzászólására (») Jan 20, 2014 /
 
A kettő amit tőled vettem teszi szépen a dolgát, az egyik nálam, másik nagybáttyámnál. Az ASP-t nagybáttyám rendelte ebayről amit nem tudott használni, és ezért vett végülis ő is tőled. Szóval kíméletes vagyok velük

Akkor nem fogok debuggolni most az egyszer jól jött volna.
A hozzászólás módosítva: Jan 20, 2014
(#) TavIR-AVR válasza tecsa hozzászólására (») Jan 20, 2014 /
 
USBASP nagyjából semmire nem jó, csak vésztartaléknak. Inkább egy STK500.
Debugra meg:
- AVRDragon,
- JTAGICE,
- JTAGICE MKII.
(#) TavIR-AVR válasza Bari- hozzászólására (») Jan 20, 2014 /
 
Külső órajel (1...10 MHz) az XTAL1 vagy XTAL2 lábra.


Mi mit jelent -> AVR Fuse bit calculator (1. vagy 2. találat a google-ban)
(#) poznamokus hozzászólása Jan 20, 2014 /
 
Sziasztok!
Köszönöm az ötleteket, bocsánat, tegnap vendégek voltak, ma meg munka. Most este kivettem az induktivitást és egy natúr dróttal átkötöttem, és láss csodát, működik a C port (led+ellenállást dugtam az lcd-hez csatlakozó hüvelysorba az lcd helyett. Hát szóval ilyet még nem láttam... Jól működik 20 MHz-ről is. Szóval veszek a héten máshol és mindkét panelban kicserélem.

De mégegyszer mondom, ilyet még nem láttam :O
(#) TavIR-AVR válasza TavIR-AVR hozzászólására (») Jan 20, 2014 /
 
(#) Bari- válasza TavIR-AVR hozzászólására (») Jan 21, 2014 /
 
Szia

Elnézést a késői válaszért. Köszönöm az infót. Amint lesz kis időm eljátszom majd a két tetszhalott példánnyal. Mióta decemberben megszületett Babóca csak ilyenkor éjjel jutok kicsit a géphez.

Bari
(#) csabeszq válasza Bari- hozzászólására (») Jan 21, 2014 /
 
Ismerős a szitu. Én is vettem egy profi gépet, aminek eszméletlen sebessége van, 4 proci, a kedvenc játékaim max felbontás mellett is hasítanak.

A végeredmény az, hogy az idő 99%-ában Miki egeret és Hupikék törpikéket néznek a 4 processzoron, számomra meg megmaradt a magasabb villanyszámla kifizetése.

(#) killbill válasza poznamokus hozzászólására (») Jan 21, 2014 /
 
FUrcsa. Az AVCC-n van kondi a föld fele? Ha Ohm-merovel megmered a kiszedett induktivitast, mennyit mutat?
(#) Topi válasza poznamokus hozzászólására (») Jan 22, 2014 /
 
Túl nagy lehet az ellenállása az induktivitásodnak, és a PI szűrő proci felőli puffer kondenzátora túl alacsony kapacitású (azaz a kör nem bírta az impulzus áramokat)
(#) Topi hozzászólása Jan 22, 2014 /
 
Kedves Fórumtársak!

Most kivételesen én kérdeznék egy fogósat.
Sokadjára találkozom azzal a jelenséggel, hogy FT232-es alapú eszköz adott számítógépeken furcsán működnek.
Adott egy hardver, amin FT232RL típusú illesztő van. De nem csak az a hardver, bármelyik FT232 alapú eszközt csatlakoztathatok a számítógéphez, ugyan ez a jelenség.

Windows 7 - 64bit minden vizsgált számítógép. Amikor küldök egy bájtot számítógépről, akkor az FT232 kimenetén összesen egy start-bit jön ki, utána vissza megy magas logikai szintre.
Ha TTL soros jelet vezetek be az FT232-be ami amúgy óramű pontos, akkor is a PC-n 0 bájtok jönnek.
Ugyan ez a hardver egy másik Windows 7 - 64 biten tökéletesen működik. Közös ismertető jele, hogy az ilyen 0-át küldő és 0-át fogadó hardverek mindegyike működik XP-n.
AVR fogadja a jelet, és az is küldi ki. Hiba nincs az AVR oldalon természetesen, és az FT232 RXD-TXD lábait közvetlen összekötve sem megy az echo amikor ilyen hiba lép fel.

Az FT232 gyártási kódja 1029-B, azaz 2010. 29. hét Revision B.
Több ilyen áramköröm van, amin (mivel nagytételben vásárolt FT-kről van szó) ugyan ez a széria szám. De vannak olyanok amik működnek és vannak olyanok amik nem.

Megfigyelésem tehát:
- Legfrissebb driver sem megoldás. Ugyan azon gép, ugyan azon win konfig esetén előfordult hogy 2008-as driverrel működik, legfrissebbel nem.
- Az is előfordul, hogy csak a legfrissebbel működik, régivel nem.
- A mostani próba alany számítógépen semmilyen FT driverrel nem működik a kommunikáció, mindig 0-ák érkeznek.
- Arra gyanakszom, hogy mivel egyes gépeken driver downgrade-el a problémák megoldódtak, így driver gond lesz. Ezt az támasztja alá, hogy mindegy milyen hardverről van szó, linux alatt tökéletesen működik. Legyen szó Win-en rossz, vagy Win-en jó típusról.

FT bekötése: Belső RC-ről, USB táplálással, Megfelelő szűrésekkel (kristály tiszta tápok), Handshake lábak szabadon (csak TXD-RXD használva). Handshake-et én kizártam, ugyanis oda-vissza mennek az adatok csak mindig 0.

Találkozott már ilyennel valaki?

Szerk: Nem friss tapasztalat, évekkel ezelőtt is előfordult már. Csak volt hogy driver cserével elhárult a probléma. Azért jött most elő újra, mert most felbosszantott
A hozzászólás módosítva: Jan 22, 2014
(#) TavIR-AVR válasza Topi hozzászólására (») Jan 23, 2014 /
 
Gratulálok. Te is beletenyereltél a hamisított FT232RL chipbe.


Egy nyomozás története, ahol egy Arduino nano volt az áldozat (ATMega328+FT232RL).
http://tavir.hu/cikk-hamis-a-baba


Röviden: Adott az FTDI FT232RL chip lábkiosztása és ára: 2...4$. Jött egy chipgyártó, aki alternatívát ad: chip ára 0.5...1$ körül, azonos a lábkiosztás, és "véletlen" a driver sem kell hogy eltérő legyen. Igaz eredetileg az USB chipazonosításra szolgáló VID/PID páros is különböző volt.
Aztán jött aki meglátta a lehetőséget: Az 1$-os chipen cseréljük le a feliratot a 4$-éra. És a VID/PID azonosítóval is hasalja be, hogy ő biza 4$-os.
Minden ment is szépen, amíg csak 32bites rendszerrel tesztelsz. Amint 64bites a rendszer, a fenti hiba következik be - majdnem függetlenül a driververziótól (ha jól emlékszem a ....24-ig ment a x64-esen is, amíg nem frissített a netről újabbra. Ott valamit az újabb átír, így a downgrade sem jó már utána.
Az FTDI a driverébe tette a védelmet. Ha a PL2313 chipet látja, a kimeneten csak egy logikai ugrás van....


Valamint az FT232RL esetén érzékeny az USB oldali tápzavarra. Sokan eltervezik:
- kimarad a sorosferritgyöngy/szűrő,
- hiányzik az USB D+/D- ágból a soros ellenállás.
A bizonytalanság driverfüggő is. Az USB3.0 portban az eszköz mintha érzékenyeebb lenne, mintha a 2.0-ba dugom be. Megoldás lehet hogy a chip átállításra kerül USB1.1 kompatibilisre.

A megoldás?
1, ha a PL2313 hamis szitás chiped van: chipcsere.
2, ha a tervezési hibád van, akkor USB1.1, vagy az USB kábel is cserélendő (vastagabb vezetékek, ferritgyűrű, rövidebb kábel.
(#) zombee válasza TavIR-AVR hozzászólására (») Jan 23, 2014 /
 
+1 ok hogy a munkahelyi tesztáramköröket inkább soros portra tervezzem. Aztán ha elfogynak
a portok akkor valami márkás USB-RS232 kábelt teszek bele. Azt lehet cserélni, az IC-t nehezebb...
(#) TavIR-AVR válasza zombee hozzászólására (») Jan 23, 2014 /
 
Ha hivatalos disztributori helyről szerzi be az ember a chipet - nem fut bele ilyenbe...
(#) csabeszq válasza zombee hozzászólására (») Jan 23, 2014 /
 
Miben jobb az FTDI egy tetszőleges USB-s mikrokontrollernél?
(#) zombee válasza csabeszq hozzászólására (») Jan 23, 2014 /
 
amiben jobb: nem kell a szoftverben vesződni az USB kezelése miatt, elég a soros portot figyelni.
amiben rosszabb: korlátozott a felhasználás(csak egyfajta BAUD rate lehet, nincs "natív USB)"
na meg persze több alkatrész a panelen...
(#) Hp41C válasza zombee hozzászólására (») Jan 24, 2014 /
 
Idézet:
„Amiben jobb: nem kell a szoftverben vesződni az USB kezelése miatt, elég a soros portot figyelni.”

USB CDC bármely kontrollerre létezik, a PC-s oldalon csak a soros portra kell figyelni. A kontrolleres oldalon a forrás is a fejlesztő kezében van. Gondolok itt arra, hogy hány darab egyforma (egyező VID és PID) illesztőt tud egyidőben kezelni a PC. A forrás birtokában az esetleges eltérések (USB3, stb) kezelése is kézben tartható.
Idézet:
„Amiben rosszabb: korlátozott a felhasználás(csak egyfajta BAUD rate lehet, nincs "natív USB)" na meg persze több alkatrész a panelen...”

A kontrolleres CDC forrásának birtokában a Baud rate állítás nem lehet gond. Az alkatrészek számával sem állunk rosszul (ugyan PIC, de a 16F1455 quartz és feszültség szabályzó nélkül, egy-két kondenzátorral képes a Full Speed USB-re), sőt soros EEProm sem kell hozzá, a VID, PID és sorozatszám tárolható a program memóriában. Mindez egy 5V -os DIP14 vagy SOIC14 tokban. (510 ill. 420 Forintért (bruttó) azaz 2.2$ ill. 1.88$)
A hozzászólás módosítva: Jan 24, 2014
(#) Sick-Bastard hozzászólása Jan 24, 2014 /
 
Üdv!

Nagy zűrzavarba kerültem 2 AVR fuse bitei beállításai során.
Mindkét vezérlő egy azon típusú: ATtiny2313-20PU.

Próbának előtte megnéztem, hogy a programozóm látja e, minden rendben volt.

Szóval megnéztem ezen az oldalon, hogy mi is a kívánt hex kód. 8MHz+ 14CK+ 4,1ms ; SPIEN ennyi kell.

avrdude -c SAJAT -p t2313 -P COM1 -U lfuse:w:0xEF:m -U hfuse:w:0xDF:m

Sajnos ezután már a programozó nem látta.

Az elsőnél, még véletlenül beraktam a debugWiret is ami ha jól értettem felülírta a RESET láb funkcióját, vagy tévedek?

Másodiknál már jobban figyeltem, az avrdude is visszaigazolta, hogy milyen bitek lettek beállítva.
Sajnos a következő beolvasás ennél sem jött össze.

Nem tudom mi lehet a baj?
Mellékeltem az avrdude cmd paneljét.

SB
(#) zombee válasza Hp41C hozzászólására (») Jan 24, 2014 /
 
Köszönöm a felvilágosítást, de itt egyáltalán nem a CDC-ről van szó. A "tetszőleges USB-s
mikrokontroller" nekem azt jelenti hogy az USB rész hardveresen benne van az uC-ben.
Például egy AT90USB162 egy USB-s mikrokontroller, az ATMega8 már nem.

Az "USB CDC bármely kontrollerre létezik" - ezt úgy hívják hogy szoftveres USB emuláció.
Komoly hátránya hogy a mikrokontroller processzoridejének jelentős részét felemészti,
lassú átvitel, hosszú várakozási idő, korlátozott programozási lehetőség.
A CDC driver kompatíbilitása egyes rendszereknél komoly problémát jelent(pl. Win7).
Lásd: AVR-Doper (CDC) vagy USBASP(HID).

A hardveres USB-vel rendelkező mikrokontrollereknél(pl. AT90USB162, ATMega8U2) az USB-vel
foglalkozó programrész viszonylag nagy(3-4kB), és a programozásnál figyelni kell arra is
hogy az USB-t kezelő taszk bizonyos gyakorisággal meg legyen hívva(lásd: LUFA projekt).

Akár CDC, akár hardveresen emulált az USB, komoly előnyt jelent az "egycsipes" kivitel,
de ma még a legtöbb fejlesztésnél nem ez az egyetlen szempont. Például a gyári AVRISP-mkII
belsejében különálló USB emulátor IC (és egy ATMega128) figyel, a klónokban már
jellemzően egyazon IC látja el a vezérlés és a (hardveres) USB emulációt.
A hozzászólás módosítva: Jan 24, 2014
(#) zombee válasza Sick-Bastard hozzászólására (») Jan 24, 2014 /
 
Nem úgy néz ki hogy megölted volna, nekem erre azt adja az AVR Studio hogy "csak"
külső nagyfrekis(>8MHz) kristályra állítottad át, az SPIEN és DWEN a helyén maradt.
Ha nincs bekötve a kristály akkor nem látja a programozó...
A hozzászólás módosítva: Jan 24, 2014
(#) Sick-Bastard válasza zombee hozzászólására (») Jan 24, 2014 /
 
Van kristály is(8Mhz), 22pF os kondikkal a földre kötve.
VCC és GND között is van egy 10uFos és egy 100nF kondi.
(#) Sick-Bastard válasza Sick-Bastard hozzászólására (») Jan 24, 2014 /
 
Elnézést, én hibáztam.

A 22pFos kondik közé keveredett pár 220nFos, amiket 22pFosnak véltem és az XTAL1/2-re kötöttem.

Most már működik, legalábbis az egyik.
Következő: »»   585 / 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