Witam, mam zaimplementowaną w projekcie obsługę protokołu modbus (biblioteka freemodbus v1.5).
Ten sam program uruchamiam na płytce testowej Xplained z ATmega 328P i komunikacją po RS232 przez wbudowany port eDBG - tu wszystko działa jak należy, zarówno tryb RTU jak i ASCII. Zegar 16MHz.
Po przeniesieniu projektu na ATmega 32 z zegarem 7,3728MHz Modbus RTU działa bez problemów, ale dla trybu ASCII przy próbie komunikacji w Modbus Poll wyrzuca błędy write error i framing error. Na diodach Tx i Rx widać że układ odpowiada - podobnie jak w trybie RTU. (komunikuję się przez MAX232 i przejściówkę RS232 na USB)
Oczywiście symbol F_CPU jest właściwy w obu projektach, tryb RTU działa w obu przypadkach na różnych baudrate'ach, tryb ASCII tylko na ATmedze 328P.
Dołączam dwa projekty atmel studio, folder z bibliotekami modbus jest w obu identyczny, jedyna zmiana to lokalizacja pinu RTS.
Przypuszczam ze błąd ma jakiś związek z inną częstotliwością pracy, ale nie bardzo umiem znaleźć jaki. Z góry dzięki za pomoc!
[EDIT] Zmieniłem kwarc w Atmedze32 na 12MHz, bo taki akurat miałem i dalej to samo...
Ten sam program uruchamiam na płytce testowej Xplained z ATmega 328P i komunikacją po RS232 przez wbudowany port eDBG - tu wszystko działa jak należy, zarówno tryb RTU jak i ASCII. Zegar 16MHz.
Po przeniesieniu projektu na ATmega 32 z zegarem 7,3728MHz Modbus RTU działa bez problemów, ale dla trybu ASCII przy próbie komunikacji w Modbus Poll wyrzuca błędy write error i framing error. Na diodach Tx i Rx widać że układ odpowiada - podobnie jak w trybie RTU. (komunikuję się przez MAX232 i przejściówkę RS232 na USB)
Oczywiście symbol F_CPU jest właściwy w obu projektach, tryb RTU działa w obu przypadkach na różnych baudrate'ach, tryb ASCII tylko na ATmedze 328P.
Dołączam dwa projekty atmel studio, folder z bibliotekami modbus jest w obu identyczny, jedyna zmiana to lokalizacja pinu RTS.
Przypuszczam ze błąd ma jakiś związek z inną częstotliwością pracy, ale nie bardzo umiem znaleźć jaki. Z góry dzięki za pomoc!
[EDIT] Zmieniłem kwarc w Atmedze32 na 12MHz, bo taki akurat miałem i dalej to samo...