Pytanie:
Czy istnieje sposób na ułatwienie podłączenia nieosłoniętego mikroprocesora do ekranu?
Ignacio Vazquez-Abrams
2014-03-24 05:18:30 UTC
view on stackexchange narkive permalink

Obecnie większość moich prac AVR wykonuję na płytkach prototypowych, ale duża różnorodność osłon i kodów Arduino sprawia, że ​​zastanawiam się, czy czasami nie uderzam głową o ścianę i nie szukam portu, aby przypiąć mapowanie obu odpadów czas i spowalnia mnie. Czy istnieje wygodny sposób na dostosowanie AVR ( innych niż te kompatybilne pinowo z obecnymi Arduino) do osłon Arduino?

Pytasz: czy istnieje sposób na ułatwienie podłączenia nieosłoniętego mikroprocesora do ekranu?
@Cybergibbons: Dokładnie o to pytam.
Na to nie mam odpowiedzi. Szczerze mówiąc, moim sposobem na obejście tego jest używanie prawie wyłącznie urządzeń I2C lub SPI, więc jest tylko kilka pinów do zapamiętania.
@JarrodRoberson Wymieniłeś AVR w tytule na mikroprocesor, AVR to nie mikroprocesory, to mikrokontrolery czyli mikroprocesor + pamięć + peryferia itd. Usunąłeś też słowo Arduino z osłon, ale pytanie dotyczy osłon Arduino, a nie osłon ogólnie.
@alexan_e przeczytaj komentarze OP dotyczące twojego ...
Możesz (zeskrobać i) wylutować chip na płycie Arduino i zastąpić go `` 28-pinowym gniazdem IC '' (wygoogluj ten termin, aby zobaczyć, co mam na myśli).
Dwa odpowiedzi:
alexan_e
2014-03-24 17:11:20 UTC
view on stackexchange narkive permalink

Możesz zrobić płytki adaptera (po jednej dla każdego modelu MCU).

Dolna strona (złącza męskie) byłaby podłączona do płytki prototypowej, a górna strona miałaby żeńskie złącza z tym samym wyprowadzeniem co Arduino tablica (słuchacze płci żeńskiej umieszczone w odpowiednich pozycjach dopasowanych do tarcz Arduino).

Taka tablica nie powinna być trudna do zaprojektowania.

Oto obrazek, który przypomina to, co opisuję

enter image description here

Dostosowałoby to wyprowadzenie nagiego AVR do wyprowadzenia typowego Arduino, tak aby ekrany można było podłączyć bezpośrednio do niego.


Również diagram wyprowadzeń może się przydać, aby przyspieszyć działanie, gdy używasz samego chipa z kodem Arduino.
( źródło obrazu) enter image description here

Inny podobny rozwiązaniem jest mała drukowana naklejka umieszczona na górze AVR
( źródło obrazu)

enter image description here

+1 za efekt dydaktyczny obrazu płyty adaptera ORAZ BARDZO PORZĄDKOWYCH makiet.
@Ricardo Chociaż zgadzam się, że to dobre zdjęcie, pochodzi z innej witryny (wymienione źródło). W przeciwnym razie świetna odpowiedź! BTW: bądź ostrożny, jeśli ekran łączy się z ICSP ... Ethernet r.3 dodaje Mega kompatybilność.
jippie
2014-03-24 11:29:52 UTC
view on stackexchange narkive permalink

Sposób, w jaki Arduino to robi, polega na tworzeniu tabeli odnośników, która tłumaczy numer pinu na PORTn / DDRn / PINn SFR i powiązany bit. Możesz użyć tej samej sztuczki i sprawić, by piny GPIO liczyły się w wygodny sposób, tak jak są w opakowaniu. Tylko specjalne urządzenia peryferyjne (takie jak SPI / PWM) nie mogą być rozliczane w ten sposób, ponieważ są na stałe podłączone do pinu.

Na dobry początek poniżej znajduje się fragment biblioteki Arduino.h jeśli chcesz ponownie użyć tej koncepcji.

  // Pobierz lokalizację bitu w porcie sprzętowym danego wirtualnego pinu. // Pochodzi z pliku pinów _ *. c dla aktywnego konfiguracja płytki. # define analogInPinToBit (P) (P) // W ATmega1280 adresy niektórych rejestrów portów są // większe niż 255, więc nie możemy ich przechowywać w uint8_t's.extern const uint16_t PROGMEM port_to_mode_PGM [] ; zewnętrzny const uint16_t PROGMEM port_to_input_PGM []; zewnętrzny const uint16_t PROGMEM port_to_output_PGM []; zewnętrzny const uint8_t PROGMEM digital_pin_to_port_PGM [] // zewnętrzny const uint8_t PROGMEM digital_pin_to_bit_PGM []; zewnętrzny const uint8_t PROGMEM digital_pin_to_bit_mask_PGM []; zewnętrzny const uint8_t PROGMEM digital_pin_to_timer_PGM [] ; // Pobierz lokalizację bitu w porcie sprzętowym danego wirtualnego pinu. // To c omes z pinów _ *. c plik dla konfiguracji aktywnej płyty. // // Działają one nieco lepiej jako makra w porównaniu do funkcji inline // # define digitalPinToPort (P) (pgm_read_byte (digital_pin_to_port_PGM + (P))) #define digitalPinToBitMask ( P) (pgm_read_byte (digital_pin_to_bit_mask_PGM + (P))) #define digitalPinToTimer (P) (pgm_read_byte (digital_pin_to_timer_PGM + (P))) #define u analogInPinToBit (P) (P) #define_pput) (volvo_timer) pgm_read_word (port_to_output_PGM + (P)))) #define portInputRegister (P) ((volatile uint8_t *) (pgm_read_word (port_to_input_PGM + (P)))) #define portModeRegister (P) ((volatile uint8_t *) (pgm_read_word (port_to_input_PGM + (P)))) #define portModeRegister (P) ((* volatile uint8_t *) (pgm_read_word (port_to_input_PGM + (P)))) (P))))  

Funkcje pinMode , digitalWrite i digitalRead są zdefiniowane w / usr / share / arduino / hardware / arduino / cores / arduino / cables_digital.c , które można wykorzystać do dalszych inspiracji.

Chociaż ta odpowiedź dotyczy części oprogramowania, moje pytanie dotyczy w rzeczywistości części sprzętowej.
@IgnacioVazquez-Abrams, czy możesz w takim razie rozwinąć nieco więcej w swoim pytaniu? Nie jestem pewien, czy rozumiem, o co pytasz.
Mam gołe układy AVR i chcę ich używać z istniejącymi osłonami Arduino bez konieczności dodawania kilkudziesięciu przewodów połączeniowych.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...