lpcxpresson'da bazı pinler çıkış vermiyor?

Başlatan satilla, 06 Ekim 2011, 16:58:51

satilla

#include <LPC17xx.h>
#include "delay.h"

int main()
{
LPC_PINCON->PINSEL1 &=~(1<<22);
LPC_PINCON->PINSEL1 &=~(1<<23);
LPC_GPIO0->FIODIR |=(1<<22) | (1<<21) | (1<<27) | (1<<28);

// LPC_SC->PCONP |= (1<<6); //PWM yi ac
// LPC_SC->PCLKSEL0 |= (1<<13) | (1<<12); //PWM Clock kaynagina bagla
// LPC_PINCON->PINSEL4 |=1 ;  //Pini PWM cikisi icin ayarla	   P1.23
// LPC_PWM1->MR1 =1;


LPC_GPIO0->FIOPIN |=(1<<22) | (1<<28); //DIR
for(;;)
 {
LPC_GPIO0->FIOPIN |=(1<<21);  //Enable
LPC_GPIO0->FIOPIN |=(1<<27);
delay(5);
LPC_GPIO0->FIOPIN &= ~(1<<21);
LPC_GPIO0->FIOPIN &= ~(1<<27);
delay(5);
 }
}


hocamlarım yazıdgım kodada 0.21 pini çıkış veriyor ama 0.27 de çıkış yok bunu neden yapıyor, daha oncde bazı pinlerde bu sorunla karşılaştım

Burak B

#1
LPC1768 user manuai iyi incele. Kimi GPIO pinleri mevcut olmadığı gibi kimileri de open drain olabiliyor.

Manual P0.27 için

[1] Not available on 80-pin package.
[2] Pins P027] and P0[28] are open-drain for I2C-bus compliance.

diyor.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

satilla

Alıntı yapılan: ByteMaster - 06 Ekim 2011, 17:11:49
LPC1768 user manuai iyi incele. Kimi GPIO pinleri mevcut olmadığı gibi kimileri de open drain olabiliyor.

Manual P0.27 için

[1] Not available on 80-pin package.
[2] Pins P027] and P0[28] are open-drain for I2C-bus compliance.

diyor.

user manuali okudum ve işimi garantiye almak için pinsel bloğunu dahi ayarladım
100 pinlik mcu elimdeki zaten lpcxpresso'da bu pin gpio oalrak görünüyor (user manual'de)

i2c için open drain oldugu yazıyor, gpio işlemleri için kastetmiyor anladığım kadarıyla

sizde xpresso kart var mı?

Burak B

"... a healthy dose of paranoia leads to better systems." Jack Ganssle

z

Gene standart cumleyle başlayayım. Çipini tanımıyorum ve çipinin dokümanlarına bakmadım.

ARM çiplerde bazı pinler alternatif fonksiyonlara sahip olup bunlar reset ardından donanımsal olarak alternatif fonksiyonlara set edilir. Bu durumda portun bazı pinleri I/O iken diğerleri I/O olmaz.

Initialize aşamasında portun tamamını I/O ya çevirmezsen bahsettiğiniz durum oluşur.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

-Hasan-

bunalmis Hocam; Cortex M3 ile çalıştığınızı söylemiştiniz, siz hangi çipi kullanıyorsunuz?

satilla

Alıntı yapılan: bunalmis - 06 Ekim 2011, 19:48:27
Gene standart cumleyle başlayayım. Çipini tanımıyorum ve çipinin dokümanlarına bakmadım.

ARM çiplerde bazı pinler alternatif fonksiyonlara sahip olup bunlar reset ardından donanımsal olarak alternatif fonksiyonlara set edilir. Bu durumda portun bazı pinleri I/O iken diğerleri I/O olmaz.

Initialize aşamasında portun tamamını I/O ya çevirmezsen bahsettiğiniz durum oluşur.

mcu lpc1769
bende reset'den itibaren farklı olarak ayarlanabilir diye pinsel register'ından pinleri gpio olarak ayarladım
bunu baska portlardada yapması canmı sıkıyor

z

Stellaris serisinden LM3S9xxx ve LM3S5xxx  serisinden ciplerle calisiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

satilla

arkadaşlar sorunu çözdüm

i2c için pull-up yapılması gerektiği yazıyor datasheets'te ancak gpio olarak kullanabilmek için pull-up direnci eklemek gerekiyor

Burak B

#9
ehemm.  :)  Open-Drain diyor.  Datasheetleri iyi incelemek gerekiyor.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

satilla

Alıntı yapılan: ByteMaster - 07 Ekim 2011, 10:32:41
ehemm.  :)  Open-Drain diyor.  Datasheetleri iyi incelemek gerekiyor.

hocam
[2] Pins P027] and P0[28] are open-drain for I2C-bus compliance. cümlesinden sadece i2c için pull-up'a ihtiyacım olduğunu çıkardım :)

Burak B

#11
Sürekli olarak datasheetleri iyi incelemek gerekli dememin sebebi bu idi zaten. Orda I2C ile uyumlu olsun diye o çıkışı open-drain yaptık diyor. Aman dikkat demeye getiriyor birazda ;) Kendin sonuca varınca daha anlaşılır olmuştur.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

satilla

Alıntı yapılan: ByteMaster - 07 Ekim 2011, 18:14:50
Sürekli olarak datasheetleri iyi incelemek gerekli dememin sebebi bu idi zaten. Orda I2C ile uyumlu olsun diye o çıkışı open-drain yaptık diyor. Aman dikkat demeye getiriyor birazda ;) Kendin sonuca varınca daha anlaşılır olmuştur.

hocam biraz düşündüm ve o cümleden 4 anlam çıkardım, 500-600 sayfada bu yaklaşımda bulunursam sonum pek hayrlı olmaz :)