Arm işlemcilerde kristalsiz seri haberleşme

Başlatan z, 09 Ocak 2016, 08:41:05

z

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.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

OG

Microchip için 32MHz INT OSC ile USART'ı 250Kb denedim, gayet basarılı.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

esensoy

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?
En tehlikeli an "zafer" anıdır.

OG

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.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

MrDarK

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.
Picproje Eğitim Gönüllüleri ~ MrDarK

esensoy

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,
En tehlikeli an "zafer" anıdır.

z

"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.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

kantirici

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?

Karamel

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.)

OG

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.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

esensoy

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
En tehlikeli an "zafer" anıdır.

kantirici

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ı?

z

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.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

kantirici

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.

mistek

Stm32f03 modelinde kristal kullanmadan UART'tan veri gönderip alıyorum. 2 aydır bir sorunla karşılaşmadım.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R