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   777 / 837
(#) wbt válasza pont hozzászólására (») Júl 25, 2017 /
 
2 parancsot nem lehet kiadni? Már hogy úgy gondoltam, hogy 1 bit a ki/bekapcs, 4 bit meg az, hogy melyik kimenetet. Ebből a x0000 az alapállapot, tehát úgy nézne ki egy bekapcsolás, hogy:
(ki/be)0000=>(kibe)xxxx(melyiket)=>(Ki/be)0000
(#) pont válasza wbt hozzászólására (») Júl 25, 2017 /
 
Én parancs alatt, egy kimenet átkapcsolását értem, jelen esetben, hogy pl. az 1. redőny le. Tehát ha két helységben egyszerre kellene működtetni valamerre, azt csak időben eltolva lehet, és ez még nem is jelentene problémát, mert gyakorlatilag mindegy, hogy pár ms késés van, de a PLC-ben leprogramozni, nagyon megbonyolítja a dolgot. Nem elég hogy a 9 kimenet kívánt állapotából egy kódot kell generálni, még az egymás után érkező parancsokat sorba kell állítani, hogy ne legyen ütközés. Ráadásul egy 0-32 érték átadásához elhasználna 5 (arany árú )PLC kimenetet, erre vannak okosabb megoldások, SPI 3 kimenet, Számlálós 2, de egy vezetéken is lehet.....
(#) csatti2 válasza pont hozzászólására (») Júl 25, 2017 /
 
Valamire való PLC-n le lehet programozni rengeteg féle interfészt (mondjuk SPI pont nem jellemző, de ethernet, PROFINET, PROFIBUS, MODBUS, stb. már igen). Mondjuk gyanítom, hogyha nem tud hozzáadni további kimeneteket a projektjéhez, akkor vmi primitívebb kompakt PLC-ről lesz szó, amikhez mást már nem lehet csatlakoztatni. Ebben az esetben is megoldható a dolog viszonylag elegánsan.
pl.:
PLC induláskor (újrainduláskor): kiadja az 11111-et, erre a uC törli az összes kimenetet.
Ezután ha a PLC kiadja binárisan a kívánt kimenetet, akkor az a uC bebillenti. Ha még egyszer kiadja, akkor pedig törli. A PLC néhány ms-os ciklusidővel dolgozik (a kimenetek min. kapcsolási idejét viszont ellenőrizni kell!, ez ált. 50ms körül szokott mozogni), ezt a uC-nek bírnia kell.
(#) pont válasza csatti2 hozzászólására (») Júl 26, 2017 /
 
A probléma továbbra is az, hogy a plc által küldött kód (0-31) "bebillenteni" egyszerre csak egy "helyen" tudja a uC-t. Tehát ha pl. Egyszerre keletkezik a PLC-ben két parancs. ami után egyszerre kellene kiküldenie 1-es kód,2-es kód(mit tudom én: két szobában egyszerre nyomják meg a gombot, 1. redőny le-2 redőny le) , akkor az ilyen kommunikáció alapból ezt nem tudja lekezelni, erre kell valami sorba állítót írni a plc programba....

Én sem tudom milyen plc az amihez nem lehet venni bővítőmodult.

Természetesen a Modbus RTU a megoldás, csak aki azt tudja programozni annak az órabéréből kijön egypár bővítőmodul....

A SPI kommunikációnál én nem beépített protokollra gondoltam, hanem azt viszonylag könnyen meg lehet írni. Van egy engedélyező kimenet, egy órajel kimenet, és egy ami a megfelelő órajelhez az adott állapotnak megfelelő magas vagy alacsony szintet adja.

Két kimenettel: egyik nullázza a uC számlálóját, a másik annyi impulzust küld a nullázás után amennyi az átadni kívánt érték.

Egy kimenettel: egy szinkron jel, mondjuk 100ms magas utána az átadni kívánt értékkel arányos idejű ( frekvenciájú, kitöltési tényezőjű, stb kinek mi tetszik, gyakorlatilag analóg) jel, pl. a 300 forintos ultrahangos távolságmérő kommunikál így...
(#) csatti2 válasza pont hozzászólására (») Júl 26, 2017 /
 
Mint írtam, pl. az S7-300-as sorozatnál kb. 50ms a kimenet billentési ideje (valójában jobb, de ezt garantálják), az S7-1500-asoknál még nem néztem meg. Ebből adódóan kitöltési idő, frekvencia, SPI, stb. nem jöhet szóba. Annak az esélye, hogy egyszerre nyomják meg a gombot (50ms-en belül), nem vmi nagy (azért a PLC is alkalmas arra, hogy több feladatot ütemezzen az ember, pl. minap fejeztem be egy projektet, ahol többek között egy KUKA [gyártmányú] robotot vezérlek együtt a technológiai folyamattal egy állapotgép segítségével, ott is minden asszinkron volt).
(#) csabagalcsaba hozzászólása Júl 28, 2017 /
 
Üdv!
Lehetséges AVR-t C++ nyelven programozni, úgy mint egy arduino-t? Mert ugye abban is egy AVR van. Ha igen akkor milyen fejlesztőkörnyezetben, milyen fordítóval? STK200- as programozóval szeretném a programot rátölteni.
Köszönöm!
(#) vargham válasza csabagalcsaba hozzászólására (») Júl 28, 2017 /
 
> Lehetséges AVR-t C++ nyelven programozni
Lehetséges.

> úgy mint egy arduino-t
Pont úgy nem. Az Arduino keretrendszer része a sok-sok definíció és C++ library. Nem lesz se digitalRead, se pinMode, de még HIGH meg LOW sem.

> milyen fejlesztőkörnyezetben
Atmel Studio (free, windows only)

> milyen fordítóval?
AVR GCC

> STK200- as programozóval
A programozó irreleváns. Ha kész a hex, azzal töltöd rá, amivel akarod.
(#) csabagalcsaba válasza vargham hozzászólására (») Júl 29, 2017 /
 
Üdv!
Köszönöm a gyors választ.

>Nem lesz se digitalRead, se pinMode, de még HIGH meg LOW sem.
Ez a legnagyobb problémám a C nyelvvel.

El tudnád magyarázni ezt a shiftelést?
Azt találtam, hogy egy kimenet H szintre állítása: PORTB = (1<<PB1);
L szintre állíthatom úgy, hogy: PORTB = (0<<PB1);
Vagy ez így helytelen?
A jobbra shiftelés mire való?
A hozzászólás módosítva: Júl 29, 2017
(#) vargham válasza csabagalcsaba hozzászólására (») Júl 29, 2017 /
 
>>Nem lesz se digitalRead, se pinMode, de még HIGH meg LOW sem.
>Ez a legnagyobb problémám a C nyelvvel.
Nem értem. Ennek semmi köze a nyelvhez. Ezek függvények, amiket az Arduino könyvtárban deklaráltak és implementáltak. Valahol mélyen ezek is a portokat állítgatják bitenként. Ha érdekel, nézd meg a forrását: digitalWrite

>El tudnád magyarázni ezt a shiftelést?
C shift
AVR port IO
(#) csabagalcsaba válasza vargham hozzászólására (») Júl 29, 2017 /
 
Köszönöm szépen! Így már jobban érthető.
(#) csabagalcsaba hozzászólása Aug 1, 2017 /
 
Üdv!
Attiny45 AVR-t használtam és a stabilizátor ic (78L05) tönkrement. 10V került rá az AVR-re és kibírta. Pedig eléggé melegedett. Az lenne a kérdés, hogy miért bírta ki?
(#) fsub hozzászólása Aug 2, 2017 /
 
Sziasztok!
Meg tudná valaki mondani, hogy az innen letölthető AVR toolchain az csak upgrade lenne? Mert ezeket letöltve és kicsomagolva nem található benne például make parancs, és az AVR Studioban nem tudom beállítani mint fordítót.
(#) kapu48 válasza fsub hozzászólására (») Aug 2, 2017 /
 
Szerintem itt van a legújabb változat:
Bővebben: Link
(#) fsub válasza kapu48 hozzászólására (») Aug 2, 2017 /
 
Köszönöm! Viszont én csak magát a toolchain-t szeretném telepíteni az AVR Studio 4.19 változat alá, mert alapból nem tartalmazza a telepítője azt, új változatát meg nem feltétlen szeretném most telepíteni a Studionak.
Viszont most itt megtaláltam egy régebbi változatát (3.4.1) a toolchain-nek, ami a mérete szerint szerintem a full installer verziója lehet, csak, ha már létezik újabb kiadás belőle, jobb lett volna azt telepíteni.
(#) csabeszq válasza csabagalcsaba hozzászólására (») Aug 4, 2017 /
 
Én fordított tápot nyomtam az Attiny85-re és kibírta, bár büdös volt és forró.

Gyanítom, hogy nagyon erős védelmi áramkörök vannak benne. Sok Atmel IC-vel szórakoztam, idáig egy sem döglött meg. Komolyabban kell küzdened ahhoz, hogy kinyírjad.

1A-es tekercs induktív rúgását is simán kibírta, csak megáll a chip, passziv lesz. Amíg RESET-et nem kap, addig fülét-farkát behúzza, megáll. Láthatóan elég komoly védelme van, pedig több 100-200 induktív rúgást túlélt, mire rájöttem, hogy mi a gond.

Nem kispályás chip-ek, kezdőknek ezért is szoktam fórumon ajánlani.
(#) david10 válasza csabeszq hozzászólására (») Aug 5, 2017 /
 
Nálam az atmel és a microchip, gyártmányú 24C64 fordítva betéve a tokba ha kell 10 percet is kibír, felforrósodik, (amikor hozzáértem holyag lett a kezemre), de amikor megfordítottam ment tovább adatvesztés nélkül.
Az atmega328 is bírta a fordítva betett tokot, felforrósodott, de még ment amiután megfordítottam. A 12V-ot a D3-as lábán nem bírta, a müködtető füst kijött belőle, és a fordított 5V-ot se bírta.
Az Atmel ARM uC-k hogy bírják?
(#) tango51 hozzászólása Aug 7, 2017 /
 
Jo napot. sziasztok. Egy kis segitségre lenne szükségem. Van egy UsbAsp programozom, viszont Update kellene rá. A program meg van, arduino isp panelem is van, de mivel angolul keveset értek, a frissités menetét ha valaki leirná magyarul megköszönném.
(#) csatti2 válasza david10 hozzászólására (») Aug 7, 2017 / 1
 
Gyanítom, hogy sokkal rosszabbul. Eleve alacsonyabb feszültségre tervezték őket, ráadásul a perifériák és maga a mag is sokkal összetettebb, mint egy ATMEGA-nál.
(#) david10 válasza csatti2 hozzászólására (») Aug 7, 2017 /
 
ATSAMD21G18-al tervezek Arduinót építeni, ha a prototípus fog menni, akkor egy telefon alaplap helyére lesz hozzá tervezve egy nyák, és egy 3.5 inch-es LCD-t, 1 IR ledet és egy IR szenzort fog meghajtani.
Remélhetőleg bírni fogja az igyénybevételt.
(#) csatti2 válasza david10 hozzászólására (») Aug 7, 2017 / 1
 
Az jó dolog, de miért akarod Arduino-val kiherélni? Ezek az IC-k már tele vannak olyan funkciókkal, amiket Arduino-val nem lehet rendesen kihasználni.
(#) david10 válasza david10 hozzászólására (») Aug 7, 2017 /
 
Megtetszett a könnyen kezelhető IDE + a bootloader.
Ezt terveztem át 1 oldalasra, a mérete ugyanakkora maradt, mint a sima Arduino-nak, cserébe viszont lekellett mondjak a lábak sorrendjéről: SparkFun SAMD21 Dev Breakout.
Az Arduino IDE-ről előbb vagy utóbb lekell, hogy mondjak, mert azzal biztos, hogy nem lehet azt megoldani, hogy USB portal összekötve a memóriakártyát tudjam FAT32-ként bemountolni. Egyelőre marad a Delphi-s program (lásd a képet, igazi hungarikum), amelyik az USB-s UART-al kezeli a fájlokat, de majd idővel fejlesztem.

Capture.PNG
    
(#) csatti2 válasza david10 hozzászólására (») Aug 7, 2017 / 1
 
Ok a bootloader, de valahogy azt is rá kell töltened. Akkor meg már inkább rendes programozó, amivel debugolni is lehet. A hozzávaló programozó viszont viszonylag drága, ilyen szempontból az STMicro olcsóbb választás ha az anyagi lehetőségek szűkösek (ott is van olyan fejlesztői kártya, amit támogat az Arduino, ha ez olyan nagyon fontos), az IC-ket pedig vmiért sokkal könnyebb (és olcsóbb) beszerezni, mint az Atmeleket (én ezért is álltam inkább át). Viszont kezdünk nagyon off-olni, ez mégiscsak AVR fórum és nem ARM.
(#) david10 válasza csatti2 hozzászólására (») Aug 7, 2017 /
 
Remélem, hogy 1-2 off hozzászólás még belefér...
Az ATSAMD21G18-ban a 256KB flash és a 32KB RAM és a TQFP tok és a bootloader tetszet tetszett meg a legjobban. Még nem késő, hogy átáljak. Az anyagiak nem okoznak gondot, de feleslegesen nem vennék Atmel programozót, elvileg Raspberry Piről az OpenOCD segítségével fellehet tölteni a bootloadert.
Tudol-e olyan ST uC-t ajánlani, amelyik ekkora tokban tokban többet tudna?
(#) kapu48 válasza david10 hozzászólására (») Aug 8, 2017 / 1
 
Esetleg olcsóbb, megfelel?
Bővebben: Link

(#) dB_Thunder hozzászólása Aug 8, 2017 /
 
Láma kérdések, mert sose csináltam... Témakör : program kiolvasása egy atmega8ból.
Studio4..
Signature olvasás után lementettem a programot, az eeprom tartalmat, és elvileg a fuse beállításokat (.ELF).
De a vedelem fülön ez olvasható, lásd melléklet.
Ilyenkor le van zárva az ic?
Ha igen akkor mit másoltam ki?

kép.jpg
    
(#) rolandgw válasza dB_Thunder hozzászólására (») Aug 8, 2017 /
 
Ha 0xFC volt beállítva, akkor használhatatlan kuszaságot, nem az eredeti programot.
(#) csabagalcsaba válasza csabeszq hozzászólására (») Aug 9, 2017 /
 
Valóban elég szívós jószágok!
Nem úgy a PIC-ek! Ők nagyon szeretnek indiánjelekkel kommunikálni, ha valami nem tetszik nekik.
(#) mtomihun hozzászólása Aug 12, 2017 / 1
 
Sziasztok

Egy kis segítséget szeretnék kérni. AVR-et még soha nem programoztam be. Ezt utánépítettem, kész is van, már csak az Atmega8-at kellene felpogramozni. E-bay-ről vettem is programozót hozzá, aminek a képét csatoltam is. Letöltöttem egy Khazama AVR pogrammer nevű programot.
A programozónak mekkora feszültséget kell adni? Az AVR melyik lábát hova kell csatlakoztatnom az égetőn?

Köszi
(#) pont válasza mtomihun hozzászólására (») Aug 12, 2017 /
 
Szia!

Az usb asp-nak kell egy driver, utána töltsd le a Bascom demoját, (Ha a program nem több mint 4K) A tápfeszt az USB-n keresztül kapja, a kontroller megfelelő (miso, mosi, reset, sck, v+, gnd) lábát akármivel kösd össze az ICSP csatlakozó megfelelő lábával Bővebben: Link , ha kvarc is van akkor azt is kell rá tenni.
(#) mtomihun válasza pont hozzászólására (») Aug 12, 2017 /
 
Szia

21kb a hex file.
Jól értelmezem, hogy akkor nem kell az a foglalatos része az égetőnek, hanem az USB-s részből kijövő 10 érintkezős csatit kell az avr-re kötni, ahogy lerajzoltam?
A kapcsolásban van kvarc is kondikkal, azt is bele kell raknom az égetésnél is?
Milyen driver kell az usb-nek?
Következő: »»   777 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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