MSP430 için bellek önerileri


9

TI MSP430 ile bir ölçüm uygulaması geliştiriyorum ve ne tür bir bellek kullanabileceğime dair bazı öneriler duymak istiyorum.

Fikir, belirli bir süre boyunca oturum açmak için kullanmak ve daha sonra cihaz USB ile bağlandığında verileri bir PC'ye indirmek. Tahmin, her bir örnek yaklaşık 25 bayt veri olacak şekilde 5 MB'a kadar veri tutacaktır.

Basit bir EEPROM çipi yapar mı yoksa daha iyi bir şey var mı?


1
Görünüşe göre, çoğu zaman geçerli verilere sahip olduğunuz için cihazı açacaksınız. Pille yedeklenmiş bir SRAM, bir EEPROM'dan (veya daha iyisi, Flash) daha uygun değil mi?
Federico Russo

Yanıtlar:


7

Ben kullandım AT45D seri flaş yongalarının dizi. Silme / programlama için bir sayfa ayarlamak için dahili bir SRAM arabelleği vardır. SPI arayüzü veri giriş ve çıkış okumak için.


5

5MByte depolanacak çok fazla veri. USB üzerinden okumak, USB aygıt arabirimi yerleşik olarak yeni parçalardan birini kullandığınız anlamına gelir. Aksi halde USB'den seriye dönüştürücü (FTDI veya benzeri) kullanacaksınız ve asenkron seri ile sınırlı olacaksınız verileri okumak için veri hızları.

Bir SD bellek kartını MSP'ye bağlamayı, içindeki verileri saklamayı ve daha sonra saklanan verileri okumak için kartı bilgisayara taşımayı düşündünüz. Bu cihaza bir arayüz yazmadım ama çok fazla var.


Evet, gömülü USB'ye sahip parçalardan birini kullanacağım. İdeal olan MSC protokolünü kullanmak olacaktır, ancak bu projeme çok fazla karmaşıklık katıyor. Muhtemelen HID veri aktarım hızlarına karar vereceğim. SD kartları düşündüm ama su sıçramasına dayanıklı olması nedeniyle kasaya ekstra karmaşıklık katıyor.
Padu Merloti

2
Bu yolu öneririm, çünkü SD kartlar size en fazla depolama alanını verecektir. Şimdi 5MB diyorsunuz, ancak daha sonra isterseniz, seri flaş sınırlarını zorluyorsunuz (Ve EEPROM sınırlarının çok üzerindesiniz). Su yalıtımı bir sorunsa (ve uygun bir USB seçeneğiniz varsa, durum böyle görünüyor) SD kartınızı USB üzerinden okuyabilir ve kalıcı olarak kasanın içine koyabilirsiniz. SD kartı tahtaya lehimleyen bazı tasarımlar gördüm (Not: Bu işe yaradı, ancak tavsiye etmiyorum).
Kevin Vermeer

Anladım, mantıklı. Bu seçeneği düşüneceğim. Teşekkürler
Padu Merloti

SD arabirimi ile ilgilenen ve dosya sistemini uygulayan özel bir çip var mı veya hala MSP430 kullanarak bir dosya sistemi ve MSC sınıfı uygulamak gerekir?
Padu Merloti

@Padu - Bunun bir yorumdan biraz daha fazla odaya ve biçimlendirmeye ihtiyacı olduğunu hissettim, bu yüzden cevabımı bir cevap olarak ekledim.
Kevin Vermeer

3

Seri flaş bu uygulamada EEPROM'dan daha üstündür. Atmel harika bir kadro oluşturuyor . Seçiminiz büyük ölçüde iki şeye bağlı olacaktır: (1) Günlüklerinizi mikroda düzenleme / bölme gereksiniminiz ve (2) MSP430'daki RAM kullanılabilirliğiniz.

Flash, EEPROM'un aksine yalnızca 1'den 0'a yazılabilir. Verilerin 0'dan 1'e değiştirilmesi, parçanın genellikle sayfalar veya veri blokları için kullanılabilen bir bölümünün silinmesini gerektirir. Bu sayfayı RAM içine arabelleğe almanız, sayfayı silmeniz, RAM'de düzenlemenizi yapmanız ve daha sonra bir şeyi değiştirmek istiyorsanız geri yazmanız gerekir.

AT45D serisi, daha önce de belirtildiği gibi, mikrodenetleyici üzerinde RAM kullanmadan bu işlemi kolaylaştırmak için çip üzerinde RAM tamponları olan bir dizi parça sunar.

Sonunda, tüm seri pin uyumludur, bu yüzden 8-SOIC (150mil) ayak izini bırakın ve daha sonra farklı seçeneklere ihtiyacınız varsa parçaları değiştirebilirsiniz.


Söylediklerinize katılıyorum, ancak kaynağı silmeden önce değiştirmek istediğiniz baytları değiştirirken verileri kaynak flaş sayfasından hedef flaş sayfasına kopyalayabilirsiniz.
mjh2007

