www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Prvi koraki s PHILIPSOM
Pojdi na stran Prejšnja  1, 2, 3 ... 9, 10, 11, 12  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Sob Dec 12, 2009 5:52 pm    Naslov sporočila:   Odgovori s citatom

NE.

za ISP programiranje rabiš poleg TX, RX še dve liniji za krmiljenje RESET in ISP pinov. Torej pretvornik ne sme biti najcenejša kitajska jajca, ampak mora imeti aktivne vse signalne linije - tudi handshaking.
Po izkušnjah, tisti, ki bazirajo na FTDI čipih, delajo brez problemov.
V generalnem se jaz orientiram po fotkah vmesnikov. Večina je zalitih v prosojno plastiko. Če se skozi vidi nalotane čipe z nogicami, potem je v redu. Če pa je samo črna bunkica, potem so pa kitajski ponaredki.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
tonko
Član
Član



Pridružen-a: Sob 25 Jun 2005 13:45
Prispevkov: 541
Aktiv.: 2.44
Kraj: Črnomelj

PrispevekObjavljeno: Sob Dec 12, 2009 6:17 pm    Naslov sporočila:   Odgovori s citatom

Gre tudi samo z linijama RX in TX.
V tem primeru moraš imeti tipko med ISP in GND, opcijsko še reset tipko.
Ob resetu ali vklopu tiščiš tipko ISP in se bo zagnal bootloader.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JamesQ
Član
Član



Pridružen-a: Čet 16 Nov 2006 12:05
Prispevkov: 362
Aktiv.: 1.71
Kraj: Novo mesto/Ljubljana

PrispevekObjavljeno: Sob Dec 12, 2009 6:47 pm    Naslov sporočila:   Odgovori s citatom

Prosim priporočite mi kakega, ki ga lahko kupim pri nas. Kaj pa morda z ebaya ali dealextrema?

Najlepša hvala.

