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   771 / 837
(#) kapu48 válasza rolandgw hozzászólására (») Ápr 20, 2017 /
 
Te is csak bolyongsz az erdőben!

Mert az ajánlott példányon ott van az FTDI soros USB átalakító!
Ezért drágább is, mint az eredeti kiindulás példány, amin csak a MEGA8-as volt!
És emulálta az USB-t. És természetesen mindkettőben különböző firmware van.
(#) vladcepes hozzászólása Ápr 20, 2017 /
 
Hát jó mélyen vagyok most, Esetleg kellene hozzá egy ilyen is?

Bővebben: Link

Mármint a baloldalt ami van ááá visszaszívom ez gondolom csak egy panel amibe beültetem a kontrollert a programozáshoz.
A hozzászólás módosítva: Ápr 20, 2017
(#) rolandgw válasza kapu48 hozzászólására (») Ápr 20, 2017 /
 
Én ezen nem látok FTDI-t, csak LVC125 van. Az új verzión már Mega88 van, ennyi a különbség.
Angolra váltva az oldalt csak a régi jön be, szóval irány az erdő, mondom magamnak!
Bővebben: Link
(#) vladcepes hozzászólása Ápr 20, 2017 /
 
Ezzel is megtudnám csinálni? (mármint felprogramozni)? Bővebben: Link
Bővebben: Link
http://morgoelektronika.hu/kapcsolas/lptavr.gif
(#) csabeszq válasza vladcepes hozzászólására (») Ápr 20, 2017 / 1
 
Szerintem inkább maradj az 500 Ft-os kínai USB ASP-dnél, a printerportos csodát meg felejtsd el.

A printer porttól kiráz a hideg. Nem véletlenül hívják a portot printer és nem AVR portnak, a céljának megfelelően kellene használni.

Komolyan fel fogok rakni egy audio AVR programozót, ami úgy fog menni, hogy egy program WAV fájlt generál az AVR kódból, amit ha lejátszol, akkor mire vége lesz a "zenének" az AVR felprogramozódik.

Semmi más nem kell hozzá, csak egy fülhallgató dugó, a hex fájlok helyett meg WAV-ot fogok megadni.

Érdekes, hogy eddig senkinek nem jutott eszébe sztereo jack dugón programozni AVR-t, csak nekem, pedig a C64 datasettje is így működött.

A hozzászólás módosítva: Ápr 20, 2017
(#) abcdabcd válasza csabeszq hozzászólására (») Ápr 20, 2017 /
 
Valószínűleg általában azért hívják printer portnak mert a legtöbb ember nyomtatót használ(t) róla, a neve amúgy Párhuzamos port, avagy angolul Parallel port...Csak úgy a fogalmak tisztázása végett, ha már felmerült...
Meg egyébként az avr égetős témában annó felraktam azt a kapcsolást, amit én annó megépítettem, használtam párszor, valamennyiszer rendesen működött... azt nem tudom, hogy az újabb oprendszerek mit szólnak az LPT porthoz, lehet van valami olyasmi, mint a 10Mbites LAN esetén is, hogy esetleg "üldöznék", de az úgyis kiderül, ha rádugva az amúgy jó eszköz nem működik...
XP alatt tutira jó, meg amúgy az 1.1-es USB 12Mbit-jétől még gyorsabb is
A hozzászólás módosítva: Ápr 20, 2017
(#) csabeszq válasza abcdabcd hozzászólására (») Ápr 20, 2017 /
 
Amikor én tanultam, végignéztem minden programozó típust, utána besétáltam az Atmel budapesti képviseletéhez (MSC) és tőlük 10.000-ért vettem AVR ISP MK II programozót. A csillagászati áron kívül más bajom nem volt vele, megvan 5 éve, használom, nem akarom lecserélni jobbra.

AVR volt az első mikrokontroller, amin tanulni kezdtem.

Amikor az ember tanul a cuccokon nem feltétlen éri meg spórolni. Megveszed a jó cuccokat, amik még árban megfizethetők. Ha megy már minden utána lehet kínai vackokkal is szórakozni.
A hozzászólás módosítva: Ápr 20, 2017
(#) csabeszq hozzászólása Ápr 20, 2017 /
 
Egy jó hír:

A Chipcad KFT (Lurdy ház) elkezdte forgalmazni az Atmel IC-ket (Microchip).

Rákeresel (DIP-re):
Attiny85 -> 280 Ft + ÁFA
Atmega328P -> 640 Ft + ÁFA

Elég szép számban forgalmaznak Atmel IC-ket. Egy csomó IC számomra idáig a beszerezhetetlenség határán mozgott.
(#) kitartás válasza csabeszq hozzászólására (») Ápr 20, 2017 /
 
Meg a sok kacattal elmarad a sikerélmény. Tapasztalat híján nem tudni a program a hibás vagy a hw. Olyan dolgok viszik el az energiát és a drága időt ami nem éri meg.
(#) csatti2 hozzászólása Ápr 20, 2017 /
 
Arról nem is beszélve, hogy egy MkII-vel vagy egy AtmelICE-al rendesen debuggolni is lehet. Soronként léptethető a program, ellenőrizhetőek (és akár módosíthatóak) a regiszterek és a memóriaterület, stb.
Rengeteg időt lehet így megspórolni.
Az USBASP egyébként működik. Lehet, hogy előtte viszont ki kell rajta cserélni a firmware-t, tehát kellhet egy másik programozó is (egy ArduinoISP is megteszi).
(#) vladcepes hozzászólása Ápr 20, 2017 /
 
Köszönöm a sok infót! Igaz vannak közte olyan dolgok hogy ha újraszületek lehet akkor sem fogom tudni miről beszéltek
De a lényeget kiszűrtem. Nálam a kérdés az volt,hogy meg tudom e csinálni vele azt amit akarok. (nem akarok vele versenyre menni) és köszönöm!
(#) viper3D hozzászólása Ápr 21, 2017 /
 
Sziasztok!
Egy kis segítségre lenne szükségem ATmega8, UART témában. Egyszerűen csak a billentyűzeten lenyomott gombot szerettem volna kapcsos zárójelben kiíratni a PC monitorára (szokásos mintafeladat).
Az AVR és a PC közötti kapcsolatot egy TTL-USB soros illesztő(FT232RL chipset) adja. Próbáltam Hyper Terminal és Realterm segítségével is, de mindkét esetben, ugyan úgy csak a lenyomott betű jelent meg. Ez mitől lehet?

Továbbá: A TTL-USB konverterből kijövő RX és TX vezetékeken kívül, a VCC és GND vezetékeket is be kell kötni? Ha igen, ez fogja szolgáltatni az energiát az áramkörnek(mikrokontroller, stb...)?

Köszönöm előre is!

Programkód:
  1. #define F_CPU 7372800UL // rendszer orajel: 7.3728 MHz
  2. #define USART_BAUDRATE 9600 // soros kommunikacio sebessege: 9600 bps
  3. #define UBRR_ERTEK ((F_CPU / (USART_BAUDRATE * 16UL)) - 1) // UBRR
  4.  
  5. #include <avr/io.h>
  6. #include <inttypes.h>
  7.  
  8. void KonfigUART()  // UART beallitasa
  9. {
  10.    // 9600 bps soros kommunikacio sebesseg beallitasa
  11.    UBRRH = (UBRR_ERTEK>>8);   // UBRR_ERTEK felso 8 bitjenek betoltese az UBRRH regiszterbe
  12.    UBRRL = UBRR_ERTEK;        // UBRR_ERTEK also 8 bitjenek betoltese az UBRRL regiszterbe
  13.    // Aszinkron mod, 8 Adat Bit, Nincs Paritas Bit, 1 Stop Bit
  14.    UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1);
  15.    //Ado es Vevo aramkorok bekapcsolasa
  16.    UCSRB |= (1 << RXEN) | (1 << TXEN);   //
  17. }
  18.  
  19. char UARTAdatFogad() // Ez a fuggveny a beerkezo adatokat kiolvassa az UDR regiszter bejovo pufferebol
  20. {
  21.    while(!(UCSRA & (1<<RXC))) // Varakozas amig nincs uj bejovo adat
  22.    {
  23.       //  Varakozas
  24.    }
  25.    //Most mar van beerkezett adat, amit kiolvasunk a pufferbol
  26.    return UDR;
  27. }
  28.  
  29. void UARTAdatKuld(char data) // Ez a fuggveny a kuldendo adatot beirja az UDR regiszter kimeno pufferjebe
  30. {
  31.    while(!(UCSRA & (1<<UDRE)))  // Varakozas amig az Ado kesz nem lesz az adatkuldesre
  32.    {
  33.       //  Varakozas
  34.    }
  35.    // Az Ado mar kesz az adatkuldesre, a kuldendo adatot a kimeno pufferjebe irjuk
  36.    UDR=data;
  37. }
  38.  
  39. int main(void) // Foprogram
  40. {
  41.    char data;
  42.  
  43.    KonfigUART();  // UART Konfiguralasa
  44.  
  45.    DDRB = 0x01;
  46.    PORTB = 0x01;
  47.  
  48.    while(1) // Vegtelen ciklus
  49.    {
  50.       data=UARTAdatFogad();  // A berekezo bajt fogadasa
  51.       // A beerkezett karaktert szogletes zarojelben kuldjuk vissza
  52.       UARTAdatKuld('[');
  53.       UARTAdatKuld(data);
  54.       UARTAdatKuld(']');
  55.    }
  56. }
(#) csatti2 válasza viper3D hozzászólására (») Ápr 21, 2017 /
 
Az nem lehet, hogy egyáltalán nem működik csak úgy van beállítva a terminálprogramod, hogy mutassa a lenyomott betűt?
A GND-t mindenképp be kell kötnöd, hisz közös referenciára szükség van. A közös föld nélkül nem lehet értelmezni a TX és RX jeleket. A VCC akkor kell, ha nincs önálló energiaforrása a saját áramkörödnek.
(#) Sick-Bastard válasza viper3D hozzászólására (») Ápr 21, 2017 /
 
A kód az jó. Leteszteltem.

Bekötés(ahogy csatti2 is javasolja):
AVR - FT232RL
GND - GND
RXD - TXD
TXD - RXD
VCC - VCC (nem fontos, az összeköttetés, viszont...)
VCC = VCC (megegyezzenek a feszültségek)

HyperTerminal-ban győződj meg, hogy jó portot választottál(valószínű az egyetlent...), a baud(9600), paritás(nincs), stop bitek(1) és átvitelvezérlés(nincs) beállítások azonosak legyenek.
(#) viper3D hozzászólása Ápr 21, 2017 /
 
Köszönöm a válaszokat, valószínű hogy a bekötéssel lesz a probléma.
Köszönöm!
(#) scooby_ hozzászólása Ápr 23, 2017 /
 
Sziasztok!
Vettem (sajnos csak)egy Atmega8-16PU típusú AVR-t. Próbáltam bele programot tölteni, de se az USBASP V2.0, sem az STK200 nem tud vele mit kezdeni, kvázi olyan, mintha a programozón rajta se lenne a mikrovezérlő.
Próbáltam PonyProg2000-rel törölni, illetve ExtremBurner-AVR-rel is. Tud valaki valami megoldást erre?
Előtte egy Atmega88-ba sikeresen betöltöttem a programot, félek, hogy miután a foglalatból a 88 kikerült, és beleraktam a 8-at programozás céljából, véletlenül a másik HEX maradt betöltve, vagy a FUSE biteket nem írtam át.
(#) Sick-Bastard válasza scooby_ hozzászólására (») Ápr 24, 2017 /
 
I. Elnézést, hogy ezzel kezdem: Kapcsolatok ellenőrzése... majd megint.

II. Ha mázlid van, akkor csak külső órajelet kell rátenned a programozandó AVR-re.
III. Ha peches vagy, akkor vagy az SPI felprogramozás van kikapcsolva vagy/és a Reset is ki van kapcsolva.
Ekkor egy FuseBit Doctor tud csak segíteni.

Ha ezek nem jöttek be akkor lehet, hogy valóban hibás a chip...
(#) minimodel válasza scooby_ hozzászólására (») Ápr 27, 2017 /
 
Szia! Èn Arduino-val programoztam fel sikeresen.
(#) kalmi.kalmi hozzászólása Ápr 28, 2017 /
 
Sziasztok !
Milyen íróval tudnám kezelni a P89LPC932A1FDH vezérlőt ? Nem találok hozzá írót. Egy bemeneti lába zárlatos, kiolvasnám a progit és átmásolnám egy másikba. Így tudnám megjavítani a kütyüt amiben van.
(#) vargham válasza kalmi.kalmi hozzászólására (») Ápr 28, 2017 /
 
Ez nem AVR, hanem az NXP által gyártott, Intel 8051.
(#) Hp41C válasza kalmi.kalmi hozzászólására (») Ápr 28, 2017 /
 
Lehet, hogy NXP gyártmány, de elég hozzá egy TTL szintű soros vonal. Bővebben: Link
(#) kiborg válasza scooby_ hozzászólására (») Ápr 28, 2017 /
 
Szia!

Ha ÚJ a Mega8, akkor belső órajelre van állítva alapból, tehát ISP-n keresztül minden gond nélkül tudni kell vele kommunikálni.
Ha egyszer sikerült, onnantól már nincs garancia arra hogy legközelebb is sikerül,mert bizonyos programok nem figyelik, hogy mit állítasz és kérdés nélkül letöltik(Fuse bitek,Reset tiltás) és akkor kizárod magad.
(#) csabeszq válasza kiborg hozzászólására (») Ápr 28, 2017 /
 
Elvileg, de a kínából rendelt cuccokra néha előtelepítenek ezt-azt (pl. Arduino). Atmega328P-nél sosem biztos, hogy hogyan jön meg.
(#) kalmi.kalmi válasza Hp41C hozzászólására (») Ápr 28, 2017 /
 
Mit tudnék ezzel kezdeni ? Milyen író kellene hozzá ?
(#) rolandgw válasza kalmi.kalmi hozzászólására (») Ápr 29, 2017 /
 
Ha gyári kütyü biztosan kód védett.Egyébként Flash Magic és egy soros megoldás. Például.
(#) kalmi.kalmi válasza rolandgw hozzászólására (») Ápr 29, 2017 /
 
Köszi a linkeket. Szerintem is kód védett lehet.
(#) Kari55 hozzászólása Ápr 30, 2017 /
 
Sziasztok.

Megépíteném Ezt a Topi féle AVR programozót, de van néhány alkatrész, amit nem találok Pl.: a 47126N IC-t. Ezt mivel lehetne helyettesíteni? Valamint a MEGA8-P megfelelője lehet az ATMEGA8L-8PU?
A NYÁKot már kimartam és Az alkatrész rendelés előtt szeretnék biztosra menni.

Köszönöm előre is.
(#) Ivan93 válasza Kari55 hozzászólására (») Ápr 30, 2017 /
 
Szia!
Az ATMEGA8L csak 8MHz-ig használható, a kapcsolásban pedig 12MHz-es kristály van, így nem jó. Az említett alkatrész pedig 74126, ez egy buffer áramkör, szerintem az AVR kimeneteit védi a balesetektől, kapható például a HEStore-ban is.
(#) Kari55 válasza Ivan93 hozzászólására (») Ápr 30, 2017 /
 
Köszönöm, akkor melyik Atmega8 lenne jó helyette?
(#) Ivan93 válasza Kari55 hozzászólására (») Ápr 30, 2017 /
 
A biztos megoldás, ha a kapcsolásban szereplő ATMEGA8-16 teszel bele. Elvileg helyettesíthető lenne mega8A-val vagy mega88-al, de ezt nem garantálom.
Következő: »»   771 / 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