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
Hát, itt csatolok egy kódot, ami szoftverből programozza az AVR-t.
Ha megvan a lelkesedés és van fusebit doctorod, amivel korrigálod a szoftverhibákat, akkor rajta. Kezdetben mondjuk csak a signature-t olvasd ki, azzal kisebb valószínűséggel pusztítod szét az IC-t, mintha elsőre fuse-biteket írogatnál SPI-vel. ![]() A hozzászólás módosítva: Szept 30, 2013
Ezt hogyan tölti fel?
adamtui_93: Mindjárt megnézem a kódot.
Ez az Arduino ISP programozójának forrása. A hogyan tölti fel, az egyáltalán nem érdekes, kizárólag ha szeretsz horrorsztorikat olvasni. A lényeg viszont szépen kivehető, hogy mit küldj az SPI-n a fuse bitek megváltoztatásához.
Rendeltem időközben egy másik tiny13-at. De arra gondoltam hogyha figyelem egy másik avr-el a MISO lábát az új tinynek programozás közben és azt az adatot ráküldöm erre csak lassabb akkor elméletileg működni-e kell nem?
SPI-n nincs késleltetés. Az I2C-n tudod lassítani a kommunikációt azzal, hogy az SCK lábat alacsonyban tartod, de SPI-n nem.
SPI alatt a mester (programozó) adja az órajelet. Kiküldi, hogy mit akar, ezzel _egyidőben_ beolvassa a választ. Magyarul a programozó kiküld 4 byte-ot, az utolsó 3 byte-ot pedig egyidőben a küldéssel olvassa.
A hozzászólás módosítva: Okt 1, 2013
Bár számomra továbbra sem tiszta, hogy miért nem avrdude alatt programozod fel -b19200-zal.
Letöltöd az avrdude-t, az avr8-burn-o-mat-ot és az additional options-ök közé beírod a -b19200-at.
Sziasztok. Most kezdenék komolyabban foglalkozni AVR-rekkel és nagy kérdés, hogy vegyek-e Tbird-öt (ezt használjuk egyetemen) vagy elég a Topi féle AVR dopper is. Ahogy eddig néztem Jtag előnye hogy lehet vele debugolni de az ISP-s programozó meg több avr-hez használható. Szerintetek melyiket érné meg jobban? Árban kb ugyan annyira jönnék ki ha magam építem.
Én a Dragont használom a legnagyobb megelégedés mellett. Csak ajánlani tudom.
TBIRD-et en elfelejteném.
Inkább Dragon, mert azon ott az ISP, HVPP/HVSP, JTAG és dW is... És valami egyszerű M128-as panelt mellé... Doper meg felejtős, az emulált USB miatt (+driver+firmware+AVRStudio 6.1 támogatásának korlátai miatt) A Doper és a TBird azért nem egy árkategória.... ![]()
Jó, kicsit túloztam. A doper kijön 2-3000ből +még egy mega128-as panel, ami tudja azt mint a Tbird és máris 8k körül van azért ez is
Ez a Dragon jól néz ki meg minden, csak hát az árát is elkérik elég rendesen ![]() A Doper tényleg ennyire használhatatlan? Elég sokan írták hogy megépítették. A driveres problémák AVRStudio4-nél is vannak? Esetleg egy STK500 vagy a TavIR AVRisp (ez nem ugyan az mint a doper ![]()
STK500 - hardware usb-soros átalakító + egy AVR chip ami _hardware_ alapon kezel mindent.
TavIR AVRisp: A klasszikus AVR910-es hardware programozó. Csak nem RS232 sorosport, hanem FT232 USB-soros átjáróchippel. Ugyanitt van JTAGICE is... Tanulni akarsz? Játszadozni? Suliba kell, csak drága a TBird? Mi a cél pontosan? Dopernél az _emulált_ USB okoz problémát. De semmi jónak nem vagyok elrontója, mindenki a saját kárán tanul (én is így jártam... ![]()
Igazából mind a három a cél egyszerre. Suliba most Tbird-öt használunk de nekem nem tetszik se az ára se maga a kivitele ezekkel a szalagkábeles csatlakozókkal (már meg is van tervezve egy saját próbapanel). De szeretnék komolyabban is foglalkozni vele, nem csak amit vizsgára elvárnak.
Tipp:
TBird-et próbálj meg használtan begyűjteni - hamár a suliban alapelvárás. Sok szívástól véded meg magadat (felesleges körök). És én debugos programozóra a Dragont tippelném - bár amennyi debug kellett az elmúlt 6 év alatt ![]() De az induláskor használt az egyenpanelt, amit mindenki a suliban... (javaslat). Ha kinövöd: 1, sajátot tervezel úgyis 2, TBird-et meg elpasszolod - az ára visszajön.
Sziasztok!
ATmega168-ra kötöttem egy DS18B20-at, és egy kijelzőre szeretném kiírni az értékét. Amit kiír nekem folyamatosan +127.9375 C. Megtudja nekem valaki mondani hogy mit rontottam el?
A hozzászólás módosítva: Okt 5, 2013
Ezzel a kóddal én is próbálkoztam: Bővebben: Link
Aztán sajátba kezdtem: Bővebben: Link Olvasd el azt is amit írtak hozzá. Most már "jól" működik.
Sziasztok!
PT100-at kötnék avr ADC bemenetre egyszerű feszültség osztóval jó vagy keresek más megoldást?
Szia!
Nem lesz ilyen egyszerű. Max csak 1mA folyhat rajta keresztül. Ha 5V a tápod, akkor kb 5,1k ellenállást kell vele sorbakötnöd. 20°C - 107,79 Ohm sorba kötve az 5,1k ellenállással 103,5mV kimenet. 30°C - 111,67 Ohm sorba kötve az 5,1k ellenállással 107,1mV kimenet. Azaz 10°C változásra 3,6mV változásod lesz. Az ADC felbontása 5V referencia esetén kb. 4,9mV. Tehát 14°C változás fog 1 ADC érték változást eredményezni. Megoldás az, hogy ezt a feszültséget felerősíted.
Ez az emulált USB szerintem meg sem született volna soha, ha lenne DIP-es USB-s AVR IC.
Igazából én gondolkozom, hogy érdemes-e PIC-es mikrokontrollert használni USB-re, mert a Microchipnek vannak ilyen IC-i. Ha valakinek van tapasztalata velük, érdekelne.
Én vennék az AVR-hez próbapanelt és raknék rá tüskesort, és akkor az is kiépíthető. Nekem egy elektromérnök azt mondta hogy komoly eszközökben nem célszerű PIC-et használni mert szerinte nem megbízható. Az én iparágamban csak Philips vagy Atmel kontrollerekkel találkoztam. Van olyan gép hogy ha rádugod a pendrive-ot akkor az USB-s AVR újraírja a többit.
Idézet: Nem tudom ezt honnan veszi az a mérnök, mivel az AVR is pont olyan mikrovezérlő, mint a PIC, sőt a PIC-ek még sokkal hamarabb is megjelentek mint az AVR-ek.„...komoly eszközökben nem célszerű PIC-et használni mert szerinte nem megbízható.” Szerintem pedig a PIC-ek jobbak, meg amúgy is eddig több eszközben találkoztam velük, mint AVR-el. A másik előnye a PIC-eknek, hogy sokkal nagyobb a választék a mikrovezérlők terén.
-1
Ez nettó hülyeség. Valószínű hogy az illető AVR-ekhez sem ért. Ha már ipari cucc: 868MHz-es rádió paneleket (is) gyártunk. Az adóban AVR van, a vevőben PIC. Annyi biztos hogy az AVR sleep módban nagyon keveset eszik az elemes adóáramkörben, míg a vevőben lévő PIC állandóan ketyeg, de nem gond mert hálózatról megy...
Egy védődiódás kérdésem lenne.
A P-csatornás MOSFET alapból úgy készül el, hogy D->S a kapcsolható rész, S->D az dióda. (IRF9Z34, Continuous Source-Drain Diode Current -18A) Ha mondjuk 12V-on motort kapcsolgatok (12V -> pfet -> motor -> 0V), akkor kihasználható-e az, hogy úgyis ott van a MOSFET ellentétes irányú diódája, egy kicsit megugrik a feszültség 12.7V-ra, de az mind befolyik a VDD-re. Kell-e védődióda, ha a MOSFET-ben egyébként is benne van? (nem egy kellene, hanem 32, ezért ha lehet kihagynám) A hozzászólás módosítva: Okt 8, 2013
A motorbol a VDD fele hasznalhatod, persze. De az ellen semmi nem ved, amikor a motor minuszba megy el (akár csak egy impulzusnyi idore), azaz a FET-ed drain-jet leviszi minusz akarhany voltra. Ha azt a feszultseget hozzaadaod a VDD-hez, akkor megkapod, hogy mennyi van a D es S kozott. Annak nem kellene atlepni a 60 voltot. Szoval a motorral parhuzamosan egy forditott dioda hasznos lehet.
Kihagyhatod?
De akkor úgy tervezd meg, hogy roncsolás nélkül tudjál Feteket cserélni! Mert az egész áramkört cserélni drága kísérlett lesz! ![]()
A kérdés H bridge-re vonatkozott, csak kissé ügyetlenül tettem fel:
A diódák eleve benne vannak a fet-ekben, akkor a külső dióda (1N4004) mennyi pluszt tesz hozzá az áramkörhöz? A hozzászólás módosítva: Okt 8, 2013
Az 1N4004 pár grammot, de azon kivul semmit, mert aramban kisebb es szerintem lassabb is, mint a FET body diodaja. Szoval, ha ilyen H-Bridge-ed van, akkor szerintem a kulso 1N4004 teljesen felesleges. Olyat mar lattam (digitalis vegfokokban), hogy Schottky dioda volt parhuzamosan a FET-tel, mert eleve kisebb a nyitofeszultsege, es iszonyu gyors, tehat a tuskek ellen megvedi a FET-et.
A hozzászólás módosítva: Okt 8, 2013
Sziasztok!
Adott egy tbird2 (Bővebben: Link) és a hozzá tartozó kiegészítő panel (Bővebben: Link). Szeretnék olyan programot írni C-ben, amely a teljes processzoridő felhasználása nélkül a 4db 7 szegmenses kijelzőkön tart bizonyos értékeket, miközben más feladat is végrehajtódhat. Az A port ilyen formában értelmezi a bináris adatot: XYYYZZZZ, ahol X az engedélyezés, Y a 4 kijelző valamelyikének címe, a Z pedig a tényleges számadat Jelenleg az alábbi kód végzi a dolgát:
A 7 szegmenses kijelzőkön olvasható adat csak alkalmanként szorulna frissítésre, addig pedig folyamatosan meg kell jelenjen. Hogyan tudnám hatékonyabbá tenni a kódot? edit: linkek A hozzászólás módosítva: Okt 8, 2013
Használni kell az időzítő megszakítását. Pl:
A hozzászólás módosítva: Okt 8, 2013
Sziasztok!
Legalább egy napom már ráment az Atmel által publikált TWI driverek működésre bírásával. Lassan kívülről fújom a doksit is és a kódot is. Miért nem működik? Mit nézek el? Adó:
Vevő:
Mit nézek el? kapcsolódó doksik: AVR315: Using the TWI module as I2C master - Atmel Corporation Bővebben: Link AVR311: Using the TWI module as I2C slave - Atmel Corporation Bővebben: Link A hozzászólás módosítva: Okt 9, 2013
|
Bejelentkezés
Hirdetés |