Połączeni 2 procków jakby w jeden.

Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Połączeni 2 procków jakby w jeden.

Post autor: siekierzyński » 19 gru 2010, 0:21

Witam,

przymierzam się do pewnego projektu, w którym potrzebuje połączyć 2 procki (ATMEGA128) w jeden, ponieważ potrzebuje ponad 60 pinów do sterowania. Wiem mógłbym kupić jeden, który ma tyle pinów, ale trochę to drogawe (ok 50zł) i trzeb płacić dodatkowo za wysyłkę.

Moje pytanie brzmi: czy istnieje jakiś sposób na dostęp MASTER do SLAVE, tak, że w master wpisuje PORTB.2 = 1 i to polecenie ma się odnosić do SLAVE. Z tego co się orientuję to są komendy Spiin i Spiout. Ale boje się, że ta 1-sza będzie powodowała zawieszanie programu jak w przypadku komendy Input (dla UART). Czy jest jakiś sposób na obejście tego?

Narzie pytam się teoretycznie, bo nie bawiłem się tym praktycznie.

kaliska5
Użytkownik
Posty: 348
Rejestracja: 01 maja 2008, 8:24
Lokalizacja: z nienacka
Kontakt:

Post autor: kaliska5 » 19 gru 2010, 0:28

Jeśli potrzebujesz dużo pinów IO czemu nie użyjesz expanderow albo nawet rejestrów przesuwnych ?

Awatar użytkownika
mr_x
Użytkownik
Posty: 385
Rejestracja: 12 gru 2010, 19:05
Lokalizacja: /bin/bash
Kontakt:

Post autor: mr_x » 19 gru 2010, 0:31

Albo układu 82C55 (lub podobnego).

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 19 gru 2010, 0:36

kaliska5 pisze:Jeśli potrzebujesz dużo pinów IO czemu nie użyjesz expanderow albo nawet rejestrów przesuwnych ?
Co do 1-szego, to jestem zielony, zaś o drugim słyszałem na lekcjach elektroniki cyfrowej, ale to tylko słyszałem. Muszę sie tym zainteresować.

[ Dodano: 2010-12-19, 00:40 ]
Dobra, expandery już załapałem. Rejesry przesuwne jeszcze nie.

Głównie mi tu chodzi, aby 'połączyć' pamięci RAM obu procków, tak, żebym jak najmniej musiał się bawić w jakieś komendy. Oba procki muszą mieć możliwość równoczesnego stępu do pamięci RAM. Może być przepisywanie z jedngo do drugiego, ale chce, żeby pętla główna mi isę nie zatrzymywała przy tym. Procki generowały by programowy sygnał PWM.

Awatar użytkownika
c4r0
Moderator
Posty: 2150
Rejestracja: 13 kwie 2004, 19:56
Lokalizacja: z lasu
Kontakt:

Post autor: c4r0 » 19 gru 2010, 5:16

Bez sensu jest używać dwóch procesorów wyłącznie w imię zwiększenia ilości pinów. To, jakie rozwiązanie będzie najlepsze, zależy od tego:
1. Jakie to ma być szybkie?
2. Czy te dodatkowe piny to wejścia? Wyjścia? A może oba na raz?
3. Czemu się boisz komend? Możesz prosto i szybko zrobić sobie odpowiednie funkcje i ich używać zamiast zwykłych komend.

keruseykaryu

Post autor: keruseykaryu » 19 gru 2010, 9:37

kaliska5 pisze:expanderow albo nawet rejestrów przesuwnych?
mr_x pisze:Albo układu 82C55 (lub podobnego).
Albo FPGA. Albo ATmega1280.

[ Dodano: 2010-12-19, 09:49 ]
siekierzyński pisze:Z tego co się orientuję to są komendy Spiin i Spiout. Ale boje się, że ta 1-sza będzie powodowała zawieszanie programu jak w przypadku komendy Input (dla UART).
Są jeszcze Spimove i przerwania.

kaliska5
Użytkownik
Posty: 348
Rejestracja: 01 maja 2008, 8:24
Lokalizacja: z nienacka
Kontakt:

Post autor: kaliska5 » 19 gru 2010, 10:27

Co do rejestru przesuwnego to tutaj masz fajnie opisane z przykładami w C. Rejestry maja tez 1 duża zaletę są tanie jak barszcz (w lispolu 60gr).

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 19 gru 2010, 12:04

keruseykaryu pisze:Albo ATmega1280.
Tylko gdzie to można kupić?

EDIT:
Dobra mam. LINK

Czy ktoś może mi powiedzieć, jaka jest różnica między ATMEGA1280-16AU a ATMEGA1280V-8AU bo tego nigdy nie mogę dociec. Są jeszcze końcówki -PUX. To V to wiem co oznacza.

keruseykaryu

Post autor: keruseykaryu » 19 gru 2010, 12:29

Taktowanie.
Na AVRki z TME nie licz, nie dostaniesz wcześniej niż za 3-4 miesiące. Zajrzyj na Seguro, MS Elektronik...

O. Seguro. Atmega3250 za mniej niż 20PLN, a portów ma dosyć.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 19 gru 2010, 15:30

siekierzyński napisał:
Tylko gdzie to można kupić?
Ja tak coś czuję, w kościach że tradycyjnie rzuciłeś się na pierwszy lepszy proc jaki ci tu zaproponowano, a nawet nie wysiliłeś się zajrzeć do jego noty katalogowej i za chwile będzie wysyp tematów co z tym zrobić i jak to zaprogramować ?
Czy ktoś może mi powiedzieć, jaka jest różnica między ATMEGA1280-16AU a ATMEGA1280V-8AU bo tego nigdy nie mogę dociec. Są jeszcze końcówki -PUX. To V to wiem co oznacza.
Jak tego nie wiesz to wątpię że wiesz że te procki programuje się przez JTAG.
Ja już pomijam że prościej ci by było kupić ATMegę 16 i podłączyć sobie do niej 4 PCFy8574 i już masz 64 porty I/O razem z tymi w procesorze.

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 19 gru 2010, 16:58

kayron pisze:i za chwile będzie wysyp tematów co z tym zrobić i jak to zaprogramować ?
Włąśnie się zastanawaiłem nad tym, czy BASCOM go obsłuży i czy też ma programowanie SPI. Co do PCF8574 to popatrzę.

[ Dodano: 2010-12-19, 17:03 ]
Na 1-szy rzut oka to PCF8574 są lepsze od 82C55, zależy jeszcze jaka szybkość I2C. Co do JTAG, to mogą być problemy, bo nigdy nie miałem z nim do czynienia.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 19 gru 2010, 17:05

A to taki wielki problem uruchomić BASCOM i sprawdzić listę obsługiwanych procesorów ?
Na 1-szy rzut oka to PCF8574 są lepsze od 82C55, zależy jeszcze jaka szybkość I2C.
Raczej logiczne jak 8255 ma co najmniej 30 lat na karku jako konstrukcja.
Co do JTAG, to mogą być problemy, bo nigdy nie miałem z nim do czynienia.
Musisz mieć programator JTAG, czyli kolejny wydatek.
Zostaje ci jedynie ATMega 128, bo ta jest programowana przez SPI. Dołozysz do tego jednego PCFa8574 i masz 59 linii I/O.
Załączniki
M1280.JPG

Awatar użytkownika
siekierzyński
Użytkownik
Posty: 482
Rejestracja: 01 cze 2010, 23:12
Lokalizacja: Nareszcie Polska

Post autor: siekierzyński » 19 gru 2010, 17:41

Wydatek to pół biedy, raczej brak praktycznego doświadczenia. Sam pamiętam jak ATTINY2313 próbowałem uruchomić przez pół roku :-) Może najwyższa pora rozwinąć się i pójść dalej? Aż nie mogę uwierzyć, że 1280 nie jest programowania przez SPI.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 19 gru 2010, 21:42

Żaden lepszy (większy) AVR nie jest programowany przez SPI. Wszystkie większe mają JTAG, lub ostatecznie po wgraniu BootLoadera przez RS232.
Tylko pytanie brzmi po co ci taki potwór ? Dla kilku dodatkowych pinów chcesz się uczyć kolejne pół roku jak go ruszyć z miejsca ?
Dla mnie przerost formy nad treścią, to tak jakby budzik budować na Pentium 4.

keruseykaryu

Post autor: keruseykaryu » 19 gru 2010, 22:17

kayron pisze:Żaden lepszy (większy) AVR nie jest programowany przez SPI
Hmmm... Urzekła mnie Twoja historia.
30.8 Serial Downloading
Both the Flash and EEPROM memory arrays can be programmed using a serial programming
bus while RESET is pulled to GND. The serial programming interface consists of pins SCK, PDI
(input) and PDO (output). After RESET is set low, the Programming Enable instruction needs to
be executed first before program/erase operations can be executed. NOTE, in Table 30-15 on
page 351, the pin mapping for serial programming is listed. Not all packages use the SPI pins
dedicated for the internal Serial Peripheral Interface - SPI.
Tak samo jak Atmega128.
STK503 is a top module to the STK500 development board from Atmel Corporation. It adds support for 100-pin AVR microcontrollers (ATmega2560, ATmega1280 and ATmega640).

<obrazek>

Features
  • Supports the ATmega2560, ATmega1280 and ATmega640.
  • Zero Insertion Force (ZIF) socket for 100-pin TQFP packages
  • Supports High Voltage Parallel Programming through STK500
  • Supports Serial programming through STK500
  • Port connectors for port E, F G, H, J, K and L
  • On-board RS-232 converter covering the whole operation range from 1.8 to 5.5V
  • Footprint for user-mountable SRAM chip
  • On-board address latch for easy connection to memory and peripherals
  • JTAG Connector for on-chip debugging using JTAGICE mkII
  • On-board 32 kHz crystal for easy Real Time Clock implementations
  • Supported by AVR Studio 4
Co było do udowodnienia.
Załączniki
stk503.jpg

ODPOWIEDZ