NXP LPC Başlangıç Soruları

Başlatan cengav4r, 05 Aralık 2014, 16:46:41

cengav4r

Elimde ARM'a başlamak için LPC1768 - LPC1769 Geliştirme kartları var. LPCxpresso'yu yükledim ancak daha ilerisine gidemedim. İnternette C ile ilgili kaynak yok gibi. Biraz sorum var. Bilgisi olan bilgisi dahilince yazarsa bu gariban çok memnun olacak.
1. Nerden başlamamı tavsiye edersiniz,
2. C mi, C++ ile mi başlamalı?
3. Adım adım gidebileceğim bir kaynak var mı?
4. LPCxpresso örnekleri C++ ile mi yazılmış (yoksa bana mı karışık görünüyor)?
5. LPCxpresso ya da Keil hangisine başlayayım (ileriye yönelik)?
6. LPC17XX için giriş-çıkış portları, kesme, timer gibi kavramları nerden öğrenebilirim?
7. Elinde "ARM Microcontrollers 1 Bert van Dam" kitabının pdfi, türkçe-ingilizce çer-çöp ne varsa olan (linkini) paylaşabilir mi?
8. Proteus ile simulasyon yapma imkanı var mı?
9. Example'ı debug yapıp board'a yüklemeye çalıştığımda "licence does not permit flash operations from command line" hatası alıyorum???
10. Bu sevdadan vazmıgeçem?


cengav4r

@ambar7 hocam, linkleri önceden göz gezdirmiştim. Uygulamalar Keil ile C kullanılarak yapılmış, tekrar okumaya başlıyorum. Tşk.

MC_Skywalker

Bariş Samancı'nın dersnotlarını LPC2138 kullanaraka Proteus ile sorunsuz simulke ettim. 8.0 versionunda sıkıntı var simule ederken sorun oluyor.
Keil ile program yazmaya çalışıyorum. LPCExpresso ile yazmaya alışamadım. alışmaya çalışıyorum.

[IMG]http://imageshack.us/a/img835/5043/screenvsx.jpg[/img]


Barış Samancı'nın dökümanlarındaki konular ve örnekler ARM7 için fakat çok az değişiklikle aynı kodu Cortex-M serisinde de kullana bilirisin
ARM7 (LPC2xxx) örneği;

#include <LPC21xx.H> 						//islemcinin kaynak dosyasi ekleniyor.
/* Gecikme Fonksiyonu */
void Gecikme (long int sure)
{
long int i,k;								// 16 bitlik i degiskeni tanimlaniyor.
for (i=1;i<=sure;i++) 						// girilen deger i degiskeninden büyük olana kadar for içerisinde dön
	{
		for (k=0;k<=12000;k++)
		{}
	}
}
/* Ana Fonksiyon */
int main (void) {
IODIR0 = 0x00000001; 						//giris cikis ayarlama komutu 1 cikis 0 giris
											// 1. biti cikis digerleri giris
while (1)
	{										//sonsuz döngü
		IOSET0 = 0x00000001; 				//1. biti 1 yap
		Gecikme(500); 						//bekleme yap (yaklasik 500 msn - 12Mhz de)
		IOCLR0 = 0x00000001; 				//1. biti 0 yap
		Gecikme(500); 						//bekleme yap (yaklasik 500 msn - 12Mhz de)
	}
}


Cortex-M3 (LPC17xx) örneği;
#include <LPC17xx.H> 						//islemcinin kaynak dosyasi ekleniyor.
/* Gecikme Fonksiyonu */
void Gecikme (long int sure)
{
long int i,k;								// 16 bitlik i degiskeni tanimlaniyor.
for (i=1;i<=sure;i++) 						// girilen deger i degiskeninden büyük olana kadar for içerisinde dön
	{
		for (k=0;k<=12000;k++)
		{}
	}
}
/* Ana Fonksiyon */
int main (void) {
LPC_GPIO1->FIODIR = 0x000000FF; 						//giris cikis ayarlama komutu 1 cikis 0 giris
											// 1. biti cikis digerleri giris
while (1) 
	{										//sonsuz döngü
		LPC_GPIO1->FIOSET = 0x00000001; 				//1. biti 1 yap
		Gecikme(500); 						//bekleme yap (yaklasik 500 msn - 12Mhz de)
		LPC_GPIO1->FIOCLR = 0x00000001; 				//1. biti 0 yap
		Gecikme(500); 						//bekleme yap (yaklasik 500 msn - 12Mhz de)
	}
}



pax

Nxp lpc ye sıfırdan baslamak isteyenler için  hangi gelistirme  kartini onerirsiniz

MC_Skywalker

bu  linkteki http://www.expkits.com/?s=exlpc64.htm ürünü seri porttan flashmagick programı ile programlayarak kullanıyorum. ayrıca elimde çin malı ulink 2 var

cengav4r

#6
LPCxpresso kurdum, örnekleri denerken, license hatası alıyorum.
"License does not permit flash operations from the command line". Kaldırıp tekrar kurduğumda (muhtemelen ilk kurduğumda da aynı mesajı vermişti) cscript.exe ilgili PATH'de değil diyor.
C:\Windows\SysWOW64 ve C:\Windows\System32 klasörlerinde var. Düzgün çalışıyor. Tekrardan kurmaya çalıştığımda cscript.exe PATH hatası alıyorum. Ne yapmam lazım?
Yeni hatam;
"License restriction: Flash image too large for this license."


MC_Skywalker

LPCExpresso yu sitesine kayıt ettin mi? kayıt ettiğinde 256Kb sınırlı lisanlı bir ürün oluyor. kayıt ettirmediysen düzgün çalışmıyor.

berkay_91

arkadaşlar banada yardım edin, bende 1 ay önce Expkitten LPC1768 aldım header board ile birlikte ve ardından aliexpress den getirdiğim mini isp kablosuyla, FLAS MAGİC programıyla keilde derlediğim hex kodlarını gönderirim dedim ama olmadı ne yaptıysam flash magic isp yi tanımadı sürekli Operation failed. Failed to auto baud - step 1. see hatasını verdi. bilen varsa bi yardımcı olsun lütfen. aldığım 2 ürününde resmini koydum






MC_Skywalker

Falshmagic programı RS232 ile profgram atmakta MCU nun 1 nolu seri portunun RX/TX pinlerini kullanıp basit USB<->RS232 cevirici ile program yüklersin. Dikat etmen greken MCU3.3V olduğu için kullanacağın dönüştürücu ona uygun olmalı yada kendin ara 3.3V uyarlama yapacaksın.

http://www.flashmagictool.com/ de ekran görüntülerinde ayaraları kontrol etmende fayda var.

berkay_91

sadece isp yi takıp flaş magic te blank check yaptırdığımda söylediğim step 1 hatası çıkıyor, elimdeki isp de 3.3 volt besleme çıkışı var lpc1768 için

hgs

Mcunun çaışması için gereken bağlantıları tamamladınmı ? Besleme, kristal vs.

cengav4r

@MC_Skywalker, evet siteden kayıt yaptırdım. Free edition olmuştu.
@gerbay, dosyaları attım, "LPCXpresso (Pro Edition) is fully activated" yazısı geldi. Ellerine sağlık.
@berkay_91, projeni LPCXpresso 'fan Flash Programı kullanarak deneyebilir misin? Ne hatası alacaksın? (Gerekli bağlantıları yaptıkdan sonra)
Herkese ayrı ayrı teşekkür ederim. Benim hatam; başlangıçta cscript.exe hatası veriyordu programı kurarken ilgili klasörü bulamıyorum diye. şimdi düzeldi.
Bu önişlemçi fonksiyonları falan nerden öğrenebilirim?


berkay_91

12 MHZ kristal ve 6 tane gnd ve vcc gerekli yerlere(3.3 v) bağlandı hala aynı hatayı veriyo dolayısıyla herhangi bir şekilde program yükleyemiyorum

MC_Skywalker