Cortex M3 çipleri STM32F103

Başlatan z, 08 Ocak 2013, 03:19:54

LukeSkywalker

Bir problem yok yani. İşlemci 72Mhz'de çalışıyor.

muhittin_kaplan

#121
üf, bir an Z nin Oyununa gelip güzelim PIClerden Vazgeçip herşeyi STM armlarla yaptığımızı ve yanıltıldığımızı düşünmüştüm.

mesaj birleştirme:: 13 Şubat 2013, 11:50:17

peki stm32f103xxx lerde blok diagramda görünen 20KB SRAM ile APB1 Hattında olan SRAM 512B nedir ?

z

Alıntı yapılan: muhittin_kaplan - 13 Şubat 2013, 11:22:54
....peki stm32f103xxx lerde blok diagramda görünen 20KB SRAM ile APB1 Hattında olan SRAM 512B nedir ?

CAN ve USB in kullandığı bir RAM galiba.

Note: In low, medium-, high- and XL-density devices the USB and CAN share a dedicated 512-byte SRAM memory for data transmission and reception, and so they cannot be used
concurrently (the shared SRAM is accessed through CAN and USB exclusively). The USB
and CAN can be used in the same application but not at the same time.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

SpeedyX

Bu yüksek akım çekme meselesiyle ilgili ne diyorsunuz?

NXP lerde hiç böyle birşey görmedim. Çok önceleri atmel arm9 işlemcide recursive kod koşturup regülatörü yakmıştık. STM yi görünce dejavu yaşadım :)

LukeSkywalker

Flash memoryden veri okurken hiz otomatik mi degisiyor secilen islemci frekansina göre?

LukeSkywalker

Anladım hocam. Wait stateler flash hızını ayarlıyor.
Verdiğiniz bilgiler gerçekten çok önemli, sizden çok şey öğrendim, teşekkür ediyorum.

Klein

Alıntı yapılan: muhittin_kaplan - 13 Şubat 2013, 11:22:54
üf, bir an Z nin Oyununa gelip güzelim PIClerden Vazgeçip herşeyi STM armlarla yaptığımızı ve yanıltıldığımızı düşünmüştüm.

Eminim bir çok kişi burada yazılanları okuyup, aynen böyle düşünmüştür. Kartlar da basılmıştı, artık geri dönemeyiz, işlemci 72MHz'de çalışmıyormuş, ne yapacağız?

Forumda sorulan bir çok soruya , verilen örnek kodların bir çoğuna baktığımda bu sorunu çok anlamsız görüyorum.

Örneğin:
ADC okutulurken, ADC'nin çevirimi tamamlaması while döngüsünde bekleniyor.
Seri haberleşmede veri while döngüsü içerisinde gönderiliyor.
I2C, SPI, USART  gibi donanımların "Busy" bayrakları set veya reset olana kadar while döngüsünde bekleniyor.
LCD gibi donanımları sürerken CLK aralarında delay fonksiyonu kullanılıyor.
Buton beklenirken, debounce yapılırken delay veya döngü kullanılıyor.
Led yak söndür arasında delay kullanılıyor.

Bu şartlar altında 72MHz'de kod koşsa ne ? koşmasa ne?

(Bu sözler yukarıda yazdığım şekilde program yazanlar için. Lütfen herkes üzerine alınmasın)

muhittin_kaplan

Ozaman Rtos Kullanalım Yada
Çevrime Başla, Bitince İnt Oluştur gelip bakayım, Usart TX tampon Boşaldığında da beni haberdar et oradan gelip atlayıp sıçrayıp yanına geleyim. RX kesmesi olmazsa olmaz zaten.
Delay Candır.

LukeSkywalker

Programın bir yerinde delay kullanılıp başka bir bölümünde yüksek hıza ihtiyaç duyulabilir.

mcan

#129

Uzun süre önce deneyip bıraktığım kodu tekrar denemeye karar verdim romdan koşan programın her döngüsü 1-2 saniye sürüyor,ancak ram den koşarken 16 saniye sürüyor.Bu kadar fark olması normal değil.
Şu kodları deneyebileck olan var mı? Aynı kodu içeren projelerin birini ram dan diğerini romdan koşacak şekilde ayarladım, cm4 discovery kartı ile deniyorum.Ram den koşan yavaş koşuyor ancak benim yaptığım bir hatadan kaynaklı olabilir.
RAM
http://www46.zippyshare.com/v/90361459/file.html

Rom
http://www32.zippyshare.com/v/75958648/file.html


Keil üzerinden programı ram den başlatamadım.Bu sebeple ramdan koşturmak için STM32 ST-LINK UTILTY lazım.
File open deyip oluşturulan hex fileyi seçiyoruz.daha sonra Target->program&verfiy yaptıkdan sonra mcu kismindan run diyoruz.

Gerbay hocam siz keil üzerinden programı ramden koşturabildiniz mi?


Klein