Kaynak ve hedefiniz aynıysa ve / veya boş bir sayfanız yoksa ne olur? Ayrıca, bu yavaştır: okuma komutu gönderme, adres gönderme, bayt okuma, gerekirse değiştirme, silme, yazma komutu gönderme, adres gönderme, bayt yazma, x256, x512 veya x4k tekrarlama. Diğer seçeneğiniz bir okuma komutu göndermek, okuma adresi göndermek, N döngü saati, değiştirmek istediğiniz baytları değiştirmek, silmek, yazma komutu göndermek, yazma adresi göndermek, N döngü saati. Bu, RAM arabelleğinin aldığı sürenin yaklaşık 1 / 3'ünü alır.
Kevin Vermeer

Bir veri kaydedicinin neden günlükleri mikroda düzenlemesi gerekir?
davidcary

@davidcary - Veri kaydediciniz uzun bir bayt akışını kaydetmekten başka bir şey yapmazsa, haklısınız - hiçbir zaman değişiklik yapmanız gerekmez. Sayfa / blok sınırlarını aşabilecek çeşitli yapılandırmalara veya günlük dosyalarına sahipse veya sonunda dosyadaki bir başlıkta değişiklik yapmak istiyorsanız, mevcut verileri silmeden belleği düzenlemeniz gerekir.
Kevin Vermeer

Bu noktada, sadece birkaç günlük dosyaları oluşturmam gerekiyor, bunları değiştirmeye gerek yok, kullanıcı cihazı USB'ye takıp indirdiğinde, o zaman eski günlüğü silmem (veya bu alanı tekrar kullanılabilir hale getirmem) gerekir.
Padu Merloti

2

AT25D serisini öneriyorum çünkü AT45D'den biraz daha kolay görünüyor. Biraz daha yavaş olmasına ve çok fazla veri aktarım seçeneği veya SRAM arabellekleri sunmamasına rağmen. Daha ucuz olma avantajına sahiptir ve veri kaydı gibi çoğu uygulama için hala yeterince hızlıdır.

5MB veriye ihtiyacınız varsa, genellikle 1Mbit paketlerde geldikleri için bir EEPROM'un çalışması olası değildir. Atmel'in flash yongaları 64 MB veya 8 MB'a kadar destekler.


1
Katılmıyorum. AT25D'deki en küçük silinebilir bölüm bir 4kB sayfasıdır ve az sayıda makroda bu kadar yedek RAM bulunur. Küçük (256 bayt) sayfa silme özelliğine sahip AT25FS serisi yongaları kullandım, ancak 5 MB'tan az. Arabelleğe alınan sisteme gitmek, RAM yönetimi hakkında endişelenmenize gerek olmadığı anlamına gelir. Tabii ki, günlüklerinizi düzenlemenize gerek yoksa, AT25 serisi iyi çalışır.
Kevin Vermeer

Evet, bir uygulamanın bayt yazması ve daha sonra bu baytı değiştirmesi gerektiğinde büyük silme sayfaları rahatsız edici olur. Ama neden bir veri kaydedicinin bunu yapması gerekiyor? Bana öyle geliyor ki, veri kaydı uygulamaları için, en küçük silinebilir bölüm 256 bayt veya 1 Megabayt ise fark etmez.
davidcary

1

[Bu Ian'ın cevabını takip eden yorumlara cevap olarak].
Bir SD kart sadece bir SPI cihazıdır, bu nedenle çip / arayüz gerekmez. Diğer protokoller arasında 2 telli bir arayüz (I2C gibi) ve 4 telli bir arayüz (karmaşık bir CRC ile) bulunur, ancak en yaygın kullanılan SPI'dır.

TI MSP430 için kullanılabilir bir SD kart uygulaması not var burada . Kısa, ancak örnek kod içerir. SD karttaki çeşitli sektörlere okuma ve yazma işlemlerini gerçekleştirir, bu da bir PC'ye takmayacaksanız istediğiniz her şey olabilir. Ayrıca Foust (önerilen) veya MSU'dan Evans tarafından yapılan bu uygulamalara da bakın .

Bir sektörü okumak ve yazmak için temel işlevlere sahip olduğunuzda, USB üzerinden basit, özel bir dosya sistemi soyutlayabilir veya mevcut bir dosya sistemi kitaplığını kullanabilirsiniz. FatFS , EFSL veya DOSF'lerin tümü, ikincisi için seçeneklerdir. Gerekli tüm işlevlerin uygulanması çok zor görünüyorsa, birkaçı dışında hepsinin saplama olabileceğini / olacağını unutmayın.

Ancak, dosya sistemi USB arabiriminizden bir dereceye kadar soyutlanacaktır. Gerçek bir dosya sistemi kitaplığınız varsa ve kartınız okunabilir bir dosya sisteminde bulunuyorsa bu daha kolay olacaktır, ancak bu işe yarar. Kendi "Dosya Sisteminizi" yazmak ve USB uygulaması için çalışma / zaman / bellek kaydetmek istiyorsanız, tanımını günlük 1 0x0'da başladığı kadar basit ve esnek yapamazsınız, günlük 2 0x10 0000'da başlar, günlük 0x20 0000'da 3 yazın ve 4'ü 0x30 0000'da kaydedin. Ardından, bu verileri USB üzerinden gönderebilirsiniz.

USB arabirimi istediğiniz kadar karmaşık olabilir - seri arabirimden yığın depolama aygıtına.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.