STR 711F ve LPC2148F

Başlatan bunalmis, 03 Eylül 2006, 02:37:24

mp3dragon

Keil;
--> New project-->(projeye isim ver, işlemci seç,işlemci hızı seç, derleyici seç-CARM, startup.s ekleyeyim mi? diye sorar ekle de kaydet kapat)-->File-->New-->(örn. deneme.c)-->project-->companent, env. books, add deneme.c--> build all

options for target-->output--> create HEX file seçili olsun!!!


led yakıp söndürme aşağıda, p1.24 nolu pin için ayarlandı. delay rutinindeki süreyi arttırıp azaltman gerekebilir.

#define  LED_PIN 	0x01000000

void feed(void)
{
  PLLFEED=0xAA;
  PLLFEED=0x55;
}

void delay_ms(int count){
  int i;
  count *= 3200;
  for (i = 0; i < count; i++){
  }
}


void InitBoard(void)  {

	
 
	// 				Setting the Phased Lock Loop (PLL)
	//               ----------------------------------
	//
	// Olimex LPC-P2106 has a 14.7456 mhz crystal
	//
	// We'd like the LPC2106 to run at 53.2368 mhz (has to be an even multiple of crystal)
	// 
	// According to the Philips LPC2106 manual:   M = cclk / Fosc	where:	M    = PLL multiplier (bits 0-4 of PLLCFG)
	//																		cclk = 53236800 hz
	//																		Fosc = 14745600 hz
	//
	// Solving:	M = 53236800 / 14745600 = 3.6103515625
	//			M = 4 (round up)
	//
	//			Note: M - 1 must be entered into bits 0-4 of PLLCFG (assign 3 to these bits)
	//
	//
	// The Current Controlled Oscilator (CCO) must operate in the range 156 mhz to 320 mhz
	//
	// According to the Philips LPC2106 manual:	Fcco = cclk * 2 * P    where:	Fcco = CCO frequency 
	//																			cclk = 53236800 hz
	//																			P = PLL divisor (bits 5-6 of PLLCFG)
	//
	// Solving:	Fcco = 53236800 * 2 * P
	//			P = 2  (trial value)
	//			Fcco = 53236800 * 2 * 2
	//			Fcc0 = 212947200 hz    (good choice for P since it's within the 156 mhz to 320 mhz range
	//
	// From Table 19 (page 48) of Philips LPC2106 manual    P = 2, PLLCFG bits 5-6 = 1  (assign 1 to these bits)
	//
	// Finally:      PLLCFG = 0  01  00011  =  0x23
	//
	// Final note: to load PLLCFG register, we must use the 0xAA followed 0x55 write sequence to the PLLFEED register
	//             this is done in the short function feed() below
	//
   
	// Setting Multiplier and Divider values
  	PLLCFG=0x23; // 12 mhz kristal ve 60 mhz cpu için 0x24 olacak 
  	feed();
  
	// Enabling the PLL */	
	PLLCON=0x1;
	feed();
  
	// Wait for the PLL to lock to set frequency
	while(!(PLLSTAT & PLOCK)) ;
  
	// Connect the PLL as the clock source
	PLLCON=0x3;
	feed();
  
	// Enabling MAM and setting number of clocks used for Flash memory fetch (4 cclks in this case)
	MAMCR=0x2;
	MAMTIM=0x4;
  
	// Setting peripheral Clock (pclk) to System Clock (cclk)
	VPBDIV=0x1;
   	
}


void main (void){
PINSEL2 |= 0x00000000;
InitBoard();

IO1DIR = LED_PIN; //pin P1.24 configured as output
While(1){
IO1CLR = LED_PIN; //P1.24 goes LOW 
delay_ms(1000);
IO1SET = LED_PIN; //P1.24 goes HIGH
delay_ms(1000);
}
for(;;);
}



not: pll 5x12 mhz=60 mhz için InitBoard fonksiyonundaki PLLCFG=0x23 satırı PLLCFG=0x24; yapılmalı
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

