AVR ile ilk projem

Başlatan fatihvelid, 02 Haziran 2008, 12:24:15

fatihvelid

AVR konusunda yeniyim. Yani ilk defa AVR ile proje yapıyorum.

Daha önce PIC16,PIC18 ile ileri düzeyde projelerde yaptım.

Atmega128 ile 64 byte'tı adresleyip erişebileceğim bir external ram uygulaması yapmak istiyorum.

ALE, NRD,NWR,CS pinleri ile 8-bit data/adress pinlerini kullanmak istiyorum.

Konuyla ilgili örnek, şema, code aradım bulamadım.

Elinde bir örneği olan paylaşabilir mi?

Uygulamayla ilgili döküman, örnek proje,şema arıyorum.
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

Yukarıda belirttiğim şekilde ilgili bölgeyi adresledim.

AVR studio 4 ile AVR GCC kullanıyorum.

SRAM bölümünü ayrı bir uygulama içini ayırmak ve başka fonksiyonların burayı kullanmamasını sağlamak istiyorum.

Kısacası internal yada external belleğin istediğim alanlarını nasıl reserve edebilirim?
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

8Mhz, 10 Mhz ve 16 Mhz hızlarında ATmega128 ile 115200 baud-rate hızında haberleştiğimde, yüzdelik hata oranı yüksek çıktığından  datalar bozuk geliyor.

Atmega128 ile 115200 baud-rate hızına çıkmak mümkün değil mi?
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

Erol YILMAZ

Alıntı yapılan: "fatihvelid"8Mhz, 10 Mhz ve 16 Mhz hızlarında ATmega128 ile 115200 baud-rate hızında haberleştiğimde, yüzdelik hata oranı yüksek çıktığından  datalar bozuk geliyor.

Atmega128 ile 115200 baud-rate hızına çıkmak mümkün değil mi?

Osilator kaynağı olarak ne kullanıyorsunuz ?

fatihvelid

internal RC 8Mhz, HS external 10 Mhz ve  HS external 16 Mhz kristallerini denedim. Maximum 57600 baud-rate hızına çıkabildim.

Müsaadenizle birşey daha sormak istiyorum. İncelediğim birçok devrede ZM3364 reset chipi kullandıklarını gördüm. Bu reset chipini yurtiçinde bulabileceğimi sanmıyorum. Yerine klasik reset devresi kullansam bir problem çıkar mı?

Uygulamayı mikroelektronika'nın UNI-DS3 deneme kitinde yapıyorum. Devre şeması aşağıdaki gibi.

Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

bmutlu

osc ni  11.0592 MHz veya 14.7456 MHz kristal kullanirsan 2400 - 230.4k arasındaki baud hızlarında problem yaşamassın bu kristallerde baud hızının elde edilmesinde hata oluşmamaktadır.

fatihvelid

Alıntı yapılan: "bmutlu"osc ni  11.0592 MHz veya 14.7456 MHz kristal kullanirsan 2400 - 230.4k arasındaki baud hızlarında problem yaşamassın bu kristallerde baud hızının elde edilmesinde hata oluşmamaktadır.

Teşekkürler
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

Devre üzerinde programlayabilmek için ISP pinlerini (MOSI,MISO,SCK,RESET,GND,VCC) arada doğrudan connektöre taşısam bir problem olmaz herhalde.

PIC ile devre üzerinde programlama desteği verirken MCLR ucuna diyot koyuyordum ki, 13V'luk gerilim VCC üzerinden ters akmasın diye.

AVR'de sanırım böyle bir önlem almaya gerek yok.

Aytıca Usbasp www.fischl.de programlayıcısını yapmaya karar verdim.
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

microcozmoz

Daha önce PİC ileri seviye projeler yaptığınızı belirtmişsiniz.. Bu sefer Atmel seçmenizin nedeni nedir? Projeye bağlı bir seçimmi yoksa başka nedenler varmı?
"Bütün bu şerâitten daha elîm ve daha vahim olmak üzere, memleketin dahilinde, iktidara sahip olanlar gaflet ve dalâlet ve hattâ hıyanet içinde bulunabilirler."