_________________
Baje sem inteligentna baraba ... FAE@Silica Slovenia (=
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Sob Dec 12, 2009 7:48 pm    Naslov sporočila:   Odgovori s citatom

Jaz sem naročil tega, pa ga še čakam.
http://www.dealextreme.com/details.dx/sku.5859
Po komentarjih bi moral delovat.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
.
Član
Član



Pridružen-a: Ned 19 Sep 2004 22:04
Prispevkov: 16777193
Aktiv.: 75551.36

PrispevekObjavljeno: Sob Dec 12, 2009 9:31 pm    Naslov sporočila:   Odgovori s citatom

Brisana vsebina odstranjenega uporabnika.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.31
Kraj: Novo mesto

PrispevekObjavljeno: Sob Dec 12, 2009 9:57 pm    Naslov sporočila:   Odgovori s citatom

borisz je napisal/a:
Tale dela v redu tudi na najvišji hitrosti, ki jo podpirajo ARMi. Na strani je tudi navodilo kako ga uporabiti za LPCje.
Tega lahko priporočim tudi jaz.
Slaba stran običajnih USB-RS232 konverterjev je, da interno dvignejo napetost na pinih (na +-12V oz. +-15V), kar pomeni, da potem nujno rabiš še kakšen MAX232 oz. podoben level converter saj za serijsko programiranje LPCjev potrebuješ +3.3V nivoje.
Za PoUSB pa si lahko na PCB samo nalotaš žensko letvico in že je ISP pripravljen. Pina DTR in RTS lahko potem uporabiš tudi za lasten bootloader Wink
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.75

PrispevekObjavljeno: Ned Dec 13, 2009 1:05 am    Naslov sporočila:   Odgovori s citatom

Umnik, saj to je namen večine teh pretvonikov, saj je RS232 standard, ki definira tudi napetostne nivoje.
_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.31
Kraj: Novo mesto

PrispevekObjavljeno: Ned Dec 13, 2009 1:08 am    Naslov sporočila:   Odgovori s citatom

Glitch je napisal/a:
Umnik, saj to je namen večine teh pretvonikov, saj je RS232 standard, ki definira tudi napetostne nivoje.

Bejž?
JamesQ je napisal/a:
Mimogrede fantje... je vsak USB-RS232 pretvornik dober za programiranje ARM7 uC?


A moram res vsako bedarijo citirat, da mi kdo kaj verjame?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Glitch
Član
Član



Pridružen-a: Pet 07 Apr 2006 11:40
Prispevkov: 1477
Aktiv.: 6.75

PrispevekObjavljeno: Ned Dec 13, 2009 2:27 am    Naslov sporočila:   Odgovori s citatom

Umnik je napisal/a:
Glitch je napisal/a:
Umnik, saj to je namen večine teh pretvonikov, saj je RS232 standard, ki definira tudi napetostne nivoje.

Bejž?


Bejž? Kaj pa potem pišeš, da je to slaba stran, če je pa to normalno. Ti pretvorniki delajo točno to kar morajo. Zakaj bi bila to slaba stran? Vprašanje je retorično, ni potrebno odgovarjat.

Da se vrnem na temo.

Sam sem preizkusil precej USB-RS232 vmesnikov za programiranje LPC2000. Niti en mi ni delal težav.

_________________
Answers: $1, Short: $5, Correct: $25, dumb looks are still free.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.31
Kraj: Novo mesto

PrispevekObjavljeno: Ned Dec 13, 2009 2:45 pm    Naslov sporočila:   Odgovori s citatom

A tako? Torej ti je jasno, zakaj sem napisal, da je to slaba stran? Vprašanje je retorično, ni potrebno odgovarjat.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
JamesQ
Član
Član



Pridružen-a: Čet 16 Nov 2006 12:05
Prispevkov: 362
Aktiv.: 1.71
Kraj: Novo mesto/Ljubljana

PrispevekObjavljeno: Sob Dec 19, 2009 8:03 am    Naslov sporočila:   Odgovori s citatom

Lepo pozdravljeni. Imam težavo usposobiti ADC na MCB2140. Delal sem s pomočjo vodiča Insiders guide in uporabniškega priročnika za LPC148. Mislim, da sem pravilno nastavil ustrezne registre, ampak oče delovati, kot želim. Lepo prosim za pomoč.

Program naj bi prebral vrednost z ADCja in nato glede na to vrednost ustrezno "zatemnil" LED na P1.16.

Še koda:

Koda:
#include <LPC214x.H> // LPC2148 MPU Register

unsigned int f=2048;
unsigned int ton;
unsigned int toff;
unsigned int i=0;
unsigned int j=0;
unsigned int flasher=0x00010000;

void delay(int count1)// Delay
   {
      while(count1 > 0) {count1--;} // Loop Decrease Counter
   };
   
void SW_PWM()
   {
      
      toff = f-ton;
      IOSET1 = flasher ; // Set Pin P1.16 (OFF LED)
      delay(ton); // Display LED Delay
      IOCLR1 = flasher; // Clear Pin P1.16 (ON LED)
      delay(toff); // Display LED Delay   display();
                      
   };
   


void ADC()
   {
      unsigned int val;
      val = AD0DR0;
      while ((val & 0x80000000) == 0);  //Wait for the conversion to complete
      val = ((val >> 6) & 0x03FF)<<16;  //Extract the A/D result
      ton=val;
   };




int main(void)
   {
      VPBDIV = 0x02;         //Set the Pclk to 30 Mhz
      PINSEL2 &= 0xFFFFFFFC; // Set GPIO1.16 = GPIO Function
      IODIR1 = 0x00FF0000; // Set GPIO1.16 = Output
      
      PINSEL1 &= 0x0010000;
      AD0CR = 0x00270601; // Setup A/D: 10-bit AIN0 @ 3MHz
      AD0CR |= 0x01000000; // Start A/D Conversion
      
      
      
      
      


   while(1) // Loop
      {   
         
         ADC();
         SW_PWM();
         
      
      };
   };


Bi mi kdo iz Novega mesta ali okolice bil pripravljen pomagati pri podobnih problemih?

Najlepša hvala.

LDŽ

_________________
Baje sem inteligentna baraba ... FAE@Silica Slovenia (=
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
cfrik
Član
Član



Pridružen-a: Sre 24 Jan 2007 16:15
Prispevkov: 39
Aktiv.: 0.19
Kraj: Trbovlje

PrispevekObjavljeno: Sob Dec 19, 2009 11:28 am    Naslov sporočila:   Odgovori s citatom

Za test ADC izpiši vrednost, ki jo dobiš na en port, kjer imaš LEDice. Spreminjaj vhodno vrednost, ter opazuj kaj se dogaja. Mislim, da ima tvoj čip tudi hardwearski PWM, ki je bolj zanesljiv, Sam se raje poslužujem tega, saj pri soft PWM nikoli ne veš kakšna je točna frekvenca, kar se da popraviti če uporabiš timer , ki ti generira prekinitev vsako 1ms, takrat povečaš neko spremenljivko, ki jo potem primerjaš z vrednostjo ADC in primerno vrednosti vklopiš ali izklopiš želeni pin.


LP Samo

_________________
lepo je imeti poklic in hobi na istem področju vendar je časa premalo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
RGorazd
Član
Član



Pridružen-a: Čet 20 Maj 2004 15:57
Prispevkov: 1712
Aktiv.: 7.71
Kraj: Ig

PrispevekObjavljeno: Sob Dec 19, 2009 4:37 pm    Naslov sporočila:   Odgovori s citatom

Kje pa imaš ADC inicializiran? Mislim, da bi moral še kak register vpisati. SAj so privzeto pini konfigurirani po resetu kot GPIO. To je naprimer inicializacija za LPC2378

Koda:

void ADCinit(int pin)
{
   int const bitoffset[8] = { (1<<14), (1<<16), (1<<18), 1<<20, 1<<28, 1<<30, 1<<24, 1<<26};

   PCONP |= PCAD; // Turn on the power for AD
   AD0CR &= 0xFFFFFF00;
   AD0CR |= (1<<pin);
   AD0INTEN = 0; // No interrupts

   // Select pin as analog
   if (pin<4) PINSEL1 |= bitoffset[pin];
   else if (pin<6) PINSEL3 |= bitoffset[pin];
   else if (pin<8) PINSEL0 |= bitoffset[pin];
}                                  


Tako da moraš najprej v tem stilu. Za LPC2148 je mislim da stvar podobna...

Nekaj v tem stilu:

Koda:


void ADC_inicializacija (void){
      PINSEL1 = 0x01080000;                     /* Select AOUT,AIN1 */
      AD0CR   = 0x00200E02;                     /* ADC: 10-bit AIN1 @ 4MHz */
}

Tole sem samo Copy-paste iz enega primera za 2148...V main() funkciji pa pokličeš inicializacijo samo prvič...pol ti ni treba...
Jaz bi tole poizkusil najprej, če ne dela bo pa še kdo kaj povedal.

LP G     

_________________
.
._. _ _ ._. _.__. _|
[ (_](_)[ (_] /_(_]
._|
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
JamesQ
Član
Član



Pridružen-a: Čet 16 Nov 2006 12:05
Prispevkov: 362
Aktiv.: 1.71
Kraj: Novo mesto/Ljubljana

PrispevekObjavljeno: Sob Dec 19, 2009 5:44 pm    Naslov sporočila:   Odgovori s citatom

Lepo pozdravljeni.

Najlepša hvala za vašo pomoč. Še posebej RGorazd in NeoTo.

Še koda, da se pokaže, da zares deluje:
Koda:
#include <LPC214x.H> // LPC2148 MPU Register

unsigned int f=1024;
unsigned int ton;
unsigned int toff;
unsigned int i=0;
unsigned int j=0;
unsigned int flasher=0x00010000;

void delay(int count1)// Delay
   {
      while(count1 > 0) {count1--;} // Loop Decrease Counter
   };
   
void SW_PWM()
   {
     
      toff = f-ton;
      IOSET1 = flasher ; // Set Pin P1.16 (OFF LED)
      delay(ton); // Display LED Delay
      IOCLR1 = flasher; // Clear Pin P1.16 (ON LED)
      delay(toff); // Display LED Delay   display();
                     
   };
   


void ADC()
   {
     
            unsigned int val=0;
         unsigned int temp=0;
      AD0CR |= 0x01000000;// Start A/D Conversion
      do
         {
            val  = AD0GDR;// Read A/D Data Register
         }
            while ((val & 0x80000000) == 0);//Wait for end of A/D Conversion

      AD0CR &= ~0x01000000;//Stop A/D Conversion */
      temp = (val >> 6) & 0x3FF;            
       ton=temp;
   
   };





int main(void)
   {
     
      PINSEL2 &= 0xFFFFFFFC; // Set GPIO1.16 = GPIO Function
      IODIR1 = 0x00FF0000; // Set GPIO1.16 = Output
      PINSEL1 = 0x01000000;//Select AIN1 */
     IODIR1  = 0xFF << 16;//LED's defined as Outputs */
     AD0CR   = 0x00200E02; //ADC: 10-bit AIN1 @ 4MHz */
   
      while(1) // Loop
      {   
         
         ADC();
         SW_PWM();
         
      
     
      };
   };


Upam, da bo tolele še komu pomagalo pri učenju programiranja z ARM7.


LDŽ

_________________
Baje sem inteligentna baraba ... FAE@Silica Slovenia (=
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
janbar
Član
Član



Pridružen-a: Sre 15 Nov 2006 17:59
Prispevkov: 81
Aktiv.: 0.38
Kraj: Ig

PrispevekObjavljeno: Ned Dec 20, 2009 5:07 pm    Naslov sporočila:   Odgovori s citatom

Imam razvojno ploščico LPC2103 in sem testiral ADC.
A je normalno, da vrednost meritve 1 zazna šele pri cca 20mV namesto 3.3V/1024(3.2mV)?
Sodeč po par meritvah je v spodnjem področju povprečna vrednost 1 LSB precej velika

Koda:

Vrednost ADC - vrednost 1 LSB
1                   0,02V
5                   0,006V
20                  0,0041V
50                  0,0035V
100                 0,0034V
200                 0,0033V
500                 0,0032V
1000                0,0032V
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3 ... 9, 10, 11, 12  Naslednja
Stran 10 od 12

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group