Witajcie! Na wstępie chciałem zaznaczyć, że słabo znam się na programowaniu w VHDL. Od jakiegoś czasu borykam się z obsługą termometru DS1722 z komunikacją SPI z mikrokontrolerem Lattice LC4512V. Obsługę termometra zrobiłem w następujący sposób:
1) wystawiam CE na stan wysoki i ustawiam stan niski po zakończeniu transmisji (dwie paczki po 8 bitów każda, jedna na wysyłanie informacji, a druga na odbieranie)
2) wysyłam w 8 bitach rozkaz do wyświetlenia tam tej temperatury jak chcę ( znak, rozdzielczość i dokładnosć)
3) odbieram cały czas cyfrę 25 (dokładnie 11001) - odpowiedź z termometra w postaci 16bitów przechowuję w wektorze, który jest następnie zamieniany za pomocą ogólnie znanej formułki BIN2BCD i to działa poprawnie.
W moim programie jest jakiś prosty błąd, którego nie potrafię zauważyć. Ostatnio coś przez przypadek zmieniłem i ten termometr zaczął działać... ale po dopisaniu następnych linijek kodu do obsługi czegoś innego pojawił się problem z implementacją kodu programu więc podejrzewając przekroczenie limitu pamięci zacząłem usuwać z programu to czego nie używam i pewnie coś za dużo usunąłem... Do edycji kodu używam Active-HDL, za syntezę odpowiada program simplify syntesis a sama inplementacja i wgranie programu do mikrokontrolera znowu z Active-HDL. Umieszczam zrzut z oscyloskopu z przebiegami CE,Clock, SDI, SDO,
jak uda mi się na moim komputerze uruchomić zawartosć mojego projektu to wrzucę kody z Fubów, a dokładnie z jednego bo całą obsługę termometru zrobiłem w jednym osobnym bloczku. No ale o co dokładnie proszę szanowne forum - posiada ktoś może jakiś gotowy kod do obsługi tego termometru? Potrzebuję podłapać czyiś tok myślenia i przerobić go na mój - w internecie niestety nie znalazłem niczego sensownego na ten temat... Z góry dziękuję za pomoc!
1) wystawiam CE na stan wysoki i ustawiam stan niski po zakończeniu transmisji (dwie paczki po 8 bitów każda, jedna na wysyłanie informacji, a druga na odbieranie)
2) wysyłam w 8 bitach rozkaz do wyświetlenia tam tej temperatury jak chcę ( znak, rozdzielczość i dokładnosć)
3) odbieram cały czas cyfrę 25 (dokładnie 11001) - odpowiedź z termometra w postaci 16bitów przechowuję w wektorze, który jest następnie zamieniany za pomocą ogólnie znanej formułki BIN2BCD i to działa poprawnie.
W moim programie jest jakiś prosty błąd, którego nie potrafię zauważyć. Ostatnio coś przez przypadek zmieniłem i ten termometr zaczął działać... ale po dopisaniu następnych linijek kodu do obsługi czegoś innego pojawił się problem z implementacją kodu programu więc podejrzewając przekroczenie limitu pamięci zacząłem usuwać z programu to czego nie używam i pewnie coś za dużo usunąłem... Do edycji kodu używam Active-HDL, za syntezę odpowiada program simplify syntesis a sama inplementacja i wgranie programu do mikrokontrolera znowu z Active-HDL. Umieszczam zrzut z oscyloskopu z przebiegami CE,Clock, SDI, SDO,

jak uda mi się na moim komputerze uruchomić zawartosć mojego projektu to wrzucę kody z Fubów, a dokładnie z jednego bo całą obsługę termometru zrobiłem w jednym osobnym bloczku. No ale o co dokładnie proszę szanowne forum - posiada ktoś może jakiś gotowy kod do obsługi tego termometru? Potrzebuję podłapać czyiś tok myślenia i przerobić go na mój - w internecie niestety nie znalazłem niczego sensownego na ten temat... Z góry dziękuję za pomoc!