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



Teraz jest 8 kwi 2026, o 02:39


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 28 sty 2017, o 05:59 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Dobry!

Panowie, mam kilka pytań, mianowicie:
1. Czy w rodzinie AVR/ATtiny są dostępne mikrokontrolery NIE posiadające interfejsu SPI?
2. Jak to jest z tym ISP i SPI, tzn. Czy programowanie po interfejsie ISP (który de facto opiera się na SPI) realizowane jest jakoś w sposób sprzętowy, czy po prostu w jakiejś sekcji pamięci jest domyślny program (bootloader), który realizuje przypisywanie odpowiednich danych do odpowiednich komórek? Z tego co pamiętam nawet wykorzystanie własnego bootloadera nie przeszkadzało interfejsowi ISP, więc gdzie znajduję się realizacja ów interfejsu i czy programista ma do niego dostęp?
3. Zna ktoś może jakiś przykład bootloadera który współpracuje z programem użytkownika? Chodzi o to, że chciałbym wykorzystać pewne funkcje związane z obsługą nRF24l01 (interfejs SPI) zarówno w programie bootloadera jak i programie użytkownika i celem optymalizacji miejsca nie chciałbym ich dublować. Jest na to jakiś sposób?
4. Czy implementacja obsługi interfejsu SPI w ASM jest znacznie bardziej optymalna niżeli w C? Te funkcje są bardzo proste i się zastanawiam czy AVR-GCC nie optymalizuje ich wystarczająco dobrze.

Powyższe pytania wynikają z chęci napisania własnego bootloadera działającego w oparciu o wyżej wspomniany moduł radiowy, przy możliwie dużej optymalizacji miejsca i kombinuje jak to upychać, żeby ze sobą ładnie współgrało i nie zeżarło mi zbyt dużo zasobów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2017, o 06:35 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Jatsekku napisał(a):
1. Czy w rodzinie AVR/ATtiny są dostępne mikrokontrolery NIE posiadające interfejsu SPI?

Nie chodzi o to żeby kolegę zbyć ... i odesłać do not, no ale jednak na prawdę ... powiedz mi proszę co jest trudnego - NAWET przy słabej albo znikomej znajomości angielskiego, żeby otworzyć kilka not PDF różnych procków AVR o które pytasz i wyszukać okiem na (UWAGA!) pierwszej stronie, tłustym drukiem choćby samego napisu SPI ? no toż jak byk widać, które mają ten interfejs a które nie mają - czyli od razu masz odpowiedź na to swoje pierwsze pytanie. Ale dla ułatwienia - zajrzyj do noty na tę pierwszą stronę byle procka ATtiny i byle procka ATmega ... ok?

2. ISP to nie żaden bootloader ... a realizacja znajduje się w procku i jest to pewna procedura wysyłania konkrentnych danych do procka po magistrali ISP (SPI) która rozpoczyna procesy programowania bądź odczytu danych do i z procka. Opisane jest to krok po kroku w każdej nocie PDF procka. Nie ma to nic wspólnego z bootloaderem.

3. musisz sobie taki bootloader napisać, który zamiast pobierać dane np przez RS232 (tak działa większość bootloaderów) będzie się komunikował po SPI np z twoim modułem radiowym.

4. na przykład wysłanie bajtu przez sprzętowy SPI to poza jego konfiguracją sprowadza się tylko do zapisania bajtu danych do rejestru nadawczego SPI i sprawdzenia statusu czy już to wylazło na zewnątrz. Podobnie z odbiorem - co tu jest do optymalizacji ? Poza tym weź ty sobie napisz NAJPROSZTĄ procedurę do wysłania bajtu przez sprzętowe SPI (masz ją nawiasem mówiąc w Bluebooku) i podejrzyj że pan po kompilacji w pliku *.lss jak to wygląda w asemblerze - i sam sobie znowu odpowiesz na to pytanie porównując kilka linijek kodu w asm i w C ;) Ba nawet w nocie PDF masz te kilka linijek pokazane w C i w ASM

Jatsekku napisał(a):
Powyższe pytania wynikają z chęci napisania własnego bootloadera działającego w oparciu o wyżej wspomniany moduł radiowy, przy możliwie dużej optymalizacji miejsca i kombinuje jak to upychać, żeby ze sobą ładnie współgrało i nie zeżarło mi zbyt dużo zasobów.

BARDZO dobry cel - polecam - bo już chociażby pierwsze próby pisania czegoś takiego dadzą ci bardzo dużo wiedzy i praktyki.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2017, o 13:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1041
Lokalizacja: Trójmiasto
Pomógł: 190

Cytuj:
1. Czy w rodzinie AVR/ATtiny są dostępne mikrokontrolery NIE posiadające interfejsu SPI?

Oczywiście że są, a już nawet pomijając kwestię sprawdzania w notach jak wspomniał przedmówca to sam producent na swojej stronie udostępnia fajną wyszukiwarkę gdzie można jako kryterium zaznaczyć posiadanie przez procka m.in. magistrali SPI
http://www.atmel.com/products/microcontrollers/avr/default.aspx?tab=parameters
Górną belkę tabeli można edytować np usuwając opcje których nie chcemy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2017, o 15:16 
Offline
Użytkownik

Dołączył(a): 10 kwi 2014
Posty: 61
Pomógł: 0

Dziękuję bardzo za odpowiedzi,
przeszukiwanie not katalogowych w celu sprawdzania czy są takie układy czy ich nie ma byłoby zbyt problematyczne, mógłbym trafić np 10, które mają te SPI i dalej nie wiedziałbym jak to jest :P To trochę jak udowadnianie zależności matematycznych przy korzystaniu z podstawiania kolejnych liczb :) Wyszukiwarka super, nawet nie wiedziałem, że taka jest, dziękuję bardzo!

Sprawa ISP też już jest dla mnie jasna. Również dziękuję :)
A jak to jest jeszcze ze współdzieleniem funkcji znajdujących się w obszarze BLS?
Czy mógłbym prosić o jakąś wskazówkę jak się odnieść do takiej funkcji?
Dajmy na to że w BLS mam napisane jak odbierać i wysyłać dane przez nRF, bootloader napisany, wgrany, wszystko fajnie działa i teraz dodatkowo chciałbym przy użyciu tej samej funkcji znajdującej się w sekcji BLS wysłać daną obliczaną w programie głównym do komputera (np.ADC).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sty 2017, o 21:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 cze 2016
Posty: 247
Lokalizacja: Rybnik
Pomógł: 13

To hmm pozostaje skok wstawką assemblerową do adresu danej funkcji. A adres znajdziesz w pliku lss.

_________________
Situs != Situs



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: 5 ] 

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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO