Cześć.
Taki problem - mam kilka płytek z prockami Atmega8, które wyposażone są też w układ do komunikacji przez RS485. Piszę też prosty program na Windows (w Visual Studio, język C#) który będzie stanowił mastera, a moduły z atmegami będą robić za Slave-y. Mam też konwerter RS232 na RS485 (swojego wykonania), który wpięty będzie w komputer. Procki Atmela mają fajną funkcję, polegającą na tym, że ich UART można skonfigurować do pracy z 9-ma bitami danych, gdzie 8 pierwszych bitów to dane, a 9-ty bit określa czy przesyłane są dane z informacjami czy "adres" urządzenia. Co za tym idzie gdy moje moduły będą odbierać ramkę danych która "nie jest do nich zaadresowana" to po prostu ją zignorują.
Fajnie to wygląda przy komunikacji pomiędzy prockami, gorzej gdy chce się podpiąć do tego komputer z napisaną aplikacją. Z tego co się orientuję to port szeregowy w komputerze nie potrafi wysyłać więcej niż 8 bitów danych. Da się jakoś rozwiązać ten problem?
Taki problem - mam kilka płytek z prockami Atmega8, które wyposażone są też w układ do komunikacji przez RS485. Piszę też prosty program na Windows (w Visual Studio, język C#) który będzie stanowił mastera, a moduły z atmegami będą robić za Slave-y. Mam też konwerter RS232 na RS485 (swojego wykonania), który wpięty będzie w komputer. Procki Atmela mają fajną funkcję, polegającą na tym, że ich UART można skonfigurować do pracy z 9-ma bitami danych, gdzie 8 pierwszych bitów to dane, a 9-ty bit określa czy przesyłane są dane z informacjami czy "adres" urządzenia. Co za tym idzie gdy moje moduły będą odbierać ramkę danych która "nie jest do nich zaadresowana" to po prostu ją zignorują.
Fajnie to wygląda przy komunikacji pomiędzy prockami, gorzej gdy chce się podpiąć do tego komputer z napisaną aplikacją. Z tego co się orientuję to port szeregowy w komputerze nie potrafi wysyłać więcej niż 8 bitów danych. Da się jakoś rozwiązać ten problem?