|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.23 Kraj: Kranj - struževo
|
Objavljeno: Sob Dec 12, 2009 5:52 pm Naslov sporočila: |
|
|
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 |
|
Nazaj na vrh |
|
|
tonko Član
Pridružen-a: Sob 25 Jun 2005 13:45 Prispevkov: 541 Aktiv.: 2.43 Kraj: Črnomelj
|
Objavljeno: Sob Dec 12, 2009 6:17 pm Naslov sporočila: |
|
|
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 |
|
|
JamesQ Član
Pridružen-a: Čet 16 Nov 2006 12:05 Prispevkov: 362 Aktiv.: 1.71 Kraj: Novo mesto/Ljubljana
|
Objavljeno: Sob Dec 12, 2009 6:47 pm Naslov sporočila: |
|
|
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 |
|
|
aly Član
Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 42.23 Kraj: Kranj - struževo
|
Objavljeno: Sob Dec 12, 2009 7:48 pm Naslov sporočila: |
|
|
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 |
|
Nazaj na vrh |
|
|
. Član
Pridružen-a: Ned 19 Sep 2004 22:04 Prispevkov: 16777193 Aktiv.: 75311.17
|
Objavljeno: Sob Dec 12, 2009 9:31 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
|
Umnik Član
Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.30 Kraj: Novo mesto
|
Objavljeno: Sob Dec 12, 2009 9:57 pm Naslov sporočila: |
|
|
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 |
|
Nazaj na vrh |
|
|
Glitch Član
Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.73
|
Objavljeno: Ned Dec 13, 2009 1:05 am Naslov sporočila: |
|
|
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 |
|
|
Umnik Član
Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.30 Kraj: Novo mesto
|
Objavljeno: Ned Dec 13, 2009 1:08 am Naslov sporočila: |
|
|
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 |
|
|
Glitch Član
Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.73
|
Objavljeno: Ned Dec 13, 2009 2:27 am Naslov sporočila: |
|
|
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 |
|
|
Umnik Član
Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.30 Kraj: Novo mesto
|
Objavljeno: Ned Dec 13, 2009 2:45 pm Naslov sporočila: |
|
|
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 |
|
|
JamesQ Član
Pridružen-a: Čet 16 Nov 2006 12:05 Prispevkov: 362 Aktiv.: 1.71 Kraj: Novo mesto/Ljubljana
|
Objavljeno: Sob Dec 19, 2009 8:03 am Naslov sporočila: |
|
|
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 |
|
|
cfrik Član
Pridružen-a: Sre 24 Jan 2007 16:15 Prispevkov: 39 Aktiv.: 0.19 Kraj: Trbovlje
|
Objavljeno: Sob Dec 19, 2009 11:28 am Naslov sporočila: |
|
|
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 |
|
|
RGorazd Član
Pridružen-a: Čet 20 Maj 2004 15:57 Prispevkov: 1712 Aktiv.: 7.68 Kraj: Ig
|
Objavljeno: Sob Dec 19, 2009 4:37 pm Naslov sporočila: |
|
|
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 |
|
|
JamesQ Član
Pridružen-a: Čet 16 Nov 2006 12:05 Prispevkov: 362 Aktiv.: 1.71 Kraj: Novo mesto/Ljubljana
|
Objavljeno: Sob Dec 19, 2009 5:44 pm Naslov sporočila: |
|
|
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 |
|
|
janbar Član
Pridružen-a: Sre 15 Nov 2006 17:59 Prispevkov: 81 Aktiv.: 0.38 Kraj: Ig
|
Objavljeno: Ned Dec 20, 2009 5:07 pm Naslov sporočila: |
|
|
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 |
|
|
|
|
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: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|