9 bit UART

flowchartx

Aktif Üye
Katılım
18 Ağustos 2021
Mesajlar
219
Herkese iyi günler. 2 stm32 cihazım ve bir nextion ekranım var. Bir uart haberleşme sistemi kurmak istiyorum. Bir işlemci master olacak diğerleri slave fakat işlemciler ile 9 bir haberleşmek istiyorum ama ekranın böyle bir özelliği yok. Bu yapıyı nasıl oluşturabilirim?
Cevaplayan herkese teşekkürler
 
aynı uart hattı üstünde teoride 1 alıcı RX 1 verici TX olabilir siz 1 cihaz daha eklerseniz bu uart için standart dışı bir olaydır.

şöyle bir alternatif olabilir ekran ile stm32 1 alıcı 1 verici olarak uart kullansın. stmler arasında I2C hattı kurabilirsiniz
 
Hocam şöyle master olan işlemci slave olan cihazlara veri göndericek. Slave cihazlarda veri gönderimi olmucak. Master cihaz sadece adres ve data göndericek. slaveler alıp datayı işleyip görevini yapcak. Ama sorun şu eğer 9 bit olmazsa haberleşmem gönderdiğim her veri iki cihazada gitcek. Ve slave cihazları boş yere meşgul etmiş olucam
 
aynı uart hattı üstünde teoride 1 alıcı RX 1 verici TX olabilir siz 1 cihaz daha eklerseniz bu uart için standart dışı bir olaydır.

şöyle bir alternatif olabilir ekran ile stm32 1 alıcı 1 verici olarak uart kullansın. stmler arasında I2C hattı kurabilirsiniz
I2C için boşta pinim yok hocam
 
o zaman master slaveleri 1 pin ile seçecek uart üstünde siz oluşturmazssanız adresler vs. yok tx den bir alıcıya veri gönderirsin rxden dinlersin.

adreslemeyi ve data ayırmayı yazılımsal olarak yapman gerek nextionda bunu yapman çok zor çünkü kendi standart haberleşmesi var nextionların
 
Birçok MCU'da birden fazla UART portu varken tek UART portunu iki slave ile paylaşmak bana mantıklı gelmedi.. Master MCU'da iki UART olsun, her birisi bir slave'a gitsin. 9 bit olayına gelince, en yaygın kullanılan UART protokolde 8 data biti, 1 stop biti ve no parity ayarıdır, yani zaten 9 bittir.
 
Hocam world lenght özelliğinde 8 ve 9 bit özelliği var. Yani data paketinin önüne bir bit koyuyor bunada start biti yada adres biti deniyor. Araştırmalarımdan bunları çıkardım tam emin değilim ilk defa çalışıyorum 9 bit özelliği ile. Muhtemelen imkansız gibi duruyor.

Pinim olmadığı için tek usart kullanmam gerekiyor hocam
 
Doğru anladıysam 9 data biti kullanmak (bir tanesi slave seçen) diğer slave'in meşgul edilmekten kurtarmıyor. Veri gene her iki slave'a da gidiyor. Slave'ler veriyi okuyor (ve artık meşgul edilmiş oluyor) ondan sonra adres bitinden mesajı kimin işleyeceğini anlıyorlar. İşlemeyecek olan slave mesajı çöpe atıyor.

Eğer tek bus kullanman gerekiyor ve sadece 1 slave'in mesajı almasını garantilemek istiyorsan, o zaman araya lojik gate koyarak mesajın gitmemesi gereken slave'e 1 gitmesini sağlaman lazım (eğer idle polarity 1 ise).
 
Örnek devre

1665089942781.png
 
Arduino ile başka marka bir ekran kullanmıştım. Ekrandaki dataları ve arduinodaki dataları pc ye aktarmak gerekiyordu. Arduinoda iki uart kullandım. Arduino gelen giden dataları kontrol etti. Kendisine ait olanı kullandı. Kendisine ait olmayanı ikinci uart üzerinden bypass etti.

Bu şekilde ekran yazılımı pc üzerinden güncelleme şansımda olmuştu.
 
Grafik işleri tam bir baş belası. Birkaç aydır kabuslar görüyorum bu yüzden. Akıcı bir şekilde çalışan analog power metre gerekliydi proje için, udemy yi zengin ettim grafik programı kurslarıyla. Grafik animasyon algoritmalarına kafa patlattım. Hala tam istediğim gibi olmadı, sürünmeye devam ...
 
Merhaba,
Zannederim 9. bit data olmamalı. Kontrol biti olabilir mi? STM32 hakkında bilgim yok ama 9 adet PIC18F4550 ile biri master diğerler 8 'i slave SPI protokolu ile (sanal olarak ısıs te) bir çalışma yapmış hatta 1 master + 2 sleve ile olan çalışmamın tüm kodlarını da gurubumda paylaşmıştım.
Not:Videoları geniş ekran olarak izlerseniz master dan yollanan data hangi slave e eşit ise o slave işlem yapar bitirir master'a işlem bitti feedback yollar. İlgilenen arkadaşlar olursa 2 slave 1 master çalışmamın kodlarını da paylaşabilirim.
 
Son düzenleme:
Grafik işleri tam bir baş belası. Birkaç aydır kabuslar görüyorum bu yüzden. Akıcı bir şekilde çalışan analog power metre gerekliydi proje için, udemy yi zengin ettim grafik programı kurslarıyla. Grafik animasyon algoritmalarına kafa patlattım. Hala tam istediğim gibi olmadı, sürünmeye devam ...
Merhaba,
Akıcı analog bilgi derken neyi kast ettiğinizi tam anlayamadım. 0-5 volt arası linear veya linear olmayan bir değişimi mi anlamalıyım?
 
Merhaba,
Akıcı analog bilgi derken neyi kast ettiğinizi tam anlayamadım. 0-5 volt arası linear veya linear olmayan bir değişimi mi anlamalıyım?

480x320 TFT ekran var. Üzerinde ANALOG power metre görüntüleniyor. İbrenin de titremeden, akıcı bir şekilde hareket edip gücü göstermesi gerekiyor. Düz mantıkla akla gelen yöntemler işe yaramıyor, baya takla gerekiyor :)
 
Merhaba,
TFT ekranlarının çalışma prensibi hakkında bilgim yok. Lâkin TFT ekranı kontrol eden MCU, gözün algılayacağı
hızda data yolluyorsa yani datalar arasındaki delay ler uzun ise göz bunu algılayabilir.
Ben de bu konuda yaşadığım sıkıntıları şöyle aştım. Örneğin 0-5 volt arası voltaj değişimini
ADC0804 entegresine girip 00-FF arası dijital bilgiye çeviriyorum. Bu 8 bitlik bilgiyi de PIC'in örneğin PORTB giriyorum.
Yazılımsal olarak 00-FF arası tüm byte ları tek tek kontrol edip her bir byte için anlamlı bir data atayıp PC'ye yolluyorum.
PC'deki yazdığım program da böyle bir titreme olmamaktadır.
videolarda ilk çalışmaları ile son çalışmalarım arasındaki farkı izleyebilirsiniz.
 

Forum istatistikleri

Konular
6,952
Mesajlar
118,760
Üyeler
2,824
Son üye
selocan32

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
Back
Top