Arama butonu
Bu konudaki kullanıcılar: 1 misafir
37
Cevap
1206
Tıklama
0
Öne Çıkarma
Cevap: PICkit2 Programmer to go hafıza çiplerini SPI flash yapma (2. sayfa)
İ
geçen yıl
Yarbay
Konu Sahibi

Teşekkürler.

MPLAB IDE üzerinde C18 C Compiler'ını kullanıyorum.

Programdan aldığım hafıza kullanım görüntüsü, sağdaki data memory yazan bölüm ağzına kadar dolu şu anda.

< Resime gitmek için tıklayın >

Şu anda test etmeye hazır bir hex üretmeyi başardım.

AddrExtEE fonksiyonunda arka arkaya üç adet if kullandım. Bunun yerine switch case kullansam daha mı olurdu?

https://drive.google.com/file/d/1y9LSFFje1e4tEY6b-C0LzeERDQc587vY/view?usp=drive_link





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 20 Mart 2024; 11:6:28 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

quote:

AddrExtEE fonksiyonunda arka arkaya üç adet if kullandım. Bunun yerine switch case kullansam daha mı olurdu?

if(deger == kosul1)
{
// yapılacaklar
}
else if deger == kosul2)
{
// yapılacaklar
}
else if (deger == kosul3)
{
// yapılacaklar
}



şeklinde bir kullanım ile switch case kullanım arasında bir fark yok. Kod okuma kolaylığı açısından hangisi sizin kolayınıza geliyorsa onu kullanın.

3 adımlı karşılaştırma çok uzun değil onun için fark etmez ama çok uzun karşılaştırmalarda switch case yapısınını kullanmayı tercih diyorum.


if(deger == kosul1)
{
// yapılacaklar
return;
}
if deger == kosul2)
{
// yapılacaklar
return;
}
if (deger == kosul3)
{
// yapılacaklar
return;
}


bu tarz bir kullanımda (else if yapısını kullanmıyorsanız) koşul1 sağlandığında diğer durumları kontrol etmesine gerek kalmadan alt programdan çıkacaktır. Koşulların durumuna göre bir nebze performans kazancınız olur ama sizin projenizde aradaki farkı fark etmezsiniz :) Bu durumda en çok sorguladığınız koşulu en başdaki if yapısına almak mantıklı olacaktır. Her seferinde 3 koşuluda sorguluyorsanız, koşulların sırasının bir önemi yok.


Bu mesaja 1 cevap geldi.
İ
geçen yıl
Yarbay
Konu Sahibi

Teşekkürler.

Burada return nereye dönüyor?
quote:

if(deger == kosul1)
{
// yapılacaklar
return;
}


Anladım galiba. AddrExtEE fonksiyonunda ilk ifte bulduğu değeri döndürüp, AddrExtEE'den çıkıyor. Diğer iflere bakmıyor.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 22 Mart 2024; 14:8:57 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

Altprogramdan çıkmaya yarıyor. Aşağısındaki kodlar çalışmıyor.


Bu mesaja 1 cevap geldi.
İ
geçen yıl
Yarbay
Konu Sahibi

PICkit2'ye winbond SPI flash bağladım. Pk2go ile PIC18F2455'e hex atmaya çalışarak ilk denemelerimi yaptım. Bir yerler çalışmıyor. Butona bastıktan kısa bir süre sonra busy üçlü atımlar halinde yanıp sönmeye başlıyor.

İlk şüphelendiğim yer silme rutini. Daha önce SPI flashlar ile çalıştığım için biliyorum. Flashların dahili silme prosesi en az 5 10 saniye süren bir işlem.

Ama hex dosyasını gönderip sonraki sayfada download yapınca hemen işlem tamamlandı PICkit2'yi çıkarın diyor. Normalde en az 5 10 saniye sürmesi gereken işlem 1 saniye bile sürmüyor.

Kullandığım SPI flash'ı çıkarıp dışarda okuttuğumda içerisindeki eski verilerin silinmemiş olduğunu gördüm.

< Resime gitmek için tıklayın >
Videoyu izlemek için tıklayınız
Olağan şüphelilerden biri de TXS0108E lojik seviye dönüştürücü. SPI flash 3.3v olduğu için 5V'a çevirmek için araya dönüştürücü atmak gerek.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 23 Mart 2024; 19:3:13 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

Adım adım hatayı arayın bence.
İçine silmeyi test edeceğiniz bir kod ekleyin. Pc yazılımı ile uğraşmadan silme işleminden emin olun. Sonra diğer aşamalara geçersiniz. Evet dediğiniz gibi bende yanlış hatırlamıyorsam 25QXX serilerinde silme işlemi 5-10 saniye kadar zaman alabiliyor.

TXS0108E dokümanı pusp-pull ve open-drain çalışmada hız farklılığından bahsediyor. Bir kontrol etmenizde fayda var. 1.2mbit yavaş kalıyor olabilir.


Bu mesaja 1 cevap geldi.
İ
geçen yıl
Yarbay
Konu Sahibi

Son anda bir şeyi fark ettim. TXS0108E'nin OE pini yüksekken çalışıyormuş.

