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   323 / 840
(#) TavIR-AVR válasza bedoweb hozzászólására (») Máj 2, 2011 /
 
A -F: hagyja figyelmen kívül, ha az AVR ID-je és a tényleges ID nem egyezik (nem javasolt ennek használata).

A STK500-kent valamiért nem látszik.
Én kipróbálnám, h STK500 terminalba belépni (AVRDUDE). Hátha.
(#) gabi20 hozzászólása Máj 4, 2011 /
 
Hali AVR Studio4 használok, ATmega8 EEPROMát kellene beprogramoznom. Valaki le tudná írni hogyan kell? (Az EEPROM hex fájlt be tudom égetni, csak létrehozni nem tudom)
(#) zolee1209 válasza gabi20 hozzászólására (») Máj 4, 2011 /
 
Szia!

  1. .eseg
  2.  
  3. .db 0x00,0x00
  4. ;vagy
  5. .dw 0x0000


Én így szoktam asm-ben. Fontos, hogy minden sorban páros bájt legyen megadva, ha egy 16bites számot adsz meg (.dw) akkor ez már megoldott.
(#) erdoszoli hozzászólása Máj 5, 2011 /
 
Sziasztok
AVR Studio4 GCC fordítója ilyen hibát küld nekem :
"... error: expected ')' before ';' token"

ráadásul sokszor. Pl egy ilyen sorra is ezt irja:
mode=EEPROM_read(mode_addr) ;
Ahogy látom minden a helyén van. Valamelyik header fájlommal lehet gond vagy a fordítóm hülyült meg és telepíthetem újra? Kérnék egy kis segítséget, vagy ötletet valakitől..
Zoli
(#) gtk válasza erdoszoli hozzászólására (») Máj 5, 2011 /
 
Miert nem probalod ki mas projekttel?
(#) trudnai válasza erdoszoli hozzászólására (») Máj 5, 2011 /
 
A 'mod_addr' az egy makro amit Te definialtal '#define' -al? Mert akkor gondolom oda tettel veletlen egy pontos vesszot... pl:
  1. #define mod_addr 65;


ahelyett, hogy:
  1. #define mod_addr 65


Masik lehetoseg, hogy a 'mod_addr' makrokent van valahol definialva egy include file-ban, es Te megprobaltal letre hozni egy valtozot ugyanilyen neven...
(#) boomerang hozzászólása Máj 5, 2011 /
 
Atmega8 prociban Timer0-ra tudna nekem valaki egy 1 Hz-es megszakítást definiálni 1Mhz-es órajelnél ?

Mármint beállítani a timert, a megszakítás megírása az megy.
Köszi
(#) boomerang hozzászólása Máj 5, 2011 /
 
Atmega8 processzorának Timer0-jára tudna nekem valaki egy 1Hz-es megszakítást definiálni ? A timer beállítására gondolok, a megszakítást meg tudom írni.

Köszi
(#) sgt válasza boomerang hozzászólására (») Máj 5, 2011 /
 
Egy kis matek . 1000000-ról indulsz, osztod az osztás mértékével, és tovább osztod a 256-TCNT0 kivonás eredményével, és megkapod mekkora frekijű a megszakítás. Jobban jársz ha erre egy programot írsz, gyorsabb a dolog.
(#) vagnerjazon hozzászólása Máj 5, 2011 /
 
Fizikus iránytűs cikkében az I2C-ről írtak segítségével szeretnék egy ATMega8535 és egy ATMega8 közt I2C-n kommunikálni. El is kezdtem átírni a kódot, de megakadtam. Azt honnan tudom, hogy mi a két vezérlőnek a címe? Vagy azt be kell állítani valahol előre?
(#) Fizikus válasza vagnerjazon hozzászólására (») Máj 6, 2011 /
 
Idézet:
„Azt honnan tudom, hogy mi a két vezérlőnek a címe? Vagy azt be kell állítani valahol előre?”

A Slave eszkoznel az I2C azonositot a TWI cimregiszterben kell megadni (TWAR).
Bővebben: Link
Itt van peldaprogram Slave I2C AVR-re az oldal aljan:
Bővebben: Link 2
(#) erdoszoli válasza trudnai hozzászólására (») Máj 6, 2011 /
 
Igen így van! A pontosvessző volt a hibás, csak ugye a hiba nem oda mutatott hanem a kódba. Köszönöm azért a segítséget, mire ezt elolvastam én is észrevettem, a sok define között fel se tünt egy jó ideig
(#) vagnerjazon válasza Fizikus hozzászólására (») Máj 6, 2011 /
 
Köszönöm, de én nem arra gondoltam, hogy hogyan adom meg a címet, hanem hogy honnan lehet tudni hogy mi a cím?
(#) Fizikus válasza vagnerjazon hozzászólására (») Máj 6, 2011 /
 
Mivel az AVR a legtobbszor az I2C(TWI) Master (annak nem kell cim, csak a slave-eknek, mert a Master iranyitja az egesz kommunikaciot, O szolitja meg a slave-eket ha adatot akar kuldeni vagy fogadni), ezert nincs elore megadott I2C cime. Ha Slave kent akarod az AVR-t hasznalni, akkor egy altalad valasztott I2C cimet adsz meg a TWAR TWI cimregiszterben es ezutan ezt hasznalva tudja a Master megszolitani a Slave-et.
(#) vagnerjazon válasza Fizikus hozzászólására (») Máj 6, 2011 /
 
Ja, már értem. Elnézést, kicsit félreértettem a dolgot. Szóval ha a slave avr-be ezt a sort írom, akkor a master a 0x10 néven éri majd el?
  1. TWAR = 0x10;
(#) vagnerjazon válasza vagnerjazon hozzászólására (») Máj 6, 2011 /
 
Közben próbálkoztam, annyit sikerült elérnem, hogy a slve-re kötött LED-et be tudom kapcsolni úgy, hogy a masternek UART-on küldök egy b betűt, az pedig i2c-n küld parancsot a LED bekapcsolására.
Viszont az a gond, hogy valamiért csak egy adatot tudok küldeni a slave-nek, mert utána az egész "lefagy". Ha a slave-nak alapból ki van kapcsolva a LED-je, akkor be tudom kapcsolni, de ki már nem, mert akkor lefagy a master(ami folyamatosan villogtat egy LED-et, hogy látsszon, minden rendben van-e). Ha alapból be van kapcsolva, akkor pedig ki lehet kapcsolni, de ha megint be akarom, akkor már megint ugyanaz a jelenség. Ha kétszer elküldöm a bekapcsolást(vagy a kikapcsolást), akkor is ez van.
A slave oldali programra gyanakszom, mert ha elküldök valamit, és be/ki kapcsolja a LED-et, és leveszem a tápot a slave-ről, majd visszateszem, és megint küldök valamit, akkor nem fagy le a master.
Szóval szerintem az a gond, hogy a slave valamiért nem tud egynél több adatot fogadni, csak fogalmam sincs, hogy miért. Fölteszem mindkét kódot, remélem, tud majd segíteni valaki.
Master:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. #include <inttypes.h>
  4. #include <util/soros.h>
  5. #include <avr/interrupt.h>
  6. #include <compat/twi.h>
  7.  
  8. #define SCL_CLOCK  100000L // I2C sebessege Hz-ben
  9. #define I2C_READ    1    // adatiranyt jelzo bit - olvasas
  10. #define I2C_WRITE   0    // adatiranyt jelzo bit - iras
  11. #define atmega8  0x10
  12.  
  13.  
  14. /*************************************************************************
  15. I2C periferia inicializalasa
  16. *************************************************************************/
  17. void i2c_init(void)
  18. {
  19.          TWSR = 0;            
  20.          TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
  21. }
  22. /*************************************************************************
  23. Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
  24. Fuggv. parameter: I2C eszkozazonosito cim, adatirany
  25. Fuggv. altal visszadott ertek: 0 = eszkoz elerheto, 1= eszkoz elerese sikertelen
  26. *************************************************************************/
  27. unsigned char i2c_start(unsigned char address)
  28. {
  29.            uint8_t   twst;
  30.  // START jel kuldese
  31.         TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
  32.  // varakozas amig az atvitel be nem fejezodik
  33.         while(!(TWCR & (1<<TWINT)));
  34.  // TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
  35.         twst = TW_STATUS & 0xF8;
  36.         if ( (twst != TW_START) && (twst != TW_REP_START)) return 1;
  37.  // eszkozazonosito cim kuldese
  38.         TWDR = address;
  39.         TWCR = (1<<TWINT) | (1<<TWEN);
  40.  // varakozas amig az atvitel be nem fejezodik es az ACK/NACK nyugtazas be nem erkezik
  41.         while(!(TWCR & (1<<TWINT)));
  42.  // TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
  43.         twst = TW_STATUS & 0xF8;
  44.         if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;
  45.  return 0;
  46. }
  47. /*************************************************************************
  48. Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
  49. Ha az eszkoz foglalt, varakozas amig kesz nem lesz (ack polling)
  50. Fuggv. parameter: I2C eszkozazonosito cim, adatirany
  51. *************************************************************************/
  52. void i2c_start_wait(unsigned char address)
  53. {
  54.            uint8_t   twst;
  55.     while ( 1 )
  56.            {
  57.             // START jel kuldese
  58.             TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
  59.             // varakozas amig az atvitel be nem fejezodik
  60.             while(!(TWCR & (1<<TWINT)));
  61.             // TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
  62.             twst = TW_STATUS & 0xF8;
  63.             if ( (twst != TW_START) && (twst != TW_REP_START)) continue;
  64.             // eszkozazonosito cim kuldese    
  65.             TWDR = address;
  66.             TWCR = (1<<TWINT) | (1<<TWEN);
  67.             // varakozas amig az atvitel be nem fejezodik    
  68.             while(!(TWCR & (1<<TWINT)));
  69.             // TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.    
  70.             twst = TW_STATUS & 0xF8;
  71.             if ( (twst == TW_MT_SLA_NACK )||(twst ==TW_MR_DATA_NACK) )
  72.             {  
  73.                 // az eszkoz foglalt, Stop jel kuldese, irasi muvelet befejezese        
  74.                 TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
  75.                 //  varakozas amig a Stop utasitas vegre nem hajtodik es az I2C busz szabad nem lesz
  76.                 while(TWCR & (1<<TWSTO));
  77.                 continue;
  78.             }
  79.             //if( twst != TW_MT_SLA_ACK) return 1;
  80.             break;
  81.             }
  82. }  
  83.  
  84. /*************************************************************************
  85. Ismetelt Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
  86. Fuggv. parameter: I2C eszkozazonosito cim, adatirany
  87. Fuggv. altal visszadott ertek: 0 = eszkoz elerheto, 1= eszkoz elerese sikertelen
  88. *************************************************************************/
  89. unsigned char i2c_rep_start(unsigned char address)
  90. {
  91.            return i2c_start( address );
  92. }
  93. /*************************************************************************
  94. Stopjel kuldese, kommunikacio lezarasa ,I2C bus szabadda tetele *************************************************************************/
  95. void i2c_stop(void)
  96. {
  97.         // STOP jel kuldese
  98.         TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
  99.         //  varakozas amig a Stop utasitas vegre nem hajtodik es az I2C busz szabad nem lesz
  100.         while(TWCR & (1<<TWSTO));
  101. }  
  102. /*************************************************************************
  103. Egy bajt kuldese az I2C eszkozre
  104. Fuggv. parameter:    byte to be transfered
  105. Fuggv. altal visszaadott ertek: 0 iras sikeres, 1 iras sikertelen *************************************************************************/
  106. unsigned char i2c_write( unsigned char data )
  107. {
  108.          uint8_t   twst;
  109.         //  adat irasa a korabban megcimzett eszkozbe
  110.         TWDR = data;
  111.         TWCR = (1<<TWINT) | (1<<TWEN);
  112.         // varakozas amig az atvitel be nem fejezodik
  113.         while(!(TWCR & (1<<TWINT)));
  114. // TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
  115.         twst = TW_STATUS & 0xF8;
  116.         if( twst != TW_MT_DATA_ACK) return 1;
  117.         return 0;
  118. }  
  119. /*************************************************************************
  120. Egy bajt kiolvasasa az I2C eszkozbol, tovabbi adatok kerese
  121. Fuggv. altal visszaadott ertek:  az I2C eszkozbol kiolvasott bajt *************************************************************************/
  122. unsigned char i2c_readAck(void)
  123. {
  124.         TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
  125.         while(!(TWCR & (1<<TWINT)));    
  126.              return TWDR;
  127. }  
  128. /*************************************************************************
  129. Egy bajt kiolvasasa az I2C eszkozbol, a kiolvasast Stop bit koveti
  130. Fuggv. altal visszaadott ertek:  az I2C eszkozbol kiolvasott bajt *************************************************************************/
  131. unsigned char i2c_readNak(void)
  132. {
  133.         TWCR = (1<<TWINT) | (1<<TWEN);
  134.         while(!(TWCR & (1<<TWINT)));
  135.            return TWDR;
  136. }  
  137.  
  138.  
  139. void ledBE()
  140. {
  141. i2c_init();    // I2C inicializalasa
  142. i2c_start_wait(atmega8+I2C_WRITE);
  143. i2c_write('a');
  144. i2c_stop();         // Stopjel kuldese, I2C busz szabadda tetele
  145.  
  146. UARTSzovegKuld("BE\r\n");
  147. }
  148.  
  149. void ledKI()
  150. {
  151. i2c_init();    // I2C inicializalasa
  152. i2c_start_wait(atmega8+I2C_WRITE);
  153. i2c_write('b');
  154. i2c_stop();         // Stopjel kuldese, I2C busz szabadda tetele
  155.  
  156. UARTSzovegKuld("KI\r\n");
  157. }
  158.  
  159.  
  160.  
  161. int main(void)  // Foprogram
  162. {
  163. DDRB |= (1<<PB0);
  164.  
  165. KonfigUART();   // UART Konfiguralasa
  166.  
  167. sei();
  168.  
  169. while(1)
  170. {
  171. PORTB ^= _BV(PB0);
  172. _delay_ms(500);
  173. }
  174.  
  175. }
  176.  
  177.  
  178. ISR(USART_RX_vect)
  179. {
  180. char data;
  181. data = UARTAdatFogad();
  182.  
  183. if(data=='b') ledBE();
  184. if(data=='k') ledKI();
  185. }

A soros.h-ban vannak az UART beállítások, de azzal nincs gond.
Slave:
  1. #include <avr/io.h>
  2. #include <util/delay.h>
  3. #include <inttypes.h>
  4. #include <avr/interrupt.h>
  5. #include <compat/twi.h>
  6.  
  7. #define SCL_CLOCK  100000L // I2C sebessege Hz-ben
  8.  
  9. #define ledBE PORTB |= _BV(PB1)
  10. #define ledKI PORTB &= ~_BV(PB1)
  11.  
  12.  
  13. /*************************************************************************
  14. I2C periferia inicializalasa
  15. *************************************************************************/
  16. void i2c_init(void)
  17. {
  18.          TWSR = 0;            
  19.          TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
  20.                  TWCR = (1<<TWINT) | (1<<TWEA) | (1<<TWEN) | (1<<TWIE);
  21.                  TWAR = 0x10;
  22. }
  23.  
  24. unsigned char i2c_readAck(void)
  25. {
  26.         TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
  27.         while(!(TWCR & (1<<TWINT)));    
  28.              return TWDR;
  29. }
  30. /*************************************************************************
  31. Stopjel kuldese, kommunikacio lezarasa ,I2C bus szabadda tetele *************************************************************************/
  32. void i2c_stop(void)
  33. {
  34.         // STOP jel kuldese
  35.         TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
  36.         //  varakozas amig a Stop utasitas vegre nem hajtodik es az I2C busz szabad nem lesz
  37.         while(TWCR & (1<<TWSTO));
  38. }  
  39.  
  40. unsigned char i2c_readNak(void)
  41. {
  42.         TWCR = (1<<TWINT) | (1<<TWEN);
  43.         while(!(TWCR & (1<<TWINT)));
  44.            return TWDR;
  45. }
  46.  
  47.  
  48. int main(void)  // Foprogram
  49. {
  50. DDRB |= (1<<PB1);
  51.  
  52. sei();
  53.  
  54. i2c_init();
  55.  
  56. while(1);
  57.  
  58. }
  59.  
  60.  
  61. ISR(TWI_vect)
  62. {
  63. char data;
  64. data = i2c_readNak();
  65. i2c_stop();
  66.  
  67. if(data=='a') ledBE;
  68. if(data=='b') ledKI;
  69. }
Előre is nagyon köszönöm!
(#) vagnerjazon válasza vagnerjazon hozzászólására (») Máj 7, 2011 /
 
Ja és még annyit tennék hozzá, hogy 7,3728 MHz-es kvarcról megy mindkét vezérlő.
(#) vagnerjazon válasza vagnerjazon hozzászólására (») Máj 7, 2011 /
 
Most vettem észre: ha a masternek sorosan egymás után elküldök egy b, majd egy k, majd megint b betűt(LED be, ki, be), nem törődve azzal, hogy a második betűnél bent marad valamiért a megszakításban, akkor a következő az eredmény: az első b betűnél bekapcsol a LED, és még minden rendben van, a számítógépre meg is jön sorosan a BE szöveg, jelezve hogy elküldte a slave-nek az adatot. A k betűnél nem kapcsol ki a LED, a master meg a megszakításban marad, és nem küldi el a KI szöveget, az ezt követő b betűnek semmilyen látható hatása nincs, és szintén nincs BE szöveg.
Viszont ha ezek után leveszem a tápfeszt a slave-ről, majd vissza, akkor a master elküldi neki az adatot a LED kikapcsolására, és ugyan ez nem látszik, mert alapból ki van kapcsolva a LED amikor a program indul a slave-en, viszont a master ekkor elküldi a KI szöveget, majd megint a megszakításban marad, és ha másodszor is leveszem a tápot a slave-ről, majd vissza, akkor meg bekapcsolja a LED-et, és elküldi a BE szöveget, és már nem marad bent a megszakításban.

Ez vajon mitől lehet?
(#) vagnerjazon válasza vagnerjazon hozzászólására (») Máj 7, 2011 /
 
Megoldódott! Nem kevés keresés után ráakadtam egy példára, ahonnan felhasználtam néhány sort. Jól gondoltam, tényleg a slave oldalon volt a hiba. A megoldás:
  1. #define TWCR_ACK TWCR = (1<<TWEN)|(1<<TWIE)|(1<<TWINT)|(1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|(0<<TWWC);
Ezt kellett használni a megszakításban, így:
  1. TWCR_ACK;
  2. data = TWDR;
Akkor ezek szerint azért várt a master, mert nem kapott ACK jelet (legalábbis szerintem).
(#) vagnerjazon hozzászólása Máj 7, 2011 /
 
Hogyan lehet szoftveres PWM-et létrehozni? Szervó(ka)t szeretnék vezérelni vele. Küszködtem timerrel, de nem sikerült, mert nem tudom rendesen beállítani. Folyton végálláson túlra akarta állítani a szervót. Tudom, hogy nagyon terheli az avr-t a szoftveres PWM, de nem baj mert ez csak ezt fogja csinálni, meg az I2C adatfogadást (I2C-n kapja, hogy melyik szervót hova állítsa).
(#) cicero hozzászólása Máj 7, 2011 /
 
Üdv.,

Épített-e valaki közületek HVPP Fuse bits doctor-t?

Én erre vetemedtem és sajnos nem sikerült tökéletesen működésre bírni. A probléma kicsit hosszabb magyarázatra szorul, ezért később fejteném ki, amennyiben valaki jelentkezik erre az üzenetre...

Előre is köszönöm.

(#) Fizikus válasza vagnerjazon hozzászólására (») Máj 8, 2011 /
 
Nezzed meg az itt levo PDF-et es a zip fajlt.
AVR136 - tobb csatornas szoftveres PWM
(#) Mallar hozzászólása Máj 8, 2011 /
 
Srácok Az a problémám van, hogy amikor programozom az AVR-em nagyon sűrűn eltűnik az AVRStudio4-ben a programozó. Azt írja hogy nincs csatlakoztatva és akkor le kell húznom meg vissza. Kb minden programozás után. Néha felprogramozza, van mikor már hamarabb eltűnik. Többször más usb portba dugtam, de a számítógépen mindíg COM3 porton érzékelte, ez nemtudom gond-e.
AVR Doper STK500 as usb-s programozóm van.
amikor attiny13asokat programoztam nem volt semmi baja, viszont most áttértem atmega8 ra amihez készítettem egy panelt, fizikus will-i robotjáé alapján, aztán azóta jöttek elő a gondok. Viszont akkoriban kezdtem el azthiszem más usbkbe is dugdosni. Nem lehet ezt a hibát valahogy szoftveresen orvosolni? miven már nemtudom melyikbe telepítettem fel.
Nemlehet hogy valamit az áramkörön forrasztottam félre? Tüzetesen átvizsgáltam és nemnagyon láttam problémát. Viszont ez az első AVRes panelom ami tud külön tápforrásról is menni. Azon sem tudtam eligazodni, hogy a resetet akkor most földre kell húzni? vagy 5 voltot adni neki hogy elinduljon rajta a program? Remélem tudtok segíteni.
Üdv.: Dave
(#) vagnerjazon válasza Fizikus hozzászólására (») Máj 8, 2011 /
 
Köszönöm szépen, ez ígéretesnek tűnik, megpróbáltam lefordítani, egyenlőre hagyva a soros kommunikációt (ráérek akkor átírni I2C-re, ha már működik), és hát mivel a program ATtiny2313-ra van írva, jött is pár hiba, hogy nem talál olyan regisztereket. Egy kivételével mindet megnéztem az ATtiny2313 adatlapjában, hogy micsoda, majd kikerestem az ATMega8 adatlapjából a megfelelőjét.
Ez az az egy kivétel:
  1. CLKPR = (1 << CLKPCE);        // enable clock prescaler update
  2. CLKPR = 0;                    // set clock to maximum (= crystal)
Az ATtiny2313 adatlapjában megkeresve azt találtam, hogy ez a "128 kHz Internal
Oscillator"-nak a "System Clock Prescalar"-e. Tehát egy belső oszcillátor előosztója. Most akkor az ATtiny2313-ban van egy olyan belső oszcillátor ami az ATMega8-ban nincs? Mert az adatlapjában nem találtam ilyet. Hogyan lehetne akkor átírni ezt a részt ATMega8-ra?
(#) sikolymester válasza Mallar hozzászólására (») Máj 8, 2011 /
 
Az amit szeretnél vele programozni, az 5V-os tápfeszültséggel megy?
Ha a programozandó áramköröd külön tápról megy, akkor vedd le a doperről a táp jumpert.
Szoftveres hiba nem nagyon lehet, amennyiben a legújabb doper fw-t használod.
Én arra gyanakszom, hogy van egy forrasztási hibád valahol, amitől megszakad a fizikai usb kapcsolat.
(#) Mallar válasza sikolymester hozzászólására (») Máj 9, 2011 /
 
Úgy oldottam meg, hogy van egy 5volt stabilizáló része a panelnek, szépen megszűröm több helyen kondikkal, mértem is valami 5.05 voltot kap mindenhol ahol kell neki. Elösször felprogramozom a doperrel ott villog szépen, csinálja amit kell neki, aztán lehúzom róla és rákötöm a külön tápra, akkor már nem. Valószínűleg szerintem is forrasztási hiba így ezt a csatát szerintem nekem kell megvívnom . Az L293-as dual full bridge ic környékén van szerintem a baj. Ugyanonnan kapja az is az 5 voltot, a 9 voltot meg csak egy kondival megszűrve küldöm rá közvetlen a nagy tápforrásból. Ez gondolom nem probléma (csak erősítőknél volt ilyen problémám, hogy külön táp kellett nekik.)
(#) Mallar válasza sikolymester hozzászólására (») Máj 9, 2011 /
 
Találtam hibát. A mega8-asomhoz prcíziós foglalatot adtak és nem a lemezeset, aztán alig tudtam beledugni. Nem tudtam kb csak félig beleerőltetni, persze hogy volt szakadás benne. Az egyik lába le-le ugrált a feszültségről meg kitudja a többi mit művelt. Most sikerült helyreközel beletenni normálisan, de a külső tápforrásra még mindíg meg se nyikkan. Keresem a hibát de nem lelem még.
(#) vagnerjazon válasza vagnerjazon hozzászólására (») Máj 9, 2011 /
 
Átgondoltam, azt hiszem, mégsem kínlódok az ATMega8-ra való átírással, inkább veszek egy ATtiny2313-mat, és akkor remélem működni fog.
(#) Mallar hozzászólása Máj 10, 2011 /
 
Hát az újraindulgatás továbbra sem szűnt meg. Ha átdugom egy másik usb portba, akkoris ugyanúgy az a portszáma és a hely is amit ír a portnál.
Multiméterrel lemértem mindent és az 5v meg föld között egy picit felcsipog ha ráviszem, az szerintem a kondik miatt van, vagy a vezérlővel párhuzamosan kötött led miatt, nemtudom. Akkor is ledob néha mikor még nem is programoztam fel csak rádugtam, lefordítottam a kódot és elkezdeném felprogramozni. Hírtelen villan, hogy nincs eszköz rákötve. Tűrhetetlen így, nincs valami tippetek?

(Azért nem ment eddig küldő tápról mert a boden-t nem jelöltem be szóval az a probléma megoldódott.)
Következő: »»   323 / 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