StLink Utility ile F4 kitine bağlanmaya çalıştım bağlanamadım. Keil ile bağlanabiliyorum.  CooCox Flash ile deneyeyim dedim,  .hex formatını desteklemiyor. .elf ya da .bin bekliyor.

mcan

#131
Alıntı yapılan: Klein - 13 Şubat 2013, 22:58:39
StLink Utility ile F4 kitine bağlanmaya çalıştım bağlanamadım. Keil ile bağlanabiliyorum.  CooCox Flash ile deneyeyim dedim,  .hex formatını desteklemiyor. .elf ya da .bin bekliyor.
Eğer denemediyseniz  şu linkde firmware update ve stlink utility nin son sürümleri var,bir de usb driver.
http://www.st.com/internet/evalboard/product/251168.jsp#SOFTWARE_AND_DEVELOPMENT_TOOLS
Bide keil açıkken bazen stlink görmeyebiliyor.

mesaj birleştirme:: 14 Şubat 2013, 00:02:56

Ramden koşturmayı buldum,benim yöntemimde tesbit edemediğim bir hata var ancak Keilin orjinal kodu ve projesi ile de ramdan flasha göre daha yavaş çalışıyor Ramdan koşarken 50 saniyede 33 kere yanıyor Flashdan koşarken 34 saniyede 33 kere , yani ramden koşan kod flasha göre yaklaşık 50%  daha yavaş.Belki ccm ram ile alakalı düzenlemeler yapılıp daha hızlı çalışması sağlanabilir ancak şu haliyle daha yavaş .
Hiç fark etmedim ram ve rom olarak yolladığım iki projede aslında target kısmında hem flash hemde ram adında iki target varmış .Ram olanı seçip debug tuşuna basıpda run dediğimizde kod direk ramdan çalışıyor mis gibi. Bir .ini dosyası ile halletmişler. Denemek isteyen olursa anlatım linki burada.
http://www.keil.com/appnotes/files/apnt_230.pdf

z

#132
STM32F103  DOCID 13902 Rev 14 de RCC_AHBENR registerini incelerken FLITFEN adında bir bitle karşılaştım.

Ancak ne bu dokümanda ne de çipin hardware dokümanında FLITF le ilgili açıklamaya rastlamadım.

Nedir bu FLITF ?



mesaj birleştirme:: 17 Şubat 2013, 19:25:20

Pardon ben kacırmısım. Dokumanda varmıs. Bir şekilde find da sıkıntı yaşamışım.

Flash yazma vs için ilgili donanımın clk kaynağını açıp kapamaya yarıyormuş.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhittin_kaplan

Hocam ClockTree de (STM32F100xx clock tree (high-density devices)
Flash memory programming interface clock (FLITFCLK) is always the HSI clock.
Açıklaması Yapılmış. Flash a clock sağlıyor. O bit ise Clock u açıp kapıyor zannımca. (Sleep Mode İçin)


http://www.promelec.ru/UPLOAD/fck/file/stm_files/stm32/STM32F10xx4_6_errata_sheet.pdf


z

STM32F103C8 kitime nihayet bugün kavuştum.






Jtag olarak da bunu almıştım.

Keilde basit bir deneme yapmak istediğimde JTAG firmware in update etmek istedi ve buna izin verdim. Sorunsuz update oldu. En azından hata mesajı almadım.

Keilde debug menüden JTAG cihazı olarak J-Link/J-Trace Cortex seçtim.
Aynı şekilde utilities'de de J-Link/J-Trace Cortex seçtim.

Debug yapmaya kalktığımda aşağıdaki mesajlar sıralanıyor.

Set JLink Project File to "C:\Documents and Settings\Administrator\Desktop\STM32F103\ASM_PRG\JLinkSettings.ini"
* JLink Info: Device "STM32F103C8" selected (64 KB flash, 20 KB RAM).

JLink info:
------------
DLL: V4.54a, compiled Sep 17 2012 15:58:45
Firmware: J-Link ARM V8 compiled Aug  1 2012 13:40:47
Hardware: V8.00
S/N : 17892859
Feature(s) : RDI,FlashDL,FlashBP,JFlash

* JLink Info: TotalIRLen = 9, IRPrint = 0x0011
* JLink Info: TotalIRLen = 9, IRPrint = 0x0011
* JLink Info: Found Cortex-M3 r1p1, Little endian.
* JLink Info: TPIU fitted.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots
ROMTableAddr = 0xE00FF003
* JLink Info: Found Cortex-M3 r1p1, Little endian.
* JLink Info: TPIU fitted.
* JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots

Target info:
------------
Device: STM32F103C8
VTarget = 3.338V
State of Pins:
TCK: 1, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints:          4
JTAG speed: 2000 kHz

No Algorithm found for: 08000000H - 0800025BH
Erase skipped!


Nihayetinde

Error: Flash Download Failed - "Cortex M3" hata mesajını alıyorum.

Eksik bir şey mi yükledim? Flash algoritmalarını bulamıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com