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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 28 maja 2025, o 17:07


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

    W zanadrzu ubsługa przez XMEGA karty SD widzianej poprzez USB w windows jako dysk przenośny.
    Kontynuować ?! Czy jest to interesujące ?! 94%  94%  [ 30 ]
    Niee ... nuda ! 6%  6%  [ 2 ]
    Liczba głosów : 32
    Autor Wiadomość
    PostNapisane: 22 kwi 2016, o 19:26 
    Offline
    Nowy

    Dołączył(a): 01 lut 2013
    Posty: 2
    Pomógł: 0

    Napisałem ten krótki poradnik, ponieważ mam wrażenie że sprzętowa obsługa portu USB dla XMEGA jest w wielu publikacjach traktowana po macoszemu.

    Atmel udostępnia AtmelStudio w wersji 7 oraz biblioteki Atmel Software Framework,
    które umożliwiają w dość prosty sposób obsłużyć komponenty "wokół" procesora.

    ARDUINO ma "wbudowaną" obsługę portu szeregowego co znakomicie ułatwia debugowanie programów, a dlaczego tego nie zrobić dla procesorów XMEGA z ze sprzętową obsługą USB?!

    Dlatego spróbujmy zmusić naszą XMEGE by przekierować STDIN/STDOUT na emulowany port szeregowy poprzez wbudowany w procesor sprzętowy interfejs USB.

    W tym poradniku użyłem Atmel Studio 7.0.790 (biada mi, nie eclipse) z "wbudowanym" Atmel Software Framework w wersji 3.30.1.

    Zaczynamy od otwarcia nowego projektu "GCC C ASF Board Project"
    Obrazek

    Następnie wybieramy typ procesora (w moim wypadku ATxmega128A3U) i rodzaj płyty na której on jest.
    Ponieważ nie używam żadnego z zestawów firmy Atmel, wybrałem "User Board Template"
    Obrazek

    Po utworzeniu pustego projektu czas na wybór komponentów z biblioteki Atmel Software Framework (ASF) z których będziemy korzystać.
    By to zrobić z menu wybierzmy ASF -> ASF Wizard lub wciśnijmy kombinację klawiszy ALT+W.
    Powinno się pojawić okno jak poniżej...
    Obrazek
    Tutaj bardzo ważne jest zaznaczenie komponentu USB Device Serwice i z listy rozwijanej wybranie cdc_stdio ( uwaga: jest również komponent "cdc" - to nie ten, musi być cdc_stdio)
    Klikamy Add oraz Apply i otrzymujemy to co poniżej
    Obrazek


    Teraz zamykamy okienko ASF i konfigurujemy nasz projekt.
    W oknie Solution Explorer odnajdujemy w katalogu "config" pliki conf_clock.h, conf_usb.h i poprzez podwójne kliknięcie na nich otwieramy je do edycji.
    Obrazek

    Zauważcie, że u mnie przy nazwach plików jest czerwona kropka, świadczy to o tym, że plik został zmodyfikowany.

    Plik conf_clock.h definiuje parametry taktowania procesora.
    Modyfikujemy w nim trzy sekcjie:

    1. zmieniamy parametr CONFIG_SYSCLK_SOURCE z domyślnego 2MHz na 32Mhz
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    2. zmieniamy parametr CONFIG_SYSCLK_PSADIV z domyślnego SYSCLK_PSADIV_1 na SYSCLK_PSADIV_2
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    3. usuwamy komentarz w liniach zawierających CONFIG_OSC_RC32_CAL i CONFIG_OSC_AUTOCAL_RC32MHZ_REF_OSC
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Teraz zajmijmy się plikiem conf_usb.h
    W nim znajdzmy definicję funkcji wywoływanych po aktywacji portu usb
    Musimy odnaleźć w nim definicje UDI_CDC_ENABLE_EXT, UDI_CDC_DISABLE_EXT
    i zamienić na poniższe ...
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Linie te są odpowiedzialne za podłączenie/odłączenie STDIO w momencie gdy jest aktywowany/deaktywowany port USB z obsługą urządzenia typu Communication Device Class.


    Następnie dodajmy co nieco do plilku main.c
    zmieniając jego zawartość na poniższą ...
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    I to już właściwie wszystko ....
    Linie
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
    powinny się znajdować na początku każdego projektu używającego ASF.
    Linia stdio_usb_init(); włącza obsługę STDIO dla USB.

    Po kompilacji i zrestartowaniu procesora mamy w systemie windows dodatkowy port szeregowy, który jest połączony z STDIN/STDOUT procesora i możemy go wykorzystać do dowolnych celów....


    A TUTAJ rozwinięcie tematu ... dokładamy kartę SD.


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Ostatnio edytowano 23 kwi 2016, o 19:40 przez radek_w, łącznie edytowano 6 razy

    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2016, o 21:55 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 717
    Lokalizacja: Zielona Góra
    Pomógł: 75

    Super, prosimy o więcej, tylko popraw wklejenie kodu na SYNTAX C.

    _________________
    pozdrawiam
    phill2k



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 wrz 2020, o 08:45 
    Offline
    Nowy

    Dołączył(a): 10 mar 2015
    Posty: 2
    Pomógł: 0

    Przepraszam że takie starocie odgrzewam ale mam pytanie w kwestii tego USB. Jedno co jest bardzo nie wygodne to to że po resecie ATX-a komunikacja z USB zanika. Jedyne co pomaga to wyjęcie wtyczki z PC-ta. Czy można tej niedogodności jakoś zapobiec ? Czy może to leży po stronie PC-ta ?



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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