Witam!
Wspólnie z kolegami zbudowaliśmy 3-osiową frezarkę CNC i teraz zajmujemy się jej oprogramowaniem. Sterowniki napędów, układy zasilania oraz moduł komunikacyjny z PC już wykonaliśmy i wszystko działa. Piszemy własny program na PC zamieniający G-Code na strukturę danych, w której znajdują się dane potrzebne do wysterowania każdej z osi. Dane wysyłane są przez przejściówkę USB-RS232 na Atmegę16 - wszystko działa. Problem polega na płynnej pracy urządzenia.
Początkowo zakładaliśmy, aby wysyłać część danych do uC, który zajmuje się kontrolą sterowników silników krokowych, a następnie po wykonaniu np. połowy instrukcji z bufora, dosyłać kolejne części danych. Niestety Atmega wyraźnie nie wyrabia z równoczesnym odbiorem, zapisem danych oraz sterowaniem napędów osi. Cała struktura danych nie zmieści się w pamięci Atmegi.
Pojawił się więc pomysł, aby na początku zgrać całą strukturę danych na jakaś zewnętrzną pamięć, a następnie Atmega cyklicznie odczytywałaby sobie kolejne dane z tej pamięci. Teraz pytanie - jaka pamięć się do tego nadaje, chodzi tutaj o dość szybki odczyt, aby możliwa była płynna praca urządzenia. W biblioteczce mam dwie książki Mirka, w których pojawia się kwestia pamięci EEPROM oraz kart SD - nie wiem czy któraś z nich się nadaje, może jakaś inna? Flash?
Pytam, ponieważ chcielibyśmy na początku dobrze wybrać odpowiednią pamięć, do której można łatwo zapisać najlepiej przez Atmegę strukturę danych, a potem kolejno, szybko odczytywać kolejne dane.
Z góry dziękuję za odpowiedzi i nakierowanie na jakieś z rozwiązań.
Pozdrawiam
|