Witam
W szkole na zajeciach z systemow wbudowanych, uzywamy do symulacji ISIS Proffesional 7.4 SP i robiac prace zaliczeniowa napotkalem na bardzo dziwny problem i chyba jednoczesnie bug ISIS`a.
Ponizszy schemat dostalismy gotowy a naszym zadaniem napisac jest soft wykorzystujacy dolaczone peryferia i komunikacje miedzy kontrolerami.
dla jasnosci: U1=proc1 U8=proc3 U5=proc4
proc1 @ 11.0592MHz
proc3 @ 1.3824MHz
proc4 @ 22.1184MHz
Predkosc transmisji UART 1200b (ustawiona prawidlowo) .
Transmisje podgladam na ISIS`owych terminalach.
Problem tkwi wlasnie w komunikacji a sytuacja wyglada tak:
-proc1 i proc3 ustawiaja max785 w tryb odbioru (RE=DE=0)
-proc4 ustawia max785 w tryb nadawania (RE=DE=1)
-proc3 wlacza odbior magistrali szeregowej i kazdy bajt jaki odbierze wyswietla na lcd jako ASCII
-proc4 po wlaczeniu wysyla przez UART jeden znak "4" (0x34)
Problem: proc3 zamiast "4" odbiera smieci. terminal3(przy proc3) takze odbiera smieci. Jednak co czyni problem dziwnym to to ze terminal1 odbiera prawidlowo "4". Wnioskuje z tego ze proc4 wysyla poprawnie z poprawna predkoscia.
Co jeszcze dziwniejsze, jesli zmienie predkosc taktowania proc3 na 11.0592MHz to wtedy transmisja dziala prawidlowo (na terminalu, po zmianie programu na procku tez).
Dodam jeszcze ze nie moge zmieniac f taktowania kontrolerow i musze uzyc te podane wyzej.
schemat:
Dolaczam spakowany projekt ISIS`a oraz zrodla programow (kompilowane uVision Keil V3.60 i C51.exe v8.12) ale z duzym prawdopodobienstwem wykluczam blad w kodzie.
W szkole na zajeciach z systemow wbudowanych, uzywamy do symulacji ISIS Proffesional 7.4 SP i robiac prace zaliczeniowa napotkalem na bardzo dziwny problem i chyba jednoczesnie bug ISIS`a.
Ponizszy schemat dostalismy gotowy a naszym zadaniem napisac jest soft wykorzystujacy dolaczone peryferia i komunikacje miedzy kontrolerami.
dla jasnosci: U1=proc1 U8=proc3 U5=proc4
proc1 @ 11.0592MHz
proc3 @ 1.3824MHz
proc4 @ 22.1184MHz
Predkosc transmisji UART 1200b (ustawiona prawidlowo) .
Transmisje podgladam na ISIS`owych terminalach.
Problem tkwi wlasnie w komunikacji a sytuacja wyglada tak:
-proc1 i proc3 ustawiaja max785 w tryb odbioru (RE=DE=0)
-proc4 ustawia max785 w tryb nadawania (RE=DE=1)
-proc3 wlacza odbior magistrali szeregowej i kazdy bajt jaki odbierze wyswietla na lcd jako ASCII
-proc4 po wlaczeniu wysyla przez UART jeden znak "4" (0x34)
Problem: proc3 zamiast "4" odbiera smieci. terminal3(przy proc3) takze odbiera smieci. Jednak co czyni problem dziwnym to to ze terminal1 odbiera prawidlowo "4". Wnioskuje z tego ze proc4 wysyla poprawnie z poprawna predkoscia.
Co jeszcze dziwniejsze, jesli zmienie predkosc taktowania proc3 na 11.0592MHz to wtedy transmisja dziala prawidlowo (na terminalu, po zmianie programu na procku tez).
Dodam jeszcze ze nie moge zmieniac f taktowania kontrolerow i musze uzyc te podane wyzej.
schemat:

Dolaczam spakowany projekt ISIS`a oraz zrodla programow (kompilowane uVision Keil V3.60 i C51.exe v8.12) ale z duzym prawdopodobienstwem wykluczam blad w kodzie.