Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: z - 09 Ocak 2016, 08:41:05

Başlık: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: z - 09 Ocak 2016, 08:41:05
Kristal kullanmadan çipin RC osilatörünü kullanarak USART ile hatasız haberleşme yapabiliyormusunuz?

Daha önce STm32F103C8 ile hiç denemedim.

STM32F030F4P6 de sürekli olarak datalar bozuluyor.

Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: OG - 09 Ocak 2016, 09:40:50
Microchip için 32MHz INT OSC ile USART'ı 250Kb denedim, gayet basarılı.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: esensoy - 09 Ocak 2016, 09:44:45
Alıntı yapılan: OG - 09 Ocak 2016, 09:40:50
Microchip için 32MHz INT OSC ile USART'ı 250Kb denedim, gayet basarılı.
Hocam sıcak soğuk ortamda test ettin mi? yani havya yaklaştırsak mesele mcu üzerine sıkıntı oluyor mu?
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: OG - 09 Ocak 2016, 09:51:14
Havya tutacak kadar ısıtmadım.
Pano içinde yaz kış şartlarında çalışıyor. Tahminen deyin ki 3-5 derece ile 50-60 derece arasıdır olsa olsa.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: MrDarK - 09 Ocak 2016, 11:26:43
Alıntı yapılan: z - 09 Ocak 2016, 08:41:05
Kristal kullanmadan çipin RC osilatörünü kullanarak USART ile hatasız haberleşme yapabiliyormusunuz?
Daha önce STm32F103C8 ile hiç denemedim.
STM32F030F4P6 de sürekli olarak datalar bozuluyor.

İç osilatörün frekansını ölçebiliyorsanız sıkıntı olmayacaktır diye düşünüyorum. STM32L'li bir projemde osc'nin değerini ölçerek zaman hesabı yapmıştım. Ayrıca MCU'nun sıcaklığına bağlı olan kaymaları da ekstra ekleyebilirsiniz sonucta chip iç ısısını ölçebiliyor.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: esensoy - 09 Ocak 2016, 12:46:43
Alıntı yapılan: MrDarK - 09 Ocak 2016, 11:26:43
İç osilatörün frekansını ölçebiliyorsanız sıkıntı olmayacaktır diye düşünüyorum. STM32L'li bir projemde osc'nin değerini ölçerek zaman hesabı yapmıştım. Ayrıca MCU'nun sıcaklığına bağlı olan kaymaları da ekstra ekleyebilirsiniz sonucta chip iç ısısını ölçebiliyor.
Neye göre ölçeceğiz? içinde daha güvenilir bir osilatör mü var? o mu baz alınacak?
çipin iç ısısını ölçmek eğer elimizde osilatörün "şu derecede şu kadar kayma yapar" tablosu yoksa bir işe yaramaz,
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: z - 09 Ocak 2016, 13:53:13
"RC OSC"nin trim değeri ile oynayarak  frekansı istediğim değere ayarladım ve artık haberleşme sorunsuz hale geldi.

Ancak bu çalışmayı her bir çip için ayrı ayrı yapmam gerekecek.

Çipin autobaud özelliği var fakat bu problemde çok işe yaramayacak gibi görünüyor.

Trim işlemini seri haberleşme bitlerinin peryodunu ölçerek MCU'ya otomatik olarak yaptırmaya çalışacağım.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: kantirici - 09 Ocak 2016, 14:28:51
Hazır mevzusu olmuşken bende birşey sorayım. Bu mcu larda autobaud için sabit bir karakter göndermek gerekiyormu yoksa chip o an ne gelirse kendini o baudrate switch ediyor mu?
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: Karamel - 09 Ocak 2016, 14:32:11
Alıntı yapılan: z - 09 Ocak 2016, 08:41:05
Kristal kullanmadan çipin RC osilatörünü kullanarak USART ile hatasız haberleşme yapabiliyormusunuz?

Daha önce STm32F103C8 ile hiç denemedim.

STM32F030F4P6 de sürekli olarak datalar bozuluyor.