controller

@fatihvelid

sana bir hatırlatma yapayım, belki gözünden kaçabilir. ATMEGA128 de donanımda kullanılan SPI pinleri ile programlamda kullanılan SPI pinleri farklıdır. datasheet ten inceleyebilirsin.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

fatihvelid

Alıntı yapılan: "microcozmoz"Daha önce PİC ileri seviye projeler yaptığınızı belirtmişsiniz.. Bu sefer Atmel seçmenizin nedeni nedir? Projeye bağlı bir seçimmi yoksa başka nedenler varmı?

AVR'yi seçmemin en önemli, sebebi Hardware external RAM desteği veriyor olmasıdır. Aslında projeye göre seçim de diyebiliriz. C komutlarıyla External RAM içn driver desteği olmaksızın erişebilmek programlama kolaylığı sağlıyor.

AVR'nin PIC'ten bazı üstünlükleri var.

Örneğin PIC 4 cycle'da 1 komut işlerken AVR 1 cycle'da 1 komut işliyor. Diğer bir ifadeyle Atmage128 16 MHz'de 16 MIPS, PIC18 40 MHz'de 10 MIPS hızında çalışıyor.
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

Alıntı yapılan: "controller"@fatihvelid

sana bir hatırlatma yapayım, belki gözünden kaçabilir. ATMEGA128 de donanımda kullanılan SPI pinleri ile programlamda kullanılan SPI pinleri farklıdır. datasheet ten inceleyebilirsin.

Hocam burayı biraz daha açarmısınız. Yani aşağıdaki devrede bir hata var mı?

Programlamada JTAG kullanmayacağım sadece ISP ile programlayacağım. Programlama da JTAG kullanmak debug dışında bir üstünlüğü sağlar mı?





Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

controller

Alıntı YapHocam burayı biraz daha açarmısınız. Yani aşağıdaki devrede bir hata var mı?

evet var. ISP olarak kullandığın J4 konnektöründeki PB2 ve PB3 e bağlı olan MOSI-MISO uçlarını, PE0 ve PE1 deki PDI-PDO ile değiştirmen lazım.
bu şekilde programlama yapamazsın.

programlamada ISP yerine JTAG kullanmak debug dışında fazla üstünlük sağlamayabilir. ancak debug ı yabana atma. sadece debug özelliği bile JTAG kullanmak için yeterlidir.

birde yanlış fuse ayarlarından dolayı ISP ye erişemezsen ve JTAG ENABLE aktifse, JTAG den chip e erişebilirsin.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

fatihvelid

Alıntı yapılan: "controller"
Alıntı YapHocam burayı biraz daha açarmısınız. Yani aşağıdaki devrede bir hata var mı?

evet var. ISP olarak kullandığın J4 konnektöründeki PB2 ve PB3 e bağlı olan MOSI-MISO uçlarını, PE0 ve PE1 deki PDI-PDO ile değiştirmen lazım.
bu şekilde programlama yapamazsın.

programlamada ISP yerine JTAG kullanmak debug dışında fazla üstünlük sağlamayabilir. ancak debug ı yabana atma. sadece debug özelliği bile JTAG kullanmak için yeterlidir.

birde yanlış fuse ayarlarından dolayı ISP ye erişemezsen ve JTAG ENABLE aktifse, JTAG den chip e erişebilirsin.

Hocam çok sağolun. Son anda kritik bir hata yapmaktan kurtardınız.

ISP'yi iptal edip JTAG kullanayım mı? Bildiğiniz AVR USB-JTAG var mı?
Kainatta her canlı "DNA" diliyle yazılmış bir programdır...

fatihvelid

Programlamak için ISP desteğini kaldırarak sadece JTAG desteği vermeyi düşünüyorum.
Aşağıdaki devreye FT245 ile USB desteği vereceğim inşaallah.

Laptopta gerilimle ilgili problem çıkabilir. Ama dışarıdan adaptor ile gerilim takviyesiyle problem çözülür diye düşünüyorum.

Kainatta her canlı "DNA" diliyle yazılmış bir programdır...