Smile Buddha 0 Oluşturuldu: Eylül 25, 2019 Raporla Share Oluşturuldu: Eylül 25, 2019 Asynchronous serial communication(eşzamansız seri iletişim) de başlama (start) ve durma(stop) bitleri veri bitlerinden nasıl ayırt ediliyor? Bu resimlerden birşey anlamadım.Bilgisi olan arkadaşlar anlatabilir mİ? @ck789 @Bir Buçuk @DreiMalAli Bu konuda bilginiz var mı? Link to post Sitelerde Paylaş
anibal 0 Eylül 25, 2019 gönderildi Raporla Share Eylül 25, 2019 gönderildi Hat hep yüksek olarak bekler, düştüğü andan itibaren, stop biti geliyor farzedilir. Stop bitin süresi dolunca, veri bitleri gelir. Kaç veri biti varsa, ondan sonra, bu kez stop biti kabul edilir, stop biti her zaman yüksek olur. Stop bitinini süresi bitince, yeni bir start biti için beklenir. Burada, start, veri bitleri, stop biti vs. hepsinin zaman olarak ne kadar süreceği biliniyor olmalıdır. Autobaud denen bir şey var, ama o da, bir kez bu bilgileri tespit edecek bir algoritma. NXP çiplerinin, özellikle LPC17xx, LPC21xx serisinin, datasheet ve user manuallerini biraz incele. Sonra, şurada, bu işin kodla yapılmış hali var. İncelersen, çözmen, anlaman kolay olur. https://www.embeddedrelated.com/showcode/344.php Link to post Sitelerde Paylaş
Smile Buddha 0 Eylül 26, 2019 gönderildi Yazar Raporla Share Eylül 26, 2019 gönderildi s =sonladırma biti (stop biti ) b =başlangıç biti (start biti) 1,2,3,4,5,6,7,8 veri bitleri üstteki seri ile alttaki seri aynı üstteki seri normal seri diyelim. ikincisinde geciktiği yada herhangi bir sebeple başlangıç kısmını okuyamadığı için 6 numaralı bit başlangıç biti olmaz mı?Anlamadığım konu bu. Link to post Sitelerde Paylaş
DreiMalAli 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi 20 saat önce, mirasyedi yazdı: s =sonladırma biti (stop biti ) b =başlangıç biti (start biti) 1,2,3,4,5,6,7,8 veri bitleri üstteki seri ile alttaki seri aynı üstteki seri normal seri diyelim. ikincisinde geciktiği yada herhangi bir sebeple başlangıç kısmını okuyamadığı için 6 numaralı bit başlangıç biti olmaz mı?Anlamadığım konu bu. Elbette olur ve en azından ilk bayt okunduğunda yanlış bir veri gönderilmiş olurdu. Bu hata bu veri alışverişinin zayıf noktalarından sadece birisidir. Alıcı ile verici arasında "sohbet" başlamadan önce her ikisi de hazır olması gerekir. Ayrıca her ikisi aynı ayarlarla (Veri-biti sayısı, veri hızı, stop-biti saysı, parity vb.) ayarlanmış olmalıdır. Ancak bundan sonra "sohbete" başlamalıdırlar. Yukarda verdiğin hali ile sistem (mesela RS232) sadece 2 tel bağlantı gerekiyor. Sistem bu iki tel bağlantısı haricinde bir çok bağlantı daha içerir. Bu bağlantılar geçmiş zamanlarda değişik hızda aletleri senkronize etmeye yarıyordu. O zamanlar artık geçti. Çünkü RS232 ve "akrabaları" direk chip olarak kullanılıyor ve o zamanların hız sorunu bulunmuyor. Benzer sorunları software ile çözmek de mümkündü elbette. Ama hem alıcı hem de verici benzer programları içermesi gerekiyordu. Sevgiler Link to post Sitelerde Paylaş
Smile Buddha 0 Eylül 27, 2019 gönderildi Yazar Raporla Share Eylül 27, 2019 gönderildi (düzenlendi) 7 dakika önce, DreiMalAli yazdı: Elbette olur ve en azından ilk bayt okunduğunda yanlış bir veri gönderilmiş olurdu. Bu hata bu veri alışverişinin zayıf noktalarından sadece birisidir. Alıcı ile verici arasında "sohbet" başlamadan önce her ikisi de hazır olması gerekir. Ayrıca her ikisi aynı ayarlarla (Veri-biti sayısı, veri hızı, stop-biti saysı, parity vb.) ayarlanmış olmalıdır. Ancak bundan sonra "sohbete" başlamalıdırlar. Yukarda verdiğin hali ile sistem (mesela RS232) sadece 2 tel bağlantı gerekiyor. Sistem bu iki tel bağlantısı haricinde bir çok bağlantı daha içerir. Bu bağlantılar geçmiş zamanlarda değişik hızda aletleri senkronize etmeye yarıyordu. O zamanlar artık geçti. Çünkü RS232 ve "akrabaları" direk chip olarak kullanılıyor ve o zamanların hız sorunu bulunmuyor. Benzer sorunları software ile çözmek de mümkündü elbette. Ama hem alıcı hem de verici benzer programları içermesi gerekiyordu. Sevgiler Arduino kartı ile pc arasında usb kablosu ile bağlantı kurmuştum. Veriler noksan veya yerleri değişmiş olarak geliyor. Forumlarına üye olamadığım için soramadım. Programı kaynak bol olduğu için lazarus ile yazdım. Eylül 27, 2019 tarihinde mirasyedi tarafından düzenlendi Link to post Sitelerde Paylaş
anibal 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi 21 hours ago, mirasyedi said: s =sonladırma biti (stop biti ) b =başlangıç biti (start biti) 1,2,3,4,5,6,7,8 veri bitleri üstteki seri ile alttaki seri aynı üstteki seri normal seri diyelim. ikincisinde geciktiği yada herhangi bir sebeple başlangıç kısmını okuyamadığı için 6 numaralı bit başlangıç biti olmaz mı?Anlamadığım konu bu. Olmaz. Alttaki, UART'ı "Frame Error" condition'a, yani çerçeve hatası durumuna sokar. Link to post Sitelerde Paylaş
anibal 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi 11 minutes ago, mirasyedi said: Arduino kartı ile pc arasında usb kablosu ile bağlantı kurmuştum. Veriler noksan veya yerleri değişmiş olarak geliyor. Forumlarına üye olamadığım için soramadım. Programı kaynak bol olduğu için lazarus ile yazdım. Noksan, yerleri değişmiş falan, kodunun gereken kontrolleri yapmadığını gösteriyor. UART'ın, LSR diye bir registeri var, orada, PE, FE falan gibi şeyler var, bunları kontrol etmelisin. Dediğim gibi, LPC21XX lerin user manuallerine bak, onlarda bu şeylerin çalışması baya güzel anlatılır. Link to post Sitelerde Paylaş
DreiMalAli 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi Arduino kullanmadım hiç . C ve benzeri dil kullandıkları için ve içeriğini bilmediğim program kütüphanelerinden hoşlanmadığım kullanmadım. Atmel'in mikroişletimcisi ile PC-bağlantısı (RS232 ---> USB üzerinden) kurdum. O zamanlar yazılımı assembler ile yapmıştım. Verileri her seferinde bayt olarak gönderdim/aldım. Elbette veri aktarım süresi uzadı ama oldu. Ama benim tarzımın da kendine göre sorunları vardı. Mesela veri aktarımı hızı mikroişletimcinin kuvarz frekansından elde edilmesi gerekiyor. Bu da anca frekansı bölme ile mümkün. Bu ise sorunlu bir durumdur.. Veri aktarımındaki hatanın burdan kaynaklandığını anlayıncaya kadar ben de bol bol hatalı veri aldım/verdim. Sevgiler Link to post Sitelerde Paylaş
kavak 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi (düzenlendi) 40 dakika önce, DreiMalAli yazdı: Arduino kullanmadım hiç . C ve benzeri dil kullandıkları için ve içeriğini bilmediğim program kütüphanelerinden hoşlanmadığım kullanmadım. Atmel'in mikroişletimcisi ile PC-bağlantısı (RS232 ---> USB üzerinden) kurdum. O zamanlar yazılımı assembler ile yapmıştım. Verileri her seferinde bayt olarak gönderdim/aldım. Elbette veri aktarım süresi uzadı ama oldu. Ama benim tarzımın da kendine göre sorunları vardı. Mesela veri aktarımı hızı mikroişletimcinin kuvarz frekansından elde edilmesi gerekiyor. Bu da anca frekansı bölme ile mümkün. Bu ise sorunlu bir durumdur.. Veri aktarımındaki hatanın burdan kaynaklandığını anlayıncaya kadar ben de bol bol hatalı veri aldım/verdim. Sevgiler Vaay...Assembler ha?! Muhterem, zamanında Assembler´le işi olanların nesli maalesef tükenmek üzere. Hey gidi günler heey...o zamanlar bir bit ve byte altın değerinde idi. Şimdi ise bitmiş, bytemış; Tera byte devrinde kimse bunları umursamıyor gibi... Benim ilk göz ağrım Sinclair ZX81 idi, sonrasında Commodore 64 daha sonra Atari 1040 ST... Tesadüfe bak... şu an bir projemizin prototipinin hazırlık aşamasında Arduino kullanıyoruz, iyi mi?! Kusura bakmayın, biraz nostaljik oldu ama o devirleri bilenlere rastlamak güzel. Eylül 27, 2019 tarihinde kavak tarafından düzenlendi Link to post Sitelerde Paylaş
Smile Buddha 0 Eylül 27, 2019 gönderildi Yazar Raporla Share Eylül 27, 2019 gönderildi 18 dakika önce, kavak yazdı: Vaay...Assembler ha?! Muhterem, zamanında Assembler´le işi olanların nesli maalesef tükenmek üzere. Hey gidi günler heey...o zamanlar bir bit ve byte altın değerinde idi. Şimdi ise bitmiş, bytemış; Tera byte devrinde kimse bunları umursamıyor gibi... Benim ilk göz ağrım Sinclair ZX81 idi, sonrasında Commodore 64 daha sonra Atari 1040 ST... Tesadüfe bak... şu an bir projemizin prototipinin hazırlık aşamasında Arduino kullanıyoruz, iyi mi?! Kusura bakmayın, biraz nostaljik oldu ama o devirleri bilenlere rastlamak güzel. Tükenmedi.Elektronik muhendisleri assemblerı biliyorlar.Hatta direk makine dilinde yazıyorlar. Link to post Sitelerde Paylaş
kavak 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi (düzenlendi) 17 dakika önce, mirasyedi yazdı: Tükenmedi.Elektronik muhendisleri assemblerı biliyorlar.Hatta direk makine dilinde yazıyorlar. Elbette ancak bu devirde onların da işi, modern ekipmanlar sayesinde konforlu hale geldi, denebilir. Şimdi şöyle bir düşünüyorum da, yanılmıyorsam Sinclair ZX81´in ana hafızasının hacmi sadece 1 kbyte idi. Meslek yaptığım şirket, o zamanlar bunu kit(Türkçe karşılığını bilmiyorum) olarak bize vermişti ve bütün parçalarını kendimiz lehimleyerek çalışır vaziyete getirmiştik. Eylül 27, 2019 tarihinde kavak tarafından düzenlendi Link to post Sitelerde Paylaş
anibal 0 Eylül 27, 2019 gönderildi Raporla Share Eylül 27, 2019 gönderildi 2 hours ago, mirasyedi said: Tükenmedi.Elektronik muhendisleri assemblerı biliyorlar.Hatta direk makine dilinde yazıyorlar. Makine dili denen şeyin, bir matahlığı yok aslında. Artık tamamen gereksiz oldu bile denebilir. Ama, kendini bilgisayar, yazılım falan sektöründe konumlandıran birinin makine dili bilmiyor olması, abes ve kabul edilemezdir. Link to post Sitelerde Paylaş
DreiMalAli 0 Eylül 28, 2019 gönderildi Raporla Share Eylül 28, 2019 gönderildi 8 saat önce, kavak yazdı: Vaay...Assembler ha?! Muhterem, zamanında Assembler´le işi olanların nesli maalesef tükenmek üzere. Hey gidi günler heey...o zamanlar bir bit ve byte altın değerinde idi. Şimdi ise bitmiş, bytemış; Tera byte devrinde kimse bunları umursamıyor gibi... Benim ilk göz ağrım Sinclair ZX81 idi, sonrasında Commodore 64 daha sonra Atari 1040 ST... Tesadüfe bak... şu an bir projemizin prototipinin hazırlık aşamasında Arduino kullanıyoruz, iyi mi?! Kusura bakmayın, biraz nostaljik oldu ama o devirleri bilenlere rastlamak güzel. Yooo, gayet iyi geldi geçmiş zamanları yadetmek sevgili kavak. Bigisayar monitörleri henüz icad edilmediği bir zamanda okulda programlarımızı (fortran) daktilo gibi aletle kart delerek kodlardık. Fortran ile beraber assambler dersimiz vardı. Deneme bilgisayarımıza assembler 16 bitlik codlarımızı 16 tane şalter ile kaydetmiştik. Meslek hayatında hiç ihtiyacım olmadı bunlara. Ancak ara sıra hobi olarak assembler kullandım. 8 bitlik μC ile ölçme programı yazmak ve ölçülen değerlerle hesap yapmak... Tam bir uğraş gerektiriyor. Kendi real sayılarımı (16 + 8 bitlik fixpoint sayısı) kendim tanımlamam ve bu real sayılarla dört işlem yapmak için yazılımlar hazırlamak... Zevkli bir uğraş olmuştu. Sevgiler Link to post Sitelerde Paylaş
Recommended Posts