smart kartı proğramlama ve okuma

Başlatan Mustafa48, 28 Ekim 2004, 14:46:57

Mustafa48

Arkadaşlar bu forumun yeni üyesiyim Pic proğramlamaya yeni başladım. Henüz işin başında sayılırım. Elimde değişik smart kartlar var encok kullandığım gold kart içinde 16f84 var birde 24lc16B var 24c16b nin kapasitesi 2K Sizlerden yardım istiyorum Bu smart karta proğram yazıp bunu harici bir Pic 16f84a e okutmak ve değişik fonksiyonlar yapmak. Smart kart proğramlayıcım var Epromu ve flash ı ayrı ayrı yazabilirim. Sorun smartkarttaki bilgiyi nasıl okuyacağım ve bunu diğer pic üzerinde nasıl işlem yaptıracağım. Bu konularda bilgi verirseniz sevinirim. İlgilenen tüm arkadaşlara teşekkürler.

falconbu

smart kartla ben geçen yıl uğraştı. senden tek farkım ben 16f877 ve 24c02 entegresi kullandım.senin entegrelerinden fazla bir fark yok.smat kart için i2c protokolünü kullanacaksın.pic ile entegreni tek bir kabloile birbirine bağlayacaksın. bunu programlama içinse pic'in datasheet'ine bak. oprada i2c için neleri ayarlaman gerektiği yazıyor.şimdilik bunlara bak daha sonra tekrar görüşürüz.

Mustafa48

I2C read veya write protokolunda kontrol satırı var 24LC16B için kontrol bit olarak %1010bbb0 olarak belirtiyor (bbb blok seçim) Şimdi anlamadığım konu şu smart kartın içindeki pic e ulaşmak için neden 24lc16 nın kontrol bitlerini kullanacağım. Bu işe yeni başladığım için çok acemiyim. Yardımların için teşekkür ederim  Saygılar

fsan



24LC16B - I2C EEPROM 16K ( 8 x 256 x 8 )





Burada yapman gereken tek sey PIC'e asagidaki gibi bir yöntemle cod yazmak

yukarida smartcard semada pic-16f628 in i2c hatti pinleri:
sda var PORTB.4 ' rb4 (pin10) eeprom'un sda pine bagli
scl  var PORTB.5 ' rb5 (pin11) eepromun scl pine bagli

addr VAR BYTE
' Remember that the type of VARIABLE addr must match the requirement for the device you are addressing... eg it's a WORD for devices like a 24LC32 or 24LC64, but it's a BYTE for other devices like a 24LC16 or DS1307 RTC. Check your device Datasheet.

cont VAR BYTE
data VAR BYTE

addr=0
cont=$a0

24LC16B ye yazmak icin:
I2CWRITE sda, scl, cont, addr, [data]
PAUSE 10
' buradaki pause 10, harici eeprom larin bazilarinda yazdirma isleminden sonra bekleme süresi normalde datasheet lerinde bu sürenin nekadar olmasi gerektigi yazilidir

24LC16B den okumak icin:
I2CREAD sda, scl, cont, addr, [data]

Not:
yukaridaki örnek  24LC16B de sadece 0 ile 255 arasindaki (birinci block) adresleri icin gecerli..
256 ile 2047 arasi (2-8 block) adreslere yazdirip okutmak icin b1,b2,b3 block bitlerini degistirmek gerekir.
örnek:
cont = %1010bbb0
burada "bbb" yazan yer 000 oldumu block 1 secilir 111 oldumu block 8  secilir


http://www.edutek.ltd.uk/Binaries/Datasheets/Micro/24LC16B.PDF

kolay gelsin

Mustafa48

sağol üstadım bendeki smart kartta (goldcart) 16f628 yerine 16f84 var fakat herhangi birşey değişmeyeceğini sanıyorum Şimdi çalışmalara başlıyorum Yine sorularım olacak teşekkür ederim iyi çalışmalar