hocam ben gectigimiz yaz stm32f030 u internal rc oscillator ile calistirip. 960 baudrate haberlesmesi yapmistim. ilk basta bende benzer problemler ile karslasmistim ama sonrasinda sorunu nasil cozdum simdi animsayamadim. sicaklik testleri yapmadim ama oda sicakliginda txt file icersindeki koca bir text i pc ye gonderebiliyordum. (1000-2000 char.)
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: OG - 09 Ocak 2016, 16:44:15
Alıntı yapılan: z - 09 Ocak 2016, 13:53:13
"RC OSC"nin trim değeri ile oynayarak  frekansı istediğim değere ayarladım ve artık haberleşme sorunsuz hale geldi.

Ancak bu çalışmayı her bir çip için ayrı ayrı yapmam gerekecek.

Çipin autobaud özelliği var fakat bu problemde çok işe yaramayacak gibi görünüyor.

Trim işlemini seri haberleşme bitlerinin peryodunu ölçerek MCU'ya otomatik olarak yaptırmaya çalışacağım.

USART'ın hızlara göre hata oranları var malumunuz. Hata oranı %0 olan ve bilindik mertebelerdeki hızlarda sıkıntı cıkacağını sanmıyorum.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: esensoy - 09 Ocak 2016, 17:18:07
Alıntı yapılan: kantirici - 09 Ocak 2016, 14:28:51
Hazır mevzusu olmuşken bende birşey sorayım. Bu mcu larda autobaud için sabit bir karakter göndermek gerekiyormu yoksa chip o an ne gelirse kendini o baudrate switch ediyor mu?

U gönderiliyor, hex 0x55, binary 01010101
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: kantirici - 09 Ocak 2016, 19:08:22
Alıntı yapılan: esensoy - 09 Ocak 2016, 17:18:07
U gönderiliyor, hex 0x55, binary 01010101

Teşekkürler.

Peki bu işi sabit karakter olmadan yapmamın bir yolu var mı?
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: z - 09 Ocak 2016, 19:39:29
Alıntı yapılan: kantirici - 09 Ocak 2016, 19:08:22
Peki bu işi sabit karakter olmadan yapmamın bir yolu var mı?

Tek karakterde olmaz ama iki karakter yollarsan olur. Herhangi iki karakterden sonra baud rate tespit edilebilir.

Ancak bu durumda stop bit sayısı, data bit sayısı ve parity bit olup olmaması kesin olarak biliniyor olması lazım.

Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: kantirici - 09 Ocak 2016, 21:39:03
Ama bu işlemi bizim yapmamız gerekir değil mi bülent hocam. Yani usart module nin böyle bie özelliği yok.

Ayrıca gelen ilk iki datayı da usart biriminin değil bizim okumamız gerekir.  Çünkü gelen data farklı baudda olursa usart birimi bu iki datayı kaçıracak veya yanlış alacak.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: mistek - 09 Ocak 2016, 22:27:46
Stm32f03 modelinde kristal kullanmadan UART'tan veri gönderip alıyorum. 2 aydır bir sorunla karşılaşmadım.
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: z - 10 Ocak 2016, 01:26:07
Mistek o zaman bir kaç sorum olacak.

İşlemciyi kaç MHz de çalıştırıyorsun?
Frekansı trim ettinmi?
Usart clock kaç MHz?
Baud rate'in ne?
Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: mistek - 10 Ocak 2016, 07:58:39
İşlemciyi 2-4-8MHz'de çalıştırıyorum.
Ayarlama kodlarını ST kütüphanesi ile yaptım,
Usart clock frekansına bakmadım, Baudrate'e göre kütüphane frekansı belirliyor.
9600 Baudrate.

Başlık: Ynt: Arm işlemcilerde kristalsiz seri haberleşme
Gönderen: z - 10 Ocak 2016, 12:43:59
Tahminimce PLL kullanımı bu soruna neden oluyor.

Clk +/-  Clk_Kayma= (RC_OSC +/- RC_Kayma) * PLL

Clk_Kayma=RC_Kayma * PLL

PLL çarpanı artınca ClkKayma da artıyor.

Ben 48Mhz kullanabilmek için PLL=12 seçtim.