Normalde OE pinleri active low olur. Böyle olmasına alışkınızdır. Ben de bu şekilde düşünüp OE'yi gnd'ye bağlamıştım. Bu nedenle modül iletim yapmıyormuş. Datasheeti dikkatli inceleyince jeton düştü. Burayı düzelttim. TXS0108E'yi dışarda test ettim, çalışıyor.

Txs0108e push-pull modunda 100mb'lere kadar çıkabiliyormuş.

Ama genel sorun halen devam ediyor. Bu sefer seviye dönüşümünü gerilim bölücü ile yapacağım. PIC'e giren hatta da tekli tristate buffer koyacağım sadece.

Ekleme: Diğer PICkit2'nin lojik tool'u ile test PICkit2'sinin SPI sinyallerini yakalamaya çalıştım. Hiç bir sinyal göremedim. Özellikle Download to PICkit2 aşamasında bir sinyal almam gerekirdi.
EEEPROM çıkışlarında sinyal yok. Neden böyle oldu?





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 24 Mart 2024; 17:57:17 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

Üstadım özel mesaj gönderdiniz ama benim özel mesajlari okuma ve cevap verme yetkim kapali. Sakıncası yoksa konu içerisinden veya yeni konu açarak devam edebiliriz



< Bu ileti mobil sürüm kullanılarak atıldı >

İ
geçen yıl
Yarbay
Konu Sahibi

Pk3 devre kartının önlü arkalı net resmini gönderebilir misin? Onun da klonunu yapmak istiyorum. Kart üzerinde çok fazla parça olduğundan, eleman dizimi konusunda orjinal karttan kopya çekmek istiyorum. Özellikle arka yüzü önemli, şemadaki bazı parçalar ön tarafta görünmüyor, muhtemelen arka taraftalar.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 10 Nisan 2024; 8:41:39 >

< Bu ileti mini sürüm kullanılarak atıldı >

R
geçen yıl
Binbaşı

Programlayici ofisde bayramdan sonra paylasirim.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
İ
geçen yıl
Yarbay
Konu Sahibi

Teşekkürler. Detaylı yakın çekim resimler de atarsan güzel olur. Bir de hafıza çiplerinin kodları şemada yazmıyor. Onları da paylaşabilir misin?



< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

İ
geçen yıl
Yarbay
Konu Sahibi

Çok teşekkür ederim hocam.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 15 Nisan 2024; 14:45:2 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
İ
geçen yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >

Bu kadar yapabildim.



< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

Elinize sağlık. Bir öneri giriş usb portunda micro-usb yerine type-c kullanmayı değerlendirin :) Yine usb 2.0 gibi çalışacak sadece fiziksel bağlantı için type-c soket ve kablo kullanılacak.


Bu mesaja 2 cevap geldi.
İ
geçen yıl
Yarbay
Konu Sahibi

Type-C düşünebilirim, ama bacak arası çok dar olduğu için elde lehimlemesi zor olur.
Daha birtakım eksiklikler var gibi. Onları da tamamlamam lazım.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 6 Mayıs 2024; 21:17:19 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
İ
geçen yıl
Yarbay
Konu Sahibi

Hocam siz ikisini de kullanmış adamsınız. PICkit™2 ile PICkit™3 (MPLAB olmayan) arasında hız ve genel performans olarak fark var mı?

PICkit™3'te target LED'ini kaldırmışlar. Onu geri eklemeyi düşünüyorum.





< Bu mesaj bu kişi tarafından değiştirildi ipli jeton -- 9 Mayıs 2024; 15:41:6 >

< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rafet32
R
geçen yıl
Binbaşı

Uzun zamandır microchip ürünleri ile pek işim olmuyor ama, elimde her iki programlayıcıda çok uzun zamandır var. Elim sürekli Pickit2 ye gidiyor(du), desteklediği işlemcilerde bana görer daha pratik (yazılım yükleme ve seri debug ekranı). Sanırım v3 de seriport debug kısmı yok diye hatırlıyorum. V2 deki seri debug ekranını zamanında çok fazla kullandım. Harici bir seriport dönüştürücüye gerek kalmadan geliştirme aşamasında bazı durumları "print" edip sonucu zahmetsiz görmek büyük kolaylık sağlıyordu.

Birkaç projede pickit2 nin desteklemediği mcular ile işim olmuştu o zamanlarda v3 ü kullandım. (V2 nin device list dosyası editlenip yeni mcu eklenebiliyor, bir iki sefer yaptım sonra uğraşmamak için v3 temin ettim)

V3 ü ilk zamanlar mplab arayüzü ile kullandım, sanırım ondan dolayı bir ön yargı oluştu, sonradan pickit2 yazılımına benzer bir tool geliştirmişler ona geçtim, ama microchip ile işim olunca hemen "siyah" olana elim gidiyor

Bende hala v2 favori :)

Her iki programlayıcıda led sayıları ve konumları aynı ama kapak üzerindeki isimlendirmeleri farklı

V2 led > V3 led
Power > Power
Target > Active
Busy > Status


Bu mesaja 1 cevap geldi.