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



Teraz jest 28 mar 2024, o 19:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 29 ] 
Autor Wiadomość
PostNapisane: 14 sty 2018, o 00:18 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Witam
Dostałem zadanie żeby zastąpić miktokontroler SAB80C535 czymś nowszym. O urządzeniu wyposażonym w ten mikrokontroler wiem tyle, że w swojej strukturze posiada jeszcze zewnętrzne pamięci: Am27C256, SRM2264LCT, licznik PD71054 oraz 8 bitowy konwerter A/C. Program dla mikrokontrolera został prawdopodobnie napisany w asemblerze. Zakładam (niestety nie dostałem nowych wytycznych), że nowy mikrokontroler powinien być również 8 bitowy, tani i łatwo dostępny. Zastanawiam się czy istnieje jakiś 8 bitowy mikrokontroler, który ma tyle pamięci żeby nie trzeba było stosować pamięci zewnętrznych. Co możecie mi polecić przy tak niewielkiej ilości informacji? :D
Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 09:07 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

Jeśli szukasz mikrokontrolera 8-bitowego z rdzeniem '51 to obejrzyj sobie serię EFM8.
Są małe, tanie, dobrze wyposażone.
Producent deklaruje minimum 10 lat dostępności na rynku.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 10:39 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Tylko co rozumiesz przez "zastąpić"?

1. Bierzesz inny mikrokontroler wgrywasz do niego program do SAB'a i wlutowujesz w to samo miejsce?
2. Czy bierzesz inny mikrokontroler i piszesz na nowo program?

Jeśli to pierwsze to o ile nie masz źródeł to może się to w ogóle nie udać.
Jeśli to drugie to możesz zastosować "cokolwiek" ;-)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 15:30 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Mam kod źródłowy programu (w asemblerze), na którym działa SAB, natomiast same wytyczne są mało pomocne (wymienić mikrokontroler na coś nowszego), zdaje sobie sprawę z tego, że będzie trzeba przeprojektować na nowo płytkę, bo procka z taką samą konfiguracją wyprowadzeń jak SAB80C535 to nie znajdę. Po prostu żeby mi się nie dostało (za mocno) chce znaleźć jakiś popularny, 8 bitowy mikrokontroler, którym "zastąpię" obecny, a że w dobieraniu mikrokontrolerów mam marne doświadczenie, dlatego pytam. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2018, o 15:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

A znasz asembler '51? Bo raczej nie znajdziesz 100% kompatybilnego procesora i pewne zmiany będziesz musiał zrobić by dostosować do nowego procesora.
Ja na Twoim miejscu zacząłbym od analizy kodu i zasobów jakie są w nim wykorzystywane przez stary program oraz czym na zewnątrz sterujesz i jakie połączenia / protokoły komunikacyjne wykorzystujesz. I na tej podstawie szukał nowego układu.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 sty 2018, o 20:47 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Jeżeli kod, który masz to wynik dissasemblacji to niewiele Ci on pomoże w przejściu na inny procek.

P. S. A po co w ogóle ma być ten procek zmieniony?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2018, o 21:34 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