z

@mp3dragon

Sayende Keil'de yeni bir projenin yapilandirilmasini anladim. TC deki mantigin aynisiymis.

Keil icinde de JTAG programlama menusu var. Tahminimce pahali bir Jtag unitesi ile kullaniliyor? Bu jtag unitesinden bahsedebilirmisiniz? Mesela adi nedir fiyati ne kadardir?

H-Jtag da cipte Erase ve Blank islemlerini yaptirdim.

Ancak merak ettigim bir konu var. H-Jtag programinda password ve protection bilgisi ile ilgili menuleri goremedim.

Cipi yanlislikla protection moduna almak yada bilemeyecegim bir password ile şifrelermek kabus gibi bir sey olur.

Bununla ilgili neler soyleyebilirsin?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

@bunalmis,

Keil'in kendi jtag donanımı var 200-250 euro civarı adı Ulink. Ama H-Jtag'ın Keil'e tanıtılması lazım. Hjtag.dll diye bir dosya ile. Açıkçası jtag ile çok bir çalışmam olmadı. Seri port daha pratik geldi. (programlama için)

code protect seçeneği olması lazım, lpc toolsta bile bakmadım açıkçası.

kolay gelsin.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

EES

Philips Flash Utility programında protect fonksiyonu yok.Bu program yerine FlashMagic programını kullanabilirsin.
www.flashmagictool.com/

mikrocu

Merhaba değerli picproje üyeleri,

Formunuzu zaman zaman yakından takip etmeye çalışıyorum.

Aşağıdaki konu hakında sıkındınızı gidermek isterim.

Eğer benimle bağlantıya geçerseniz mazeme konusunda bir çok sorunuza yardımçı olmaya çalışırım.

saygılarımla...

Burda arrowdan söz edildiğinden bir sakınçası yoksa bende kendi şirketimin ismini vermek isterim MİKRO Elektronik her çeşit mazeme ihtiyaçınızı sorabilirsiniz. (  0216)380 32 17

LPC2148FBD6415         NXP        640 adet stoklarımda  var.

z

Win98 de H-Jtag'i kullanan varmi. 2000 de sorunsuz kullaniyorum ancak 98 de H-JTAG.DLL yuklenemiyor mesaji aliyorum. Bu dll'i nerede ise makinanin her bir kosesine kopyaladim yemiyor da yemiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

H-JTAG win98 problemini programin yazarina da sordum. Hala cevap gelmedi.

H-Jtag donanimini kullanabilen baska jtag programlari varmi? Varsa adlari neler?

Win98 de ARM icin jtag programi kullanan varmi?

@ISE bana yollamis oldugun jtag programinin adi neydi? Programin ismini hatirlayamadigim icin makinemde ne diye arayacagimi bilemiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

Alıntı yapılan: "bunalmis"
@ISE bana yollamis oldugun jtag programinin adi neydi? Programin ismini hatirlayamadigim icin makinemde ne diye arayacagimi bilemiyorum.


programın adı embest,
bir kaç gün önce vermiştim.

Alıntı yapılan: "mp3dragon"Embest jtag aşağıda;

http://rapidshare.com/files/23729954/embest_jtag_.rar.html


şimdi benden size bir soru;

jtag devresi 3.3 volt ile çalışıyorsa jtag devresindeki 74244 "HC" değil "LVC" olması gerekmez mi? Niye şemalarda 74HC244 veya 74244 diye vermiş? Siz devrenizde ne kullandınız?
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

z

Bu konu zamaninda benim de kafami fazlaca karistirdi. Cip dokumanlarina bakmadim. Eger ARM Jtag pinleri 5V kabul edebilen yetenekte ise JTAG devresine besleme, 5V dan alinabilir. Bu durumda LS244 de is gorur.

