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

Jak uniknąć skrzyżowań ścieżek w Eagle przy projektowaniu PCB?

Foadrian 20 Wrz 2011 07:29 2281 5
  • #1 9944622
    Foadrian
    Poziom 10  
    Posty: 32
    Ocena: 8
    Witam! Staram się stworzyć płytkę drukowaną do programu który napisałem (3 punktowy pomiar temperatury). Jestem przekonany że schemat jest poprawny. Wiele razy już próbowałem rozmieścić elementy w różny sposób, mimo tego nigdy nie udało mi się uzyskać układu "kompletnego" bez "skrzyżowań" itp. Oczywiście używam opcji RATSNET i autorouting. W tej chwili z układu usunąłem sekcję zasilania a zastąpiłem ją wejściem z zasilacza.Jestem kompletnie zielony w tej kwestii i proszę o pokierowanie mnie na właściwe tory.
    Jak uniknąć skrzyżowań ścieżek w Eagle przy projektowaniu PCB?
  • #2 9944684
    tronics
    Poziom 38  
    Posty: 5064
    Pomógł: 358
    Ocena: 840
    Przede wszystkim... zrezygnuj z autoroutera. Schemat jest banalnie prosty, jak dobrze poukładasz elementy to w mig sobie poradzisz z prowadzeniem ścieżek ręcznie. Poza tym zdaje mi się, że łatwiejsze i odpowiedniejsze podpięcie pinów LCD to będzie PC0-DB4, PC1-DB5, PC2-DB6 i PC3-DB7 - wtedy po prostu wrzucasz na rejestr portu pół bajtu danych i wysyłasz naraz, w przeciwnym przypadku musisz 4x załączać bity albo zmieniać kolejność bitów w bajcie. Dodatkowo, by w ogóle korzystać z LCD MUSISZ mieć sygnały RS oraz E - nie mogą być zwarte do masy. Nie bardzo widzę też ten przycisk S2 - w każdym razie ja tak na żywca bym nie zrobił - równolegle kondensator do "małego debounce" oraz szeregowo rezystor do zabezpieczenia pinu przed za dużym prądem (gdyby był ustawiony jakimś cudem strong pull-up) - nie kosztuje wiele, nie zajmuje dużo miejsca, a chyba warto.
  • #3 9944731
    Konto nie istnieje
    Konto nie istnieje  
  • #4 9945309
    Foadrian
    Poziom 10  
    Posty: 32
    Ocena: 8
    tronics Masz rację co to RS i E umknęło to mojej uwadze. Ale czy mógł byś szerzej powiedzieć coś o podłączeniu pinów LCD. Uczę się programowania uC w BASCOM i taki sposób podłączenia znalazłem w książce Marcina Wiązani jednak nie było tam żadnego wytłumaczenia dlaczego tak a nie inaczej. W każdym razie takie rozwiązanie działało na płytce testowej mimo to jestem otwarty na bardziej optymalne rozwiązania.
  • #5 9947256
    tronics
    Poziom 38  
    Posty: 5064
    Pomógł: 358
    Ocena: 840
    W BASCOM to akurat bez większego znaczenia, ale... w C na przykład może być różnica jak między
    void LCDNBSend(uint8_t HALFDBx)
    {
    LCD|=(HALFDBx&0x0F);
      56:	95 b3       	in	r25, 0x15	; 21
      58:	8f 70       	andi	r24, 0x0F	; 15
      5a:	89 2b       	or	r24, r25
      5c:	85 bb       	out	0x15, r24	; 21

    A
    if (HALFDBx & 0x01)
      56:	80 ff       	sbrs	r24, 0
      58:	02 c0       	rjmp	.+4      	; 0x5e <LCDNBSend+0x10>
    LCD |=_BV(0);
      5a:	a8 9a       	sbi	0x15, 0	; 21
      5c:	01 c0       	rjmp	.+2      	; 0x60 <LCDNBSend+0x12>
    else
    LCD &=~_BV(0);
      5e:	a8 98       	cbi	0x15, 0	; 21
    if (HALFDBx & 0x02)
      60:	81 ff       	sbrs	r24, 1
      62:	02 c0       	rjmp	.+4      	; 0x68 <LCDNBSend+0x1a>
    LCD |=_BV(1);
      64:	a9 9a       	sbi	0x15, 1	; 21
      66:	01 c0       	rjmp	.+2      	; 0x6a <LCDNBSend+0x1c>
    else
    LCD &=~_BV(1);
      68:	a9 98       	cbi	0x15, 1	; 21
    if (HALFDBx & 0x04)
      6a:	82 ff       	sbrs	r24, 2
      6c:	02 c0       	rjmp	.+4      	; 0x72 <LCDNBSend+0x24>
    LCD |=_BV(2);
      6e:	aa 9a       	sbi	0x15, 2	; 21
      70:	01 c0       	rjmp	.+2      	; 0x74 <LCDNBSend+0x26>
    else
    LCD &=~_BV(2);
      72:	aa 98       	cbi	0x15, 2	; 21
    if (HALFDBx & 0x08)
      74:	83 ff       	sbrs	r24, 3
      76:	02 c0       	rjmp	.+4      	; 0x7c <LCDNBSend+0x2e>
    LCD |=_BV(3);
      78:	ab 9a       	sbi	0x15, 3	; 21
      7a:	01 c0       	rjmp	.+2      	; 0x7e <LCDNBSend+0x30>
    else
    LCD &=~_BV(3);
      7c:	ab 98       	cbi	0x15, 3	; 21
    

    Moja sugestia - jeśli da się robić rzeczy prosto i efektywnie to tak NALEŻY je robić.
  • #6 9951118
    marco47
    Poziom 41  
    Posty: 3761
    Pomógł: 1139
    Ocena: 267
    Kolego Foadrian

    Jeżeli Sam piszesz program do układu który jest w fazie projektowej, to proponuje przerobić schemat tak, aby płytka była jak najprostsza.

    Podłączenie wyświetlacza LCD do wejść procka, możesz dowolnie modyfikować, wykorzystując takie wejścia które pozwolą na bezproblemowe poprowadzenie ścieżek.
    Łatwiej jest zmienić jedną nazwę w programie, niż prowadzić ścieżkę w labiryncie innych.

    Zresztą powinieneś uruchamiać układ na płytce testowej, bo zawsze możesz wprowadzić jakieś zmiany w trakcie pisania programu.
REKLAMA