logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wybór mikrokontrolera z MMC/SD, Host USB, I2C i In Application Programming

rmajda 06 Lut 2008 14:23 3953 18
REKLAMA
  • #1 4776188
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Witam,

    Szukam do nowego projektu mikrokontrolera który musi spełniać następujące wymagania:
    - interfejs MMC/SD lub Host USB (żeby można było podłączyć pendrive lub MMC/SD),
    - I2C
    - i jeszcze jedna właściwość In Application Programming, czyli chciałbym aby z poziomu aplikacji po włożeniu pendrive lub karty SD/MMC przeprogramować mikrokontroler flashem ktory jest na karcie/pendrive.

    Początkowo wybrałem ARM Philipsa LPC2888 ale on jest w BGA i odpada.
    Ma ktoś może jakieś propozycje, nie znam niestety ARMów Atmela ale może któryś z nich by się nadał.
    A może istnieje jakieś inne rozwiązanie na przeprogramowanie flasha z pendriva lub SD/MMC?

    Pozdrawiam,
  • REKLAMA
  • #2 4776551
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    MMC/SD to każdy z SPI ;)

    Każdy AVR, a jak chcesz mieć dodatkowo USB HOST'a to AT90USB ...

    Co do bootowania z MMC/SD to wszystko zależy od programu ;)
  • #3 4776892
    marekos
    Poziom 16  
    Posty: 140
    Pomógł: 14
    Ocena: 4
    Koledze chodzi chyba o całkowicie sprzętowy kontroler SD/MMC.
    Może LPC2368 ma wiele peryferjów i obsługę SD/MMC i jest w obudowie LQFP100 więc nie jest to BGA.
  • REKLAMA
  • #4 4777104
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Kolego mariuszlorenc: Jaki konkretnie atmel?

    To SD/MMC czy USB to głównie chodzi o nośnik z którego będzie możliwe przeprogramowanie kodu uC w "polu" bez użycia komputera.

    Czy macie jakieś pomysły jak to zrobić? Mam pewien a mianowicie umieszczę na początku programu sprawdzanie czy jest nowy firmware a jak jest to podmienię. Nie jestem tylko pewien które uC pozwalają na pisanie po swoim flashu.
  • #5 4777568
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Każdy AVR ... to znaczy każdy AVR.

    Ten "każdy AVR" pozwala na zaimplikowanie czegoś co nazywa się bootloader.

    Karta MMC/SD to raczej dobry wybór ;) Program musi sprawdzić(najlepiej po resecie ;) ) czy jest karta lub przerwaniowo ją wykrywać ... program powinien się ładować do sekcji bootloadera, a dalej Ci nie pomogę bo nie miałem jeszcze potrzeby implementowania bootloadera w swoich projektach ;)

    //Karty MMC/SD są obsługiwane interfacem SPI, a ich programowa obsługa jest banalna jeżeli nie korzystasz z FAT'a ... w przeciwnym razie troszku się z nim pomęczysz ;)
  • #6 4778271
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
  • #7 4780792
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    Tak sobie myślę, że nawet ekonomicznie nie będzie błędem posadzenie dodatkowego np. JTAGowego programatora, na jakimś maleństwie które z drugiej strony będzie miało dziurkę do FLASH kard.
    W takim układzie znacznie trudniej wyobrazić obie awarie których nie można uleczyć upgrejdem.
    A całe zadanie łatwo "podzlecić".
  • REKLAMA
  • #8 4781207
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
    Jeśli szukasz czegoś z czego można by zaprogramować AVR bez użycia PC, to dość fajny pomysł jest tutaj http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=240&item_type=project
    Jest to PalmAVR, używa Palma np. III. Ja ostatnio kupiłem w tym celu starego sprawnego Palm IIIc za 40 zł. Dość tanie rozwiązanie, a sprawuje się dobrze. Inna strona dotycząca tego samego, wraz ze screenami to http://palmavr.sourceforge.net/. O
    Urządzenie obsługuje programatory:
    Supported programmers:
    · AVR061 protocol (e.g., STK500 and AVR ISP)
    · AVR109 protocol (e.g., orig. AVR910, enhanced AVR910, and AVR Butterfly)
    · data transfer rate is freely configurable from 9600 until 115200 bps
    · support for programming over RS232, IrCOMM, RFCOMM (Bluetooth)
    Dokładniejsze opisy na w/w stronce.
  • #9 4781552
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Freddy: Hmm, pomysł ciekawy ale nie zmuszę klienta aby sobie kupił palma żeby przeprogramować flash :-)

    Xitami: Scalaków jak najmniej. Pomysł dobry tyle że do mojego zastosowania się nie nadaje.

    Jak na razie w rankingu prowadzi LPC2368 :-)
  • #10 4781804
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
    Nie zmusisz, ale nie wiem, czy to nie jest dobre rozwiązanie. Palm za 40 - 50 zł to wcale nie tak dużo, a z tego co piszesz
    Cytat:
    To SD/MMC czy USB to głównie chodzi o nośnik z którego będzie możliwe przeprogramowanie kodu uC w "polu" bez użycia komputera
    to głównie chodzi o programopwanie bez PC, to jest to dobre i tanie rozwiązanie.
    A może tu coś ciekawego znajdziesz http://members.aon.at/voegel/, opisane są sposoby i podane biblioteki komunikacji AVR z kartami pamięci
  • #11 4781867
    marenc
    Poziom 24  
    Posty: 881
    Pomógł: 37
    Ocena: 5
    Nie chcesz zmuszać klienta do kupowania programatora itp. a do kupowania karty tak? :P

    Ja na Twoim miejscu zrobił bym tak ... osobny układ ... ATtiny2313 do odbioru danych przez RS232 z komputera(pobranie nowego firmware'u do np. EEPROM'u). Następnie jakiś przełącznik i wysyłanie danych do układu docelowego przez RS232(przyjęcie programu do sekcji BOOTLOADER'a i podmiana software'u).

    Jak będzie często przeprogramowywany to polecał bym raczej zewnętrzny flash, bo wtedy wystarczy kostkę podmienić mechanicznie, a kostki mogły być jako moduły dołączane z boku(np. obudowy) ;)

    //Lub lepiej ... niech ten układ ATtiny2313 programuje ten poprzedni przez ISP ;) Taki mini przenośny programator za 10,-zł ;)
  • #12 4782395
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    mariuszlorenc: Nie bede zmuszał klienta do kupowania karty bo urządzenie to będzie pracowało defaultowo z karta i pendrivem. I dlatego tak się upieram nad podmianą flasha z karty SD.

    Freddy: Dzięki za link, chociaż Bascoma unikam.
  • #13 4782522
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
    Proszę bardzo, ale to nie jest w Bascomie, tylko do Bascoma, co nie znaczy, że nie można wykorzystać w innym języku.
    Biblioteki są w Assemblerze
  • REKLAMA
  • #14 4782784
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    zobacz: https://www.elektroda.pl/rtvforum/topic935930.html
    ISP na małym ATMEL'ku przez USB. Myślę, że da się dobrać odpowiedni mały kontrolerek który poradzi sobie także z flash kartami.
    Upgrade możliwy przez usb albo kartę, koszt kilka złotych, szansa że źle przeprowadzone programowanie zabije układ około zera.
    Dzięki usb, upgrade możliwy i przez internet.
    warto pomyśleć o jakimś szyfrowaniu, co dzięki takiemu układowi nie powinno być trudne.
  • #15 4782846
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Taki atmelek musi mieć obsługę FAT. Oczywiście jest to do zrobienia.
    Zaczynam się wahać :-) bo pomysł wydaje się ciekawy.
  • #16 4783001
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
    rmajda napisał:
    Taki atmelek musi mieć obsługę FAT. Oczywiście jest to do zrobienia.
    Zaczynam się wahać :-) bo pomysł wydaje się ciekawy.

    Ten ostatni link AVR DOS, to właśnie obsługa FAT16 i FAT32, więc już w zasadzie masz komplet, tylko siadać i pisać program :)
  • #17 4783289
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Gdzie mogę znaleźć info jak jednym prockiem (programatorem) zaprogramować drugi? W podanym linku nie ma opisów tylko zdjęcia. Czy jest to skomplikowane? Pod jakimi hasłami tego szukać?


    Dobra mam, to chyba to

    http://www.fischl.de/usbasp/
  • #18 4783870
    Freddy
    Poziom 43  
    Posty: 19997
    Pomógł: 1394
    Ocena: 2821
    rmajda :arrow: chyba Ci sie troche linki pomyliły.
    Sprawdź, to jest coś dla Ciebie http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_id=1187&item_type=project
  • #19 4784854
    rmajda
    Poziom 20  
    Posty: 485
    Pomógł: 13
    Ocena: 17
    Link zmieniłem :-)