Ancak ben kafadan 5V sintal JTAG pinler icin tehlikelidir diye kabul yaptim. (Emin olmak icin dokuman karistirmak yerine adamlarin ARM kartlarda JTAG portuna  3V3 besleme getirmelerini gozonunde tuttum)

Bu durumda 3.3V ile beslenen HC244 bu uygulamada rahatlikla kullanilabilir. Ben HC kullandim. LVC serisini buralarda bulmam mumkun değil. HC serisi besleme gerilimi 2 kusur volta kadar inebiliyor. Girislere 100 Ohm bagli semalarda bu direncleri 180 Ohm yaptim. Koruma amaciyla direnc degerleri daha da yukseltilebilir ancak yuksek frekansli jtag sinyallerinin kenarlarinin yumusamasina neden olacagindan zamanlama hatalari gundeme gelebilir.

74LS244 3.3V da calisamayacagindan 3v3 ile beslenecek JTAG devresinde kullanilamaz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

@mp3dragon

embestjtagi yukledim. Kirma islemi nasil oluyor?

Kurukafa ikonunu tiklayip gelen menude Apply Patch butonuna bastigimda

Flashprogrammer.exe: missing or already opened! mesaji alirim.

Sorun nedir?

@ISE embest jtag devre semasi SIKISTIRILMIS dosyalardan birindeydi ve zamaninda hangisi oldugunu nasil acilacagini soylemistin. Bir daha soyleyebilirmisin?

Emin olmamakla birlikte mdl uzantili dosyalardan birisi ise bunlari tiklayinca microsoft visual modeler diye bir program aciliyor ve dosya hatali diyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

kurukafayı program files/ embest klasörünün içerisine at, orda çalıştır. Devre şeması helpin içerisinde
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

z

Kusura bakmayin cok soru soruyorum fakat bu kezde embestjtag icinde lpc2148'i goremedim. Programlam yukleme acisindan cipler arasindaki tek fark flash segmentlerin sayisi olmali diye dusunuyorum.

Eger fark sadece bu ise LPC2148 in tum segmentlerini programlayabilmek icin programda LPC2148 secenegi olmadigina gore hangi cipi seceyim?

Yalnis bir sey yapar da cipi bozarsam su anki sevki bir daha kisa surede bulamam.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

@bunalmis,
Embest 2148 i desteklemez. user manuallerden memory yapısına bir bak. 2138 ile bir fark yok diye biliyorum. Eğer öyle ise en azından flash yazımı çalışacaktır. bende 2138 yerine keil da 2148 seçip derleyince sorunsuz çalışıyor. Donanımlar dahil.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

z

@mp3dragon

Bu led sondurmenin Keil ornegi yokmu? (Keil daha pratik geldi.)

Kodu dogrudan FLASH icine atip calistirmak istiyorum.

Keil'n LPC2148 icin urettigi startup kodunda herhangi bir degisiklik yapmam gerekiyormu?

LPC2148 icin startup kodda hic bir degisiklik yapmadim.

Project->Option for Target1->Target

Xtal:12Mhz
Use on chip Rom (0x0...0x7FFFF) isaretli
Use on chip Ram (0x40000000...0x40007FFF) isaretli

Bu sartlarda led yanip sonmuyor.

Edit:

LED yanip sonmeye basladi. Calismaya baslama sebebini bilmiyorum.

#include <LPC214x.H>                            /* LPC21xx definitions */

void  main (void)  {
int i;

    IODIR1 = 0xFF000000;                      
    while(1)
	  {
	   for (i=0;i<100000;i++);
       IOSET1 = 0xFF000000;                   
	   for (i=0;i<100000;i++);
       IOCLR1 = 0xFF000000;                   
	  }
}
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mp3dragon

@bunalmis,
devre üzerinde denemedim ama keil da debug yapınca çalışıyor;

http://rapidshare.com/files/24972953/denemelpc2148.rar.html

startup dosyasında değişiklik yapmana gerek yok.

Keil gerçekten bir çok derleyiciye göre çok pratiktir.

Kolay gelsin
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.