Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 15 kwi 2026, o 22:53


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 2 sty 2014, o 21:14 
Offline
Nowy

Dołączył(a): 02 sty 2014
Posty: 9
Pomógł: 1

Witam wszystkich forumowiczów w nowym roku!

Projekt, którym aktualnie się zajmuje polega na zbudowaniu czytnika pamięci flash AM29F010 i podobnych, który dokonuje odczytu zawartości całej pamięci. Przesyła ją na komputer PC i tam tworzy zgrabny plik gotowy do odczytania.

Układ jest już zmontowany na płytce prototypowej, nawiązałem komunikację z pamięcią, potrafię odczytać zawartość zadanego adresu z pamięci i chwilowo wyświetlić ją na wyświetlaczu LCD.

Napisałem funkcję przepytującą pamięć ze wszystkich adresów po kolei i zastanawiam się w jakiej postaci najlepiej wysłać dane po RS232 do PC i je odebrać.

Moje pytanie jest następujące, w jaki sposób jest zbudowany plik binarny. Czy jest to zlepek zer i jedynek czy ma jakieś konkretne formatowanie ponieważ odczytany na komputerze PC przy pomocy jakiegokolwiek programu jest już podzielony na adresy a zawartość jest wyświetlona w HEX. Myślałem, żeby dane zapisać w pliku o formacie Intel Hex ponieważ jest on dla mnie dużo bardziej czytelny i jego konstrukcja jest doskonale opisana w sieci. Wymaga on trochę więcej pracy programistycznej ze względu na konieczność liczenia sumy kontrolnej każdego wiersza. Wszelkie informacje na temat budowy pliku binarnego będą mile widziane ;).

Kolejna sprawa dotyczy samego wysyłania danych do PC. Wymyśliłem to sobie w ten sposób że będę odczytywał jakąś pulę adresów i zapisywał ją w buforze mikrokontrolera. Gdy bufor się wypełni wystąpi przerwanie wysyłające zawartość bufora do komputera PC.

Prosiłbym o wszelkie sugestie dotyczące jak najlepszego rozwiązania w/w problemów ponieważ w tematyce komunikacji cyfrowej jestem bardzo początkujący, jest to także mój pierwszy większy projekt oparty na mikrokontrolerze.

Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sty 2014, o 23:32 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Najlepiej odczytaj 16 bajtów i wyślij całą linię pliku IntelHex poprzez RS232 w postaci tekstowej i zakończ '\r'. Oprogramowanie po stronie PC będzie miało za zadanie tylko wpisać kolejne odebrane linie do pliku. Liczenie CRC dla IntelHex jest wyjątkowo proste. Sumujesz bajt liczby bajtów, 2 bajty adresu i 16 bajtów danych. Robisz to korzystając ze zmiennej o długości 8 bitów. Następnie robisz negację i dodajesz 1. Łatwo będzie debugować tak napisany program. Twoja pamięć ma 128kB co jest większe niż 64kB, czyli będziesz musiał zgłębić temat typów rekordów.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO