Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Więcej pamięci flash! Pic

mikmas 13 Sie 2004 23:29 1996 17
  • #1 13 Sie 2004 23:29
    mikmas
    Poziom 18  

    Mam mały problemik. Otóż chcę zrobić dość skomplikowane urządzenie, jednak zabraknie mi do niego napewno pamięci programowej (flash). Czy są zewnętrzne pamięci flash? Jeśli tak, to jak ją obsłużyć? (w celu pobrania programu w niej zawartego). Programuję na picach! Proszę o dokładną odpowiedź, bo raczej nie jestem dobry w tym temacie!
    Pozdrowienia MIKMAS.
    Jeszcze takie pytanie na uboczu. Czy posty, które zostały wyróżnione (-30 pkt) wogóle kiedyś stracą swoją pozycję?[/url]

    0 17
  • #2 14 Sie 2004 00:09
    elektryk
    Poziom 42  

    Z reguły nie można podłączyć zewnętrznego flash, aczkolwiek "wyższe modele" (np PIC18F6585/8585/6680/8680) mają taką opcje że mogą pracować nawet z przestrzenią adresową 2MB.

    Procesory z serii PIC16 mają pamięć flash ograniczoną do 8kW, z rodziny PIC18 posiadają nawet 128kB pamięci flash w mikrokontrolerze.

    0
  • #3 14 Sie 2004 03:06
    mikmas
    Poziom 18  

    Ja mam pic16f84a (tak na marginesie). Czyli klops, jak zabragnie mi przestrzeni na program?

    0
  • #4 14 Sie 2004 10:52
    marmur99
    Poziom 17  

    A może opisz ten program. Może przeszacowałeś jego rozmiar i nie będzie potrzebne aż tak dużo pamięci. Wbrew pozorom to 8kW to wcale nie jest tak mało. Zrobiłem kilka dobrych urządzeń, których programy miały mniej niż 8kW.

    Marmur99

    0
  • #5 14 Sie 2004 10:58
    Jacu$
    Poziom 27  

    Mikmas, nie bardzo Cię rozumiem. Piszesz w pierwszym poście:

    Cytat:
    Programuję na picach!


    Takie stwierdzenie to ja rozumiem jako: znam się na programowaniu PIC-ów, czyli wiem o nich sporo i parę rzeczy już na nich zbudowałem.

    W takim razie powinieneś wiedzieć nawet pobieżnie jakie są ich możliwości. Jeśli nie wiesz (głowa to w końcu nie śmietnik) to przecież istnieje taka strona jak http://www.microchip.com/ i tam wystarczy kliknąć w produktach na "8-bit microcontrollers" i otwiera się możliwość posortowania tych scalaków względem rodzaju i wielkości posiadanej pamięci, ilości pinów i/o, możliwości sprzętowych i diabli wiedzą czego jeszcze. Musisz tylko wiedzieć ile tej pamięci flash będzie Ci potrzebne.

    A na koniec dobijasz wszystkich stwierdzeniem:

    Cytat:
    Ja mam pic16f84a (tak na marginesie). Czyli klops, jak zabragnie mi przestrzeni na program?


    No nie wiem. Jeśli mieszkasz na bezludnej wyspie to pewnie klops.
    Ja na Twoim miejscu poszedłbym do sklepu (na giełdę, poszukał w Internecie) i kupił taki z większą pamięcią. Skoro umiem napisać program na 16F84 to na taki większy też napiszę.

    Przepraszam, jeśli przesadziłem ale chciałem Cię trochę zmobilizować do działania.

    0
  • #6 14 Sie 2004 14:21
    mikmas
    Poziom 18  

    -->No nie wiem. Jeśli mieszkasz na bezludnej wyspie to pewnie klops.
    Ja na Twoim miejscu poszedłbym do sklepu (na giełdę, poszukał w Internecie) i kupił taki z większą pamięcią. Skoro umiem napisać program na 16F84 to na taki większy też napiszę. <--

    No tak tylko ja mam 14 lat i nie mogę sobie pójść od tak na giełdę. Wsyzstko jest uzależnione od taty. Mówiłem mu, żeby mi kupił pic16f877a, ale jak narazie to nie kupił mi. Dlatego wszystko muszę robić na tym co mam. Czyli najlepiej sztucznie powiększyć pamięć flash, ale widzę, że to nie możliwe

    -->Mikmas, nie bardzo Cię rozumiem. Piszesz w pierwszym poście:
    Cytat:
    Programuję na picach!


    Takie stwierdzenie to ja rozumiem jako: znam się na programowaniu PIC-ów, czyli wiem o nich sporo i parę rzeczy już na nich zbudowałem. <--

    Heh. Programuję na pic'U i to nie znaczy, że dużo o nich wiem. Wiem tylko ile mają pamięci Flash, jaki mają eeprom (pojemność), ale nie wiem, czy da się podłączyć pod niego dodatkową pamięć flash.

    Marmur99
    Zrobiłem prototyp sprzętu, tylko który miał 2x mniej możliwości niż bym chciał, a i tak musiałem błagać kompilator, żeby jakoś się zgodził na przetrawienie tego


    Takie pytanie na marginesie... Jak zrobić odpowiednik funkcji mid? (ci, co się znają na programowaniu powinni wiedzieć. W C++ jest to CH::String.Mid, w VB - Mid

    0
  • #7 14 Sie 2004 14:25
    marmur99
    Poziom 17  

    A co to za kompilator? Jeśli CCS to po przesiadce na Hi-tech'a zaoszczędzisz pewnie z 25% miejsca.

    Marmur99

    0
  • #8 14 Sie 2004 15:42
    mikmas
    Poziom 18  

    Kompilator Basic. Tylko nie chcę, żebyś krytykował go. Na inny się nie przeżucę, bo inne języki mi nie chodzą

    0
  • #9 14 Sie 2004 16:03
    Jacu$
    Poziom 27  

    @mikmas:

    Czy chodzi Ci o taką funkcję - Mid(string, start[, length]) ?
    Jeśli tak, to domyślam się, że być może chcesz umieścić w pamięci programu jakieś ciągi znaków, które będziesz następnie przetwarzał przy pomocy PIC-usia. W takim przypadku możesz swoje dane zapisać w zewnętrznej pamięci szeregowej EEPROM i odczytywać ją za pomocą protokołu i2c. Oczywiście pisząc to nie mam pojęcia co chcesz zrobić i czy takie rozwiązanie się sprawdzi (szybkość dostępu do danych będzie stosunkowo mała). Koszt takiej pamięci o pojemności 64KB (24C512) to około 20 złotych. Z zastosowaniem pamięci równoległej będzie problem - mało pinów w PIC16F84.
    Nie wiem, na ile wnikliwie czytałeś data sheet tego procka. Być może nie zdajesz sobie sprawy z faktu, że PIC16F84 ma bardzo mały obszar GPR i może się okazać, że zabraknie mu zasobów do zrealizowania Twojego zadania. Masz tylko 68 bajtów do swojej dyspozycji.
    Jeśli będziesz musiał wczytać do GPR jakiś string by go następnie przetworzyć to może się zdarzyć, że po prostu nie zmieści się on w pamięci danych mikrokontrolera.
    Podsumowując: być może ten mikrokontroler nie nadaje się do zadania, które przed nim postawiłeś.
    Ale nic to, zawsze możesz zrobić na nim np. grę telewizyjną :wink:

    0
  • #10 14 Sie 2004 21:02
    mikmas
    Poziom 18  

    Tzn. Jeżeli nie można odczytać, jako pamięc flash, to chcę, żeby dalszy prog był w eepromie (zewnętrznym), a mikrokontroler, żeby przetrawiał i wykonywał operacje. Otóż chcę zrobić mini komputerek. Mid - właśnie o taką funkcję mi chodziło. Czyżbyś znał się na Basicu :)? Jak tak, to może wiesz jak wyświetlić COŚ na telewizorku? Wiem wszystko jak podłączać, ale nie potrafię wygenerować impulsu. Poza tym nie wiem jak zatkać katodę. No, ale skoro znasz się na Basicu, to może i wiesz jak wyświetlić coś na telewizorku (także uzywając Basica)? Używam Proton+...

    0
  • #11 14 Sie 2004 21:04
    mikmas
    Poziom 18  

    Aha! Co to jest ten GPR :D?

    0
  • #12 14 Sie 2004 21:30
    elektryk
    Poziom 42  

    mikmas napisał:
    Aha! Co to jest ten GPR :D?
    General purpose register

    A co do wydłużania zewnętrznej pamięci, to nie warto się nawet w to bawić (na forum już była dyskusja). Jak zabraknie Ci pamięci to weź "większy procesor" np PIC16F628(A) a potem PIC16F648A są one kompatybilne nóżkowo z F84(A), a cena porównywalna.

    0
  • #13 14 Sie 2004 22:45
    mikmas
    Poziom 18  

    niestety muszę się cieszyć tym co mam :(

    0
  • #14 15 Sie 2004 00:47
    Jacu$
    Poziom 27  

    @mikmas

    Niestety, nie znam się na Basic'u. Znałem się na nim 20 lat temu gdy dorwałem mikrokomputer ZX-81 (skubaniec nie rozumiał Fortranu) ale tam nie było takich funkcji jak MID.
    Opis funkcji znalazłem za pomocą Google, ponieważ chciałem się dowiedzieć jaki programik zamierzasz pisać. W zewnętrznym EEPROM-ie możesz mieć tylko dane. Programu z tamtąd nie da się wykonać.
    Co do wyświetlania czegoś na telewizorze to chyba nie zamierzasz sterować bezpośrednio z PIC-a katodą kineskopu 8O
    Wystarcz, że wygenerujesz za jego pomocą przebieg zgodny ze standardowym sygnałem telewizji czarno-białej (625 linii obrazu, 50 półobrazów na sekundę etc.) i podasz go na wejście video telewizora. Oczywiście, ma to być sygnał analogowy (ma mieć kilka różnych poziomów a nie tylko 0/+5V) więc niezbędny będzie tu przetwornik cyfrowo-analogowy typu "drabinka rezystorów". Do postu dołączam gotowe rozwiązanie, które mnie sześć lat temu powaliło na kolana. Zmontowałem to, podłączyłem do telewizora i poległem. Spróbuj...

    0
  • #16 15 Sie 2004 01:09
    mikmas
    Poziom 18  

    PS. Pic ma przetwornik C/A. Tak wnioskuję bo udało mi się zrobić "spadającą linię" na oscyloskopie. Podłączyłem pod jedno wyjście, napisałem programik i po włączeniu powoli spadała ta linia na oscyloskopie. Nie pamiętam nazwy tej funkcji (łatwo ją znaleść). Oczywiście tu mówię o proton+. Dziwne! QBasic już miał Mid. Zwykły Basic też chyba miał.
    Nie chcę, aby pic wykonywał program z dodatkowej pamięci. Chcę, żeby w niej były jakieś (na początku) proste komendy i poprzez funckję mid, żeby wydłubał parametry i odpowiednio ją wykonał

    0
  • #17 15 Sie 2004 01:11
    elektryk
    Poziom 42  

    Żaden PIC nie posiada wbudowane przetwornika C/A, można jedynie uzyskać efekt napięcie analogowe, generując sygnał o zmiennym wypełnieniu.

    0
  • #18 15 Sie 2004 14:41
    mikmas
    Poziom 18  

    Nie wiem, czy pełny,czy nie pełny, czy analogowy, czy też nie, jednak ja widziałem ładną, prostą linię, która opadała

    0