micky procek musi być zmieniony, bo stary powoli przestaje być dostępny.
Według tego, co jest zapisane w kodzie programu, wykorzystywane jest 20 linii I\O mikrokontrolera, 9 przerwań (7 zewnętrznych oraz przerwania od licznika T0 i T2) oraz wbudowany konwerter A/C. Na co jeszcze muszę zwrócić uwagę przy dobieraniu procka? Niestety mam małe doświadczenie w dobieraniu odpowiedniego procka do istniejącego projektu. Jako zamiennik znalazłem AT89C51AC3, tylko nie wiem czy to dobry wybór. Obecnie używany SAB80C535 współpracuje z pamięciami zewnętrznymi, więc nie było potrzeby kupowania programatora dla procesora jedynie dla pamięci EPROM, w związku z tym mam pytanie czy teoretycznie, jeżeli procek zostałby wymieniony na przykład na AT89C51AC3 (zakładając oczywiście, że program zostanie odpowiednio zmodyfikowany oraz sama płytka PCB) czy procesor będzie wymagał wgrania programu do pamięci wewnętrznej czy po prostu po uruchomieniu zasilania "skorzysta" z pamięci zewnętrznej, do której został wgrany kod programu? Wydaje mi się, że procesor z wbudowaną pamięcią wewnętrzną trzeba zaprogramować poprzez programator nawet, jeżeli główny program znajduje się w pamięci zewnętrznej, ale wolę się upewnić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 10:49 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Po pierwsze zajrzyj do PDFa a tam Ci sie wyjaśni kiedy brana jest pod uwagę pamięć wewnętrzna a kiedy zewnętrzna.
Po drugie ew. koszt zakupu programatora żeby programować pamięć flash procesora jest niczym w stosunku do kosztów związanych z adaptacją PCB na nowy uC.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 13:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 mar 2014
Posty: 580
Lokalizacja: Jastrzębie-Zdrój
Pomógł: 71

Witam,

Luźna myśl, jeżeli by zrobić coś na wzór konwertera ATmega/ATtiny firmy Atnel do ATB i zamontować na miejsce starego mikrokontrolera, to adaptacja płytki PCB nie stanowiła by żadnego problemu (aczkolwiek zależy od miejsca/obudowy itp.). Trzeba by tylko wykonać płytkę PCB z nowym mikroklockiem dostosowanym do odpowiednich wyjść starego mikrokontrolera.

Pozdrawiam,
doman89



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 13:48 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Adaptacja PCB to był skrót myślowy. Chodzi o całokształt związany ze zmianą procesora.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 17:27 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Według dokumentacji SAB80C535 wczytuje program z zewnętrznej pamięci, gdy wejście ~EA znajduje się w stanie niskim, natomiast
AT89C51AC3 nie posiada takiego wejścia, albo po prostu nie zauważyłem informacji o tym w dokumentach. Przeprojektowanie płytki jest oczywistą koniecznością po zmianie procesora. Na początku chciałem zastosować coś z rodziny ARM, ale okazało się, że firma nie kupi odpowiedniego kompilatora (Keil uVision). Tak, więc muszę bazować na mikrokontrolerach z rodziny `51, tylko teraz nie jestem pewien czy AT89C51AC3 to dobry wybór, dobrze by było gdyby obyło się bez kupowania programatora, bo z tego, co udało mi się znaleźć wynika, że kosztują one ok 500-600 USD (albo może ja źle szukam :D).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 18:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
AT89C51AC3 nie posiada takiego wejścia, albo po prostu nie zauważyłem informacji o tym w dokumentach.
To źle zauważyłeś.
Mając pamięć flash w procesorze to ekstrawagancją jest korzystać z zewnętrznego epromu.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 2 minutach ]

Dodatkowo czy przypadkiem AT89C51AC3 nie posiada domyślnie bootloadera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2018, o 20:45 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Nie zauważyłem że AT89C51AC3 obsługuje jedynie dwa przerwania zewnętrzne a ja potrzebuje koniecznie siedmiu, szukałem na tme, 8 bitowca 8051 ale wszystkie tam dostępne obsługują po dwa przerwania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lut 2018, o 14:28 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Ile sztuk rocznie schodzi Wam tych procesorów?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2018, o 12:37 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Myślę ze kilkanaście na rok. Znalazłem układy MAXIM-a DS87C530/DS83C530, co prawda maja obsługę 6 przerwań zewnętrznych, ale to już coś. Jeżeli zastosuje zewnętrzna pamieć i podepnę wejście ~EA do masy to chyba nie będę musiał programować samego mikrokontrolera?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lut 2018, o 20:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

A sprawdzałeś czy będziesz miał gwarancję jego dostępności w przyszłości. Bo ten procek to jest już od bardzo, bardzo dawna na rynku.

bastik napisał(a):
Jeżeli zastosuje zewnętrzna pamieć i podepnę wejście ~EA do masy to chyba nie będę musiał programować samego mikrokontrolera?
Tak, podłączenie do masy wymusza pracę na zewnętrznej pamięci programu.

Ten układ możesz zaprogramować większością starego typu równoległych programatorów do procesów / pamięci eprom.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 8 minutach ]

Właśnie przejrzałem swoje "skarby" i znalazłem jedną sztukę DS87C520 (ta sama rodzina) pozostałą po zabawach jeszcze w poprzednim wieku - czyli ma ze 20 lat :)

------------------------ [ Dodano po: 14 minutach ]

W datasheet-cie do DS87C530/DS83C530 jest data: 06.08.95 - Initial release.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2018, o 08:37 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Kilkanaście na rok to żadna ilość. Ja bym kupił 100szt na zapas i równolegle myślał nad ew. modernizacją układu-jeśli firma nie zdecyduje się żeby projekt uśmiercić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lut 2018, o 15:35 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

rskup A jak ty to programowałeś? Znalazłem jakiś programator za chyba, 600$ ale zakładam ze takich bajerów nie masz :D Mauser i Maxim Integrated maja w swojej ofercie jeszcze dostępne DS83C530.

Przeniesienie się na przykład na STM8 wymagałoby przebudowania całej płytki PCB, kupna kompilatora za sporą kasę, certyfikacji płytki, certyfikacji kodu programu no ogólnie sporo zabawy.
W przypadku DS83C530 są możliwe do kupienia dwie wersje DS87C530-QNL+ lub DS87C530-QCL+, wiecie, czym to się może różnić?
Jeszcze jedna kwestia SAB80C535 ma wyprowadzony sygnał zegarowy na nóżkę P1.6, czy w przypadku DS83C530 i wyprowadzenia XTAL2 funkcja jest taka sama? (sygnał taktujący na wyjściu)?

Cytuj:
XTAL1 and XTAL2 provide support for parallel-resonant, AT-cut crystals. XTAL1 acts also as an input if there is an external clock source in place of a crystal. XTAL2 is the output of the crystal amplifier.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lut 2018, o 16:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
rskup A jak ty to programowałeś?
W urządzeniach używana była zewnętrzna pamięć eprom. Wtedy to były takie czasy, ale teraz to grzech nie korzystać z pamięci flash procesora :)

W tamtej epoce korzystałem z Uprog-a w starej wersji (ich pierwsza wersja i to na LPT). Wtedy jeszcze startowali z produktami, więc mieli rozsądne ceny. Jak teraz się patrzę, to włos na głowie się jeży :(

Patrzyłem w TME, najtańszy jest programator o oznaczeniu VP-598, i kosztuje 1/3 tego co pisałeś. Chyba ma on też te DS-ki na liście obsługiwanych :).

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 10:18 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

A jeszcze taka kwestia, bo się dowiedziałem że przydałby się jeszcze jeden port I/O, w takim wypadku muszę wziąć MAXIM-a DS80C390 i tak patrzę na opis portu 0 w dokumentacji:
Cytuj:
AD0–7 (Port 0), I/O. When the MUX pin is wired low, Port 0 is the multiplexed address/data bus. While ALE is high, the LSB of a memory address is presented. While ALE falls, the port transitions to a bidirectional data bus. When the MUX pin is wired high, Port 0 functions as the bidirectional data bus. Port 0 cannot be modified by software. The reset condition of Port 0 pins is high. No pullup resistors are needed.


Czy dobrze rozumiem, że w przypadku gdy na pinie MUX jest stan wysoki, to wyjścia portu 0 mogę traktować jak dwukierunkowe piny I/O?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 11:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
Czy dobrze rozumiem, że w przypadku gdy na pinie MUX jest stan wysoki, to wyjścia portu 0 mogę traktować jak dwukierunkowe piny I/O?
Niestety nie :(. Masz to napisane:
bastik napisał(a):
Port 0 cannot be modified by software.
MUX zmienia tylko tryb pracy portu (multipleksowane lub nie multupleksowane adresowanie zewnętrznej pamięci), ale nadal służy do odczytu z zewnętrznej pamięci i nie może być używany do innych celów.

--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 1 minucie ]

Widzę, ze cały czas krążysz w "starociach" (ten układ też ma prawie 20 lat). Zastosuj jakiś układ z wewnętrzna pamięcią flash.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 11:43 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Wiem, że starość, ale to nie ja podejmuje decyzję niestety, gdyby to ode mnie zależało to już dawno bym pracował nad przerobieniem programu pod powiedzmy STM-a jakiegoś. Zastanawiam się czy dałoby radę jakoś podłączyć którąś z pamięci (Am27C256, SRM2264LCT) pod port 0, bo obecnie są podłączone do "normalnych" pinów I/O. Pewnie i tak skończy się tak, że będę musiał się przenieść na coś dużo nowszego, ale póki, co jeszcze walczę ze starociami. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 12:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
którąś z pamięci (Am27C256, SRM2264LCT) pod port 0, bo obecnie są podłączone do "normalnych" pinów I/O
Nie rozumiem co oznacza u ciebie "normalny" pinów. Port 0 jest dedykowany do pracy z pamięcią programu i danych, więc tam ją podłączasz.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 13:45 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Pisząc normalne miałem na myśli dwukierunkowe porty I/O ( porty 1, 3, 4, 5 dla układu DS80C390). Pod linie portu P0 i P2 w SAB-ie są podłączone pamięci zewnętrzne (AM27256 i SRM2264) i się zastanawiam czy mogę je po prostu podłączyć pod porty P0 i P2 w DS80C390. Teoretycznie w dokumentacji DS80C390 pisze, że ma dwa dedykowane porty do komunikacji z pamięciami, więc chyba się da.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2018, o 17:02 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
czy mogę je po prostu podłączyć pod porty P0 i P2 w DS80C390
Wszystko masz w dokumentacji. Dla typowego korzystania z pamięci zewnętrznej (tryb multipleksowany) masz wykorzystywane porty P0, P2 i P4 - zajrzyj do datasheetu na rysunek "Figure 1. Multiplexed External Program Memory Read Cycle" i pozostałe opisy w tym rozdziale.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2018, o 15:55 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Ostatecznie może uda się przekonać szefostwo na zmianę mikrokontrolera na np STM8. Wygodnie by mi było do testów mieć możliwość wsadzenia procesora w podstawkę. Znalazłem taki fajny Chiński bajer do obudów QFP64, nie wiecie czy takie coś można kupić u nas? bo nie za bardzo mam czas czekać aż paczka z Chin przyjdzie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2018, o 18:40 
Offline
Użytkownik

Dołączył(a): 01 lis 2013
Posty: 302
Pomógł: 32

Witaj,

bastik napisał(a):
... do obudów QFP64, nie wiecie czy takie coś można kupić u nas? bo nie za bardzo mam czas czekać aż paczka z Chin przyjdzie.


Jasne, że można kupić u nas. Jest jeszcze jedna sztuka w elty.pl https://elty.pl/pl/p/Adapter-dla-Atmel-AVR-TQFP64-ATmega128/1773

_________________
Pozdrawiam,
sq8mvy, Paweł



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 13 lut 2018, o 21:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

bastik napisał(a):
Wygodnie by mi było do testów mieć możliwość wsadzenia procesora w podstawkę.
Przy tej cenie procesorów w porównaniu do ceny tej podstawki, to chyba lepiej zrobić sobie testowy układ z wlutowanym procesorem i na tym testować niż kupować coś takiego. Albo ostatecznie zrobić tylko płytkę pod QFP64 z wyprowadzonymi wszystkimi pinami (gdzieś mi się nawet taka walała jak została ogołocona z atmega128, bo procesor był pilnie potrzebny a nie miałem wolnych pod ręką).

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2018, o 09:53 
Offline
Użytkownik

Dołączył(a): 27 sty 2015
Posty: 61
Pomógł: 0

Takiej ceny to ja się nie spodziewałem :D



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

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