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   464 / 840
(#) zombee válasza blackdog hozzászólására (») Aug 4, 2012 /
 
Hello!

ISP6/10 már leírták előttem. Eltérni ettől - szerintem - abszolút nem szívás, ha magadnak készítesz akkor
azt használsz amit akarsz és ehhez senkinek semmi beleszólása nincs. A vezetékhossz az ISP freki
függvénye, pl. 1MHz fölött én még ISP-10-et sem szívesen huzigálnék ki még negyed méterre sem!
Emlékezni rá? Az ISP6/10 is elfelejthető.

Egy 1-soros érintkezősor könnyebben NYÁK-olható, forrasztható, és nem utolsósorban olcsóbb is.
A kisebb áramköreimnél az alábbi kiosztást használom 1-soros érintkezőkkel:
MOSI-MISO-SCK-RESET-VCC-GND

Ha már láttál ATMega16-ot, talán ismerős lesz a cucc mert erre illeszkedik, de más áramkörökhöz is jó lehet.
A programozóra építettem olyan adaptert ami ISP-10 - ről alakítja át 6-os tűsorrá a fent leírt sorrendben.
Ilyen adaptert csak egyszer kell építened, nem nagy cucc, percek alatt megvan...
Ha az adaptered egy kis darab panel(és nem kábel) akkor odáig vezetheted ISP-10-en is.
Csatolok két képet, a Knight Rider vezérlőm "interfésze" látható az ISP átalakítóval...

Munkahelyemen PIC-eket is kell programozni ezerszám, van 10 féle termék, nagy részüknél
1 sorban van az a bizonyos 5 érintkező, de egyik sem illeszkedik a PicKit2-höz, sőt, egymástól is különböznek!
Pedig ipari áramkörökről van szó, mégis a tervező szájíze szerinti átalakító adapter kell az összeshez...
(#) blackdog válasza zombee hozzászólására (») Aug 4, 2012 /
 
Köszönöm!
Igazából én is úgy gondolom, hogy a saját projektem és védelme adja meg, hogy milyen sorrendben kötöm be az ISP-t.
Programozásnál nem kívánok 100 kHz fölé menni. Szükség lesz a legalább 1 méter programozó vezetékre.
(#) sgt válasza blackdog hozzászólására (») Aug 4, 2012 /
 
Zombee jól mondja. Én mondjuk próbálok ragaszkodni a gyári ISP 6-hoz, mert majd a jövőben ismét be fogok ruházni egy AVR ISP mkii-re (ez lesz sorozatban a harmadik, de ezt majd csak akkor veszem elő, ha már más égetővel kipróbáltam ), és ilyenkor jól jön, ha nem kell gondolkozni, hogy hogyan csereberéljem a vezetékeket. Viszont az ISP 6 ellen szól az ár is. Ugyanis a lomexben nem lehet kapni 6-os csatit, a HEstore-ban meg méreg drága. Többi helyet nem ismerem.

A PIC programozók szerencsésekkel abból a szempontból, hogy egysoros csatijuk van, mert sokkal, de sokkal könnyebb bekötni, mert nem kell 6 millió átkötés pluszba, de az, hogy a PICkit-be ez be van építve, attól én a falra mászok.

1 méteres programozó vezetéktől óva intenélek, mert az már elég hosszú, d e ha működik akkor miért ne alapon, csak készülj fel, hogy arra az esetre is hogy ha nem fog.
(#) Mezoas válasza sgt hozzászólására (») Aug 4, 2012 /
 
Ebay
TME

ISP6 aljzatot ilyeket sikerült találni, illetve ajánlott nekem az egyik kedves fórumtárs. Ezek olcsók, az ebay-os ingyen jön.
(#) trudnai válasza blackdog hozzászólására (») Aug 5, 2012 /
 
Most csak ugy sebteben neztem meg, de ime:

MOLEX - 90130-1206 - HEADER, VERTICAL, 2ROW, 6WAY

HARTING - 09 18 506 7803 - SOCKET, IDC, W/O S/RELIEF, 6WAY

UI: Ja amugy a panelon ket db 3-as szimpla tuskesorbol is kirakhatod a csatlakozot ha nagy a szukseg ra, csak ugy szolok...
(#) zombee válasza trudnai hozzászólására (») Aug 5, 2012 /
 
A legtöbb áramkörnél nincs ilyen burkolattal körülvett csati, csak simán a 2x3-at tűsor. Tény hogy az irányra
oda kell figyelni(nem bolondbiztos), de elmonom, ipari rendszereknél ugyanezzel találkozhatsz.
Egyszerűen csak megjelölik hogy melyik az 1-es, összedugáskor arra néz a fül a szalagkábelcsatin.
Sőt, tűűűsor? LUXUS! Csak ott figyel a 2x3 lyuk egy sorban, a tűsort már be se forrasszák!

Egyébként ilyen webáruházakba hiába kerestek, csak drágán fogtok hozzájutni, mert RITKA!
Vagy e-bay-en, vagy olyan kontaktot kell keresni aki rendszeresen hozat be ezt-azt külföldről.
Én is így vettem nemrég 50 darab szalagkábel-csatit, és ha pár darab kell, abban tudok segíteni.
(#) blackdog válasza zombee hozzászólására (») Aug 5, 2012 /
 
Végül 1x6 elrendezést választottam. Így jöttem ki jól a hellyel. És ilyen csatit fogok használáni: Bővebben: Link
2 mm a furattávolság az egyész csati 4,7x14 mm helyet foglal. Ez egész baráti szerintem.
(#) trudnai válasza zombee hozzászólására (») Aug 5, 2012 /
 
Ne nekem irdd

Idézet:
„Egyébként ilyen webáruházakba hiába kerestek, csak drágán fogtok hozzájutni, mert RITKA!
Vagy e-bay-en, vagy olyan kontaktot kell keresni aki rendszeresen hozat be ezt-azt külföldről.”


Azon a ket linken amit betettem 200-300 Ft-os darabarrol beszelnek! Vagy ez draganak szamit odahaza?
(#) trudnai válasza blackdog hozzászólására (») Aug 5, 2012 / 1
 
Nem az a baj, hogy kisebb helyen fer az a csati el amit kineztel, hanem, hogy nem teljesen szabvany a furat tavolsag. Pl. egy elore lyukazott probapanelre nem lehet ezt betenni, illetve a kisebb tavolsagok miatt kisebb vezetek es szigetelo savokat tudsz csak hasznalni, magyaran hobbi celokra nem tul optimalis. Azonkivul ahogy azt mar jeleztek neked ha nem a megszokott csatlakozo kiosztast valasztod, akkor maganyra vagy itelve, semmivel sem leszel kompatibilis, es ha X ev mulva ujra eloveszed a kutyut, akkor emlekezned kell arra, hogy milyen bekotest alkalmaztal.
(#) Hooligan01 válasza trudnai hozzászólására (») Aug 5, 2012 /
 
Mindezt csak megerősíteni tudom!
Mikor annak idején belemerültem a kontrollerek világába, én is használtam mindenféle "kényelmes" isp, jtag kiosztást.
És sajnos igen, amikor manapság előkerül valamiért egy régi áramköröm, megy a fejvakarás, hogy is volt? Nem beszélve az időről, ami eltelik míg fény derül a "kényelmes" kiosztásra, és ismét elkészül hozzá a megfelelő átalakító.
Minél többet foglalkozik ilyesmivel az ember, annál kényelmesebbé válik. A szabványok pedig igen is a kényelmet, kompatibilitást szolgálják!

blackdog - ha gondolod, járd be te is ezt az utat, de a végén ugyan oda érkezel: jó dolog a szabvány
(#) TavIR-AVR válasza Hooligan01 hozzászólására (») Aug 5, 2012 /
 
Csúnya vagyok , saját tapasztalat alapján - meg az első ("jó ez így is") hozzáállásom miatt egy halott Mega128 lett az eredmény. A táp fordítva volt rajta.

Azóta kiírva a falra:
Utólag okosnak lenni ugyanaz, mint előre hülyének.
(#) zombee válasza Hooligan01 hozzászólására (») Aug 5, 2012 /
 
Most aztán összecsapnak a hullámok, felkel a nép, éhínség és kolera sújt mert valaki eltérne a szabványtól.

Pedig csak a méret a lényeg! Ha több száz, netán több ezer darabot épít valaki, akkor jogos hogy valami
olcsóbb és időtakarékosabb megoldáson töri az agyát és mindemellett még van ideje fórumozgatni is.
Nagyobb sorozatoknál minden dokumentálva van, a programozó kiosztásának is nyoma marad.

De ha csak pár darab készül belőle, akkor én is azt mondom hogy maradj csak a szabvány mellett!
Az az X*40 másodperc időmegtakarítás nem fog kárpótolni a később huzavonákért!
Akkor inkább tegyél be átkötéseket vagy drótozd át, ez a kis plusz nem éri meg eltérni a szabványtól.
(#) blackdog válasza zombee hozzászólására (») Aug 5, 2012 /
 
Arra azért nem számítottam, hogy ebből vita lehet.
Nincs szó több 1000 db gyártásáról. Ha szerény számításaim bejönnek akkor 40-50db-ról van szó.
Ami viszont valóban fontos az a méret. Adott, hogy mekkora lehet a panel és ott tartok, hogy minden milliméter számít. Amúgy a dokumentálás alap. Még a legkisebb kapcsolásaim is dokumentálom. Átkötéseknek nem vagyok híve. Csak akkor használom, ha más végképp nincs más megoldás. Meglátom mi lesz.

Annyiban tartottam magam a szabványhoz, hogy: 1:MISO 2:VCC 3:SCK 4:MOSI 5:RST 6:GND
Ezt így egy sorba.
(#) blackdog válasza (Felhasználó 15355) hozzászólására (») Aug 5, 2012 /
 
Idézet:
„céggel történő gyártatásán. Protípust otthon összehozod, ha működik irány a gyár.”


Pontosan ezt fogon tenni. Kétoldalas a panel. Élmény lesz legyártani itthon. Ha a prototípus működik és az eddigi igények megmaradnak akkor mindenképpen az a célom, hogy előre legyártatok X mennyiséget és az én megrendelőm igénye szerint ültetem be az optok és relék számát majd az igényeinek megfelelő szoftvert kap. Vagyis a hardver mindig ua. a szoftver meg mindig az egyedi igényeknek megfelelően.
(#) Mezoas válasza trudnai hozzászólására (») Aug 5, 2012 /
 
Drágának számít-e? Abból már kijön valami szerényebb kontroller, aztán csak egy csatlakozóról beszélünk! Hobbielektronika ez még.
(#) trudnai válasza Mezoas hozzászólására (») Aug 5, 2012 /
 
Na igen, a csatlakozok kutya dragak tudnak lenni! A masik ami draga szokott lenni az a doboz es a csomagolas (ha eladasra szanod ahova kell csomagolas). Akkor olcsok csak ezek, ha 100 ezres vagy millios tetelben rendeled, foleg ha Nagy-Kina teruleten van a gyarad (valahogy a belso adozas stb annyira kedvezo, hogy minden hihetetlenul olcso ott, azert ott gyartanak manapsag mindent)
(#) lalus hozzászólása Aug 5, 2012 /
 
Sziasztok!

Nem vagyok profi az elektronikában -sőt haladónak sem tekintem magam- de lenne pár kérdésem az automata processzoros akksi töltővel kapcsolatbam mert meg szeretném építeni az airsoft akksijaimhoz...

Erre gondolok: Bővebben: Link

Tehát a kérdések:

Az RGB led két anódja elé mekkora ellenállás szükséges, mert azt a kapcsrajzon nem jelölik.. (cd olvasóból kiszedett led)

A másik ami kicsit megzavaró, hogy a próba paneles fényképen 2 darab 102ohm 5W ellenállás szerepel, de a rajzon csak egyet látok.. ez miért is van?

És még egy (lehet, hogy hülye kérdés) az én akksijaim 8,4V-osak (7db 1.2V cella) a leírásba, -idézem- "Töltésnél cellánként legalább 1,41V-nak meg kell lennie" ez szerepel. ennyivel nagyobbnak kell lennie a töltőáramnak, vagy ez más feszültségű cellákra értendő?
Tülajdon képpen ennyi lenne az én problémám, remélem valaki tud és segít is megépíteni ezt a remekművet, mert hasznos lenne számomra...

Esetleg, ha valaki fel tudná nekem programozni az AVR-em valami ellenszolgáltatás vagy pénzösszeg fejében az keressen meg a lalus17@citromail.hu-s e-mail címemen!

Előre is köszönöm a válaszokat, remélem mielőbb segítséget kapok!!

Üdv.: Lalus
(#) lalus válasza lalus hozzászólására (») Aug 5, 2012 /
 
javítanám magam..: DUO LED.. és 120ohm sorry
(#) trudnai válasza lalus hozzászólására (») Aug 6, 2012 /
 
Rakattintasz a kepre akkor kijon nagyobb felbontasban, es azon latszik, hogy 330R (azaz 330 ohm)
(#) Robi98 hozzászólása Aug 6, 2012 /
 
Sziasztok!
A következő kis programot szeretném beégetni egy ATmega8-as mikrovezérlőmbe, ami azt csinálná, hogy ha a PB6-os lábát a földre húzzuk, a PD5-ös lába állapotot vált.
Az eredmény meglepő lett, mert a PB5-ös lábra kötött LED egyfolytában világít. Megtudná mondani valaki, hogy mi lehet a hiba?
  1. include <avr/io.h>
  2.  
  3. int main(void)
  4. {
  5. DDRB&=~(1<<PB6);
  6. DDRD|=(1<<PD5);
  7. PORTB|=(1<<PB6);
  8.  
  9. while(1)
  10. {
  11. while(PINB & ~(PB6))
  12. {
  13. PORTD^=(1<<PD5);
  14. }
  15. }
  16. }

Köszönöm.
(#) sikolymester válasza Robi98 hozzászólására (») Aug 6, 2012 /
 
A whileban egy hiba, így írd:
  1. while(!(PINB & (1 << PB6)))


De még így is rossz.

Ugyanis a programod szerint, hogyha megnyomod a gombot a PB6-os lábon (vagyis földre húzod ugye), akkor elkezdi mint az őrült vátogatni az állapotát a lednek. Ha sötétben nézed, akkor láthatod, hogy ilyenkor elhalványul kicsit a led a váltogatás miatt.

Ha gyors eredményt akarsz, akkor tegyél be egy delay-t a while(!(PINB & (1 << PB6))) loopba.

Helyesen úgy csinálnád, hogy számon tartod a gomb állapotát és csak akkor váltod a ledet, hogyha azt lenyomtad, értsd : valami if -et használnál while helyett.

Utána lesz még egy kis gondot a pergéssel is.
(#) Robi98 válasza sikolymester hozzászólására (») Aug 6, 2012 /
 
Megpróbáltam kiagyalni rá egy jobb módszert, de így sem a tökéletes. Az elején egyszer kétszer jól működött, de most már abszolút nem akar a led világítani. Lehet, hogy hardveresen van a hiba a próbapanel miatt, de nem hinném. Itt a kód:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3.  
  4. int main(void)
  5. {
  6. DDRB&=~(1<<PB6);
  7. DDRD|=(1<<PD5);
  8. PORTB|=(1<<PB6);
  9. uint8_t x=0;//ezzel a változóval fogom léptetni a led állapotjait
  10. while(1)
  11. {
  12. while(!(PINB & (PB6)))
  13. {
  14. DDRB|=(1<<PB6);
  15. _delay_ms(25);
  16. DDRB&=~(1<<PB6);
  17. //a pergés kiszűrése: letiltom a bemenetet, várok, majd újra bekapcsolom
  18. x++;
  19. _delay_ms(500);
  20. _delay_ms(500);
  21. _delay_ms(500);
  22. _delay_ms(500);//ha 2 másodpercnél kevesebb idelyig nyomom a gombot, akkor csak 1-szer növeli a változót
  23. }
  24. if(x==1) PORTD^=(1<<PD5);
  25.  
  26. if(x==2)
  27. {
  28. PORTD^=(1<<PD5);
  29. x=0;// miután megcseréltem az állapotokat, a változót lenullázom
  30. }
  31. }
  32. }
(#) nemesimi hozzászólása Aug 6, 2012 /
 
Sziasztok!

Adott egy atmega8 és USB-s Wavecom WMOD2 GSM modem aminek az RXD és TXD lábát kivezettem a nyákról.
A baj az hogy nem megy a beszélgetés a GSM modem és az AVR között de viszont a
Hyper Terminal <--> soros átalakító <--> GSM modem müködik!
Hyper Terminal <--> soros átalakító <--> AVR müködik!
A beállítások 9600 8N1
Viszont ha párhuzamos figyelem az AVR és GSM bevannak akasztva akkor csak az ATmegával tudok beszélgetni!

Ezek az értékek be vannak állítva a GSM modemben is!
Az RX és TX simán be vannak akasztva AVR-re!
Elviekben müködni kellene de sajnos nem megy!
Csinált már valaki ilyet???
Ha igen kérem segítsen!
Köszi!
Csak az AVR és GSM modem nem kommunikálnak!
(#) zolee1209 válasza nemesimi hozzászólására (») Aug 6, 2012 /
 
Szia!

Az AVR- GSM közötti kommunikációt is terminálon keresztül figyeled, vagy az AVR- nek kellene valamilyen visszajelzéssel szolgálni, ha megfelelő a kommunikáció?
(#) lalus válasza trudnai hozzászólására (») Aug 6, 2012 /
 
Nabasszus, igazad van.... Bocsi a figyelmetlenségért és kössz a választ!!....
(#) nemesimi válasza zolee1209 hozzászólására (») Aug 6, 2012 /
 
Szia!

Terminálon is figyelem és egy ledet kapcsolok ha OK \r\n jön!

De se led, se OK \r\n !!
(#) zolee1209 válasza nemesimi hozzászólására (») Aug 6, 2012 /
 
A terminálon melyik ágat figyeled? A GSM Rx, vagy Tx vonalat?
(#) nemesimi válasza zolee1209 hozzászólására (») Aug 6, 2012 /
 
Hát az RX -et miért kérded??
(#) zombee válasza nemesimi hozzászólására (») Aug 6, 2012 /
 
Mármint a GSM Rx vonalát? Na azt figyelheted, mert ez az a vonal amin az AT parancsokat kapná az AVR-től.
A másikra lenne érdemes ráhallgatni(GSM Tx), azon válaszol vissza.

A feszültségszintekre is ügyelj, mert az adás és vétel a GSM tápfszültségénél alacsonyabb,
legalábbis a Quectel M10 esetében hiába 4.0V a táp ha 3.4V-on kommunikál oda és vissza...
(#) nemesimi válasza zombee hozzászólására (») Aug 6, 2012 /
 
Na akkor!

A kérdés az volt hogy a terminálon melyik vonalat figyelem???

A Terminálon az RX vonalat figyelem nem a GSM RX vonalát, azért annyira nem vagyok kezdő Terminál RX <--> GSM TX és GSM RX <--> Terminál TX!

Ez megy!!!!

De az AVR TX <--> GSM RX és AVR RX <--> GSM TX nem értem hogy miért nem megy!

Végül is ez volt a kérdés!
Következő: »»   464 / 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