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   144 / 840
(#) zaik válasza janyjozsef hozzászólására (») Aug 23, 2009 /
 
üdv,
tmet érdemes néha böngészni.
Illetve az ilyen topikokat.
üdv.
(#) zolee1209 válasza mammut hozzászólására (») Aug 23, 2009 /
 
Idézet:
„Érdekes, hogy az Atmel.com-on sincs semmi érdemi dolog, hogy lehetne-e rendelni vagy valami, csak vakítanak, meg vetítenek az új dolgokról, velünk meg az amatőr kisebbséggel nem is foglalkoznak, hogy hozzájuthassunk egy-két eszközükhöz!”

Szerintem az ilyen fejlesztőcégek nem is arra törekednek, hogy az "amatőr" rendeljen tőlük egy- két darabot. Aki pedig nagyban tervez, valószínűleg van lehetősége arra, hogy nagy tételben, olcsón jusson hozzá a procikhoz, lehet, épp' közvetlenül a gyártótól! Én ezen nem csodálkozom, érthető helyzetnek látom...
(#) Barbár válasza mammut hozzászólására (») Aug 23, 2009 /
 
Egyetértek,

illetve annyit helyesbítenék, hogy mi (az amatőrök) sztem nem a kissebbség vagyunk hanem a többség, bár tény h mi nem 10 000 -res tételben vásároljuk, de sok kicsi sokat ér nem?
(#) zolee1209 válasza Barbár hozzászólására (») Aug 24, 2009 /
 
Felhasználói számban minden bizonnyal mi vagyunk többségben. Viszont processzor mennyiséget "fogyasztó" számban szerintem kisebbség...
Idézet:
„bár tény h mi nem 10 000 -res tételben vásároljuk, de sok kicsi sokat ér nem?”

Ez így van! De ki fogja elvállalni, hogy megrendel és kifizet 10000 darabos tételt? Mert a gyártó nem fogja megvárni, mire egyesével beérkezik az "amatőr tízezer..." Részemről ennyi, szerintem érthető a dolog mechanizmusa, ha nekem nem hiszitek el,majd elmondja más!
(#) ATtiny válasza janyjozsef hozzászólására (») Aug 24, 2009 /
 
Természetesen azért kell 2K-s SRAM-os kontroller minimum, ha 1K-s a buffer, mert 0byte üres SRAM marad egy 1K SRAM-al felvértezett kontrollerben, ha az összes 1K-t elhasználjuk buffernek.

Egyébként ez így jön ki:
16oszlop * 8 sor = 16byte 1db bicolor ledmatrixnak a buffer. 64db ilyen mátrxhoz kell 1024byte.
(#) janyjozsef válasza ATtiny hozzászólására (») Aug 24, 2009 /
 
Á!
Így már étrem. A 64db-os szorzó maradt ki.
(#) roleeka hozzászólása Aug 24, 2009 /
 
Sziasztok,

előre is bocsánat ha a kérdés triviálisan egyszerű, de elég kezdő vagyok és elakadtam ezért szeretném kérni a segítségeteket.

Szóval AVR-doper programozóm van amit a he-store-ból rendeltem. az oldalról letöltöttem a ledvillogo.hex filet és be akartam égetni egy Attiny45 (soic8)-as chipbe AVRStudióval.

De valamiért nem tudok szabadulni a hibaüzenetektől.

Csatoltam a képeket,valamiért a signiture byte nál, does not match selected devicet kapok ha readre nyomok.

A chiphez nem használtam foglalatot (nincs soic8-am kéznél) és forrasztottam, lehet hogy elrontottam vele?
(#) roleeka hozzászólása Aug 24, 2009 /
 
A lemaradt csatolmányok ...
(#) levi18 válasza roleeka hozzászólására (») Aug 24, 2009 /
 
Kristályt használtál a programozáskor?
A fuse-biteknél külső kristályra van állítva az órajel.
(#) Topi válasza roleeka hozzászólására (») Aug 24, 2009 /
 
Programozó nem tudja program módba léptetni a processzort, és a képek arról árulkodnak, hogy a processzor azonosító lenyomat (Signature) olvasása is sikertelen.
Fuse biteknél nincs becsekkelve az SPI, így a már sokszor problémaként jelentkező órajel a gond, a csatlakozás nem megfelelő, vagy tápot sem kap a cél processzor.
(#) roleeka válasza Topi hozzászólására (») Aug 24, 2009 /
 
Igazad volt, a csatlakozást átnéztem és rossz volt egy csatlakozó, javítottam így már van signiture.

de az órajel még mindig gond ha le akarom küldeni a programot és az SPI fuse bit bekapcsolása inaktív

mit kell átállítsak a fuse biteket ?

avrerr2.png
    
(#) zolee1209 válasza roleeka hozzászólására (») Aug 24, 2009 /
 
Szia!
Az avr22.jpg képen látszik, hogy külső oszcillátorra volt állítva a proci, de valószínűleg nem volt rajta. Így kizártad magad a prociból. Építsd meg Topi műszívét, amit megtalálsz az oldalon, vagy ha véletlenül nincs hozzá otthon IC-d, akkor szólj és megkeresem neked a tranzisztoros kvarc- oszci rajzát. Nekem ez a műszívem, mert nem volt IC itthon hozzá... :yes:
(#) roleeka válasza zolee1209 hozzászólására (») Aug 24, 2009 /
 
Kösz a tippet.

Most sikerült feltöltenem a programot és megy is.

Bocsánat ha kicsit szájbarágósan kellett elmondanotok még csak most ismerkedem a jószággal

Köszi mindenkinek a segítséget
(#) zsuscsinyo hozzászólása Aug 24, 2009 /
 
Sziasztok!

A következő a problémám, Atmega8-cal és 32.768kHz-es órakvarccal csináltam egy órát, de valamiért siet nem is keveset, átszámítva 76 800 másodperc alatt 41 másodpercet. Több órát is szinkronizáltam és mindíg ez siet. Az előosztó 128-as, így a 8-bites regiszter másodpercenkét csordul túl.

A kérdésem hogy ezt ti hogyan oldanátok meg?

A válaszokat előre is köszönöm!
(#) janyjozsef válasza zsuscsinyo hozzászólására (») Aug 24, 2009 /
 
Nos. A pontos óra frekit igencsak befolyásolja a quartz-on lévő kondik értéke és az ic lábtól való távolság.
C = 12.5pF általában (ha jól emlékszem) 32768/128 = 256
azaz 0.00390625 sec. Ezt kell pontosan osztani tovább. Nézd, meg, hogy a további osztód jó e.

Ja én egy 500HUF-os RTC-használnék, ahhoz elemet is lehet tenni és nem felejtené el az időt. SPI vagy I2C-n kezelhető. És még plusz ram is szokott bennük lenni, ami szintén nem felejt. Így pl ébresztést lehet tárolni ott, vagy amit akarsz.
(#) gtk válasza zsuscsinyo hozzászólására (») Aug 24, 2009 /
 
Kulso kondenzator nem kell orakvarchoz.
Szerintem csak a kvarctol siet vagy kesik, Probald ki masik kvarccal.
(#) zsuscsinyo válasza gtk hozzászólására (») Aug 24, 2009 /
 
Ez már másik kvarc ami benne van, és ez is siet. Ezért is lebeg előttem ez a sok kérdőjel
(#) Topi válasza zsuscsinyo hozzászólására (») Aug 24, 2009 /
 
Műszer? Hogy tényleg 32768 Hz-ről fut-e.
(#) zsuscsinyo válasza Topi hozzászólására (») Aug 24, 2009 /
 
Sajnos a '73-as gyártmáynú Orion szkópom erre már nem alkalmas. Próbálok még pár trükköt hátha sikerül, a baj csak az hogy rengeteg időt felemészt mire látható eltérés van. Esetleg a Soundscope progival megpróbálhatom legfeljebb leosztom a frekit 2-vel.
(#) janyjozsef válasza gtk hozzászólására (») Aug 24, 2009 /
 
Aha. És akkor mitől fog működni, ha nincs kondi?
Csak akkor nem kell, ha az IC tartalmazza.
Ha tévedek javíts ki és indokold.
(#) zsuscsinyo válasza janyjozsef hozzászólására (») Aug 24, 2009 /
 
Nem szükséges kondi, ugyanis direkt erre a kvarcra fejlesztették ki az oszcillátorát. (benne van az adatlapban is)
(#) janyjozsef válasza gtk hozzászólására (») Aug 24, 2009 /
 
Nos gondolkodtam.
Szerintem...

32768/128 = 256 Ez valóban 8 bit túlcsordulása.
Azonban amíg az IT kiszolgálódi, addig a számláló számol és gondolom a végén nullázod, vagy hasonló.
Vagyis mire te számolsz addigra a számlálóban már van érték.

Na lehet nagy hülyeséget mondtam! Remélem érted mit szerettem volna.

És mondjuk ne 128-al, hanem 256, vagy 1024-el oszd
Ekkor az IT végén.

TCNT0 += TIMER0_VALUE;

Nekem ált. így igen pontos időzítések jönnek ki.
(#) janyjozsef válasza zsuscsinyo hozzászólására (») Aug 24, 2009 /
 
Igazad van!
De ezen a bemeneten valószínüleg belül van a 2 kondi, mit a többi IC-ben. Valahol olvastam és ott mutatták a belső felépítését egy ilyen RTC-nek.
(#) BlueFox hozzászólása Aug 24, 2009 /
 
Sziasztok!

Böngésztem a fórumot RS485 ügyben, de nem lett minden teljesen világos.

Kérdéseim:
1. A UC USART lábait kell (AVR) rákötöm egy RS485-ös IC (pl max485) RO és DI lábaira?
2. Ha a Benbus-t szeretném használni, akkor a sima USART-os adatküldéssel / fogadással (ami az AVR-ek adatlapjában le van írva) dolgozok rá a max485-ös IC-re a Benbus elve szerint?
3. Ha nekem nem fontos a CRC, kihagyhatom?

Előre is köszönöm válaszotokat
(#) Cavalier válasza BlueFox hozzászólására (») Aug 25, 2009 /
 
Nem tudom, hogy EZT ismered-e?

Lényeg, hogy az RS485 csak fizikai felület, azon ugyanúgy sorosan kommunikálsz mintha rs232-t használnál, annyi kivétellel, hogy ez alapból half-duplex, és neked kell váltani az irányt is, egy külön procilábbal.
Ha nem kell a CRC, nem bonyolódnék bele a Benbus-ba sem, egyszerűen kinevezel egy mastert, meg több slave-et a vonalon, és a master mondja meg melyik mikor dumálhat vissza. Ha egyáltalán kell kétirányú kommunikáció.
(#) BlueFox válasza Cavalier hozzászólására (») Aug 25, 2009 /
 
Igen, olvastam, de a feltett kérdésekre nem találtam benne a választ.

Ha jól értelmezem, akkor viszont a bekötést jól gondoltam és a kommunikációt is. Tehát simán USART-on kommunikálok a MAX485-ös IC-vel és már működik is.

A half-duplex bőven elegendő nekem, nem érné meg duplex hálózatot kiépítenem. Túl nagy lenne a költsége és kihasználatlan lenne.

Mivel itt az adatveszteség nem életbevágóan nagy probléma, ezért a CRC-t elhagyom akkor.

Amennyiben jól értelmeztem a válaszodat, köszönöm a segítséget, ha még valamit nem jól kérlek javítsatok ki
(#) kocsma válasza kocsma hozzászólására (») Aug 25, 2009 /
 
Mivel senki nem válaszolt a problémámra, így válaszolok magam . A gond az volt, hogy a 128 khz-es órajel mellett már csak párhuzamos programozással lehet programozni az attiny13-at, ISP-vel nem, ha a clkpr nem megfelelő. Mivel az én Doper progizóm csak ISP-t tud, így csináltam egy chan féle párhuzamos programozót, amivel 2 napig szívtam, mert bele keveredett egy 8 voltos stabic az 5 votlosok közé, és persze, hogy azt vettem ki elsőre, és annyira rosszul látszott a szám, hogy 5ösnek láttam. A lényeg, hogy működik, és hasznos kis programozóm lett, mert így a reset lábat is tudom most már progizni. Ja és persze megmentettem az attinyket is.
Chan féle progizók
(#) levy_k válasza kocsma hozzászólására (») Aug 25, 2009 /
 
Anno nekem két ATmega16-ost mentett meg a kukától ue. a programozó.
(#) inci88 hozzászólása Aug 26, 2009 /
 
Ezt a programozót építettem meg, és a csatolt programot szeretném feltölteni az attiny2313-ra, de hibát kapok avrdude-tól:
  1. avrdude: AVR device is not responding.
  2. avrdude: initialization failed, rc=-1
  3.          Double check connections and try again, or use -F to override
  4.          this check.


Mit rontok el? Volna ötletek?
(belső frekit akarok használni, az alap fusebit-eket használnám, átírtam a makefile-t, az elektronika egy isp csatlakozóból uCből, és ledből áll. no meg egy reset láb felhúzó ellenállás ~10k a +V-re)

mod: winavr-el próbálkozom.

main.c
    
(#) zsuscsinyo válasza inci88 hozzászólására (») Aug 27, 2009 /
 
Feltelepítetted a szükséges drivert (\bin\install_giveio.bat)?
Mert az is lehet hogy nem tudja megnyitni az LPT portot, amúgy ajánlom figyelmedbe a bufferelt ISP programozót, amit itt megtalálsz.
Következő: »»   144 / 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