Podsumowanie tematu

LABEL_AI_GENERATED
Poszukiwany jest mikrokontroler do projektu z obsługą interfejsów MMC/SD lub Host USB, I2C oraz funkcją In Application Programming (IAP), umożliwiającą przeprogramowanie pamięci flash mikrokontrolera z poziomu aplikacji po podłączeniu pendrive'a lub karty SD/MMC. Wstępnie rozważano ARM Philips LPC2888, jednak ze względu na obudowę BGA został odrzucony. Propozycją jest LPC2368 z obudową LQFP100, posiadający sprzętowy kontroler SD/MMC i liczne peryferia. Alternatywnie sugerowano mikrokontrolery AVR z bootloaderem, które mogą obsługiwać karty MMC/SD przez interfejs SPI oraz USB Host (np. AT90USB). Implementacja bootloadera pozwala na wykrywanie nowego firmware i aktualizację pamięci flash. Dyskutowano także o wykorzystaniu zewnętrznych programatorów, np. przenośnych rozwiązań typu PalmAVR, jednak autor preferuje rozwiązanie bez konieczności dokupowania dodatkowych urządzeń przez klienta. Wskazano na konieczność obsługi systemu plików FAT16/FAT32 dla kart SD/MMC, co jest możliwe dzięki dostępnym bibliotekom w assemblerze. Zaproponowano również rozwiązania z wykorzystaniem małych mikrokontrolerów (np. ATtiny2313) do odbioru i przesyłania firmware do głównego układu. Wskazano na projekty i biblioteki dostępne na stronach avrfreaks.net oraz elektroda.pl, które ułatwiają implementację komunikacji z kartami pamięci i programowanie przez USB. Podsumowując, najlepszym wyborem wydaje się LPC2368 lub mikrokontrolery AVR z odpowiednio zaimplementowanym bootloaderem i obsługą FAT, umożliwiające aktualizację firmware z nośników USB lub MMC/SD bez konieczności użycia komputera.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA