Goedemiddag,

Wij hebben op school de opdracht gekregen om een connectie te maken met een RS232 poort via een schakeling. De baudrade hebben we al gemaakt met een oscillator die 9600Hz levert.

Om de connectie naar de seriele poort te maken moeten we twee verschillende methoden gebruiken. De eerste hebben we al uitgezocht:

Ingangssignalen --> multiplexer --> TTL to RS232 --> RS232 (Seriele Poort)
^
|
Counter

Deze methode is niet zo moeilijk maar er zou nog een tweede zijn:

Ingangssignalen --> 'bucket-brigade-IC' --> TTL to RS232 --> RS232 (Seriele Poort)
^
|
Counter

Wat precies de bedoeling is met deze bucket-brigade-IC kom ik niet uit. Ik heb gezocht met Google, maar de meetste bucket-brigade-IC's die ik daar mee vindt zijn bedoeld voor audiodoeleinden.

Weet iemand welke 'bucket-brigade-IC' ik moet gebruiken voor deze toepassing?

-foutje-

[Bericht gewijzigd door Gimpert op ]

Klopt, de digitale versie voor een "bucket-brigade" ic is een schuifregister. En dat is makkelijker te vinden. Klok het hele zaakje in een schuifregister, schuif het naar buiten via de klok en serieel uit (of het hoogste bit, kan ook) en klaar is klara...

Ik heb de 74HC/HCT165 IC van Philips gevonden. Met deze IC kan ik alles doen maar ik heb er nog een paar vragen over:

- Ik gebruik zes ingangen van deze IC D0 tot D5. De IC heeft 7 ingangen, moet de 2 ingangen die ik niet gebruik gewoon los laten hangen?

- De IC heeft twee outputs Q7 en Q7'. Bij Q7 staat dit vermeld: Serial output from the last stage en bij Q7' staat dit vermeld: Complementary output from the last stage. Waar moet ik deze twee outputs op aansluiten. Een van de twee (of allebei) moet naar de TTL to RS232 converter maar welke?

- Ik heb een Oscillator van 9600Hz die op deze IC aangesloten moeten worden. Er is maar 1 input voor de klok, namelijk CP. Moet hier de +uitgang of de -uitgang van de oscillator op aangesloten worden?

Kan iemand me hier nog mee helpen?

Op 11 mei 2006 18:58:03 schreef Gimpert:
- Ik gebruik zes ingangen van deze IC D0 tot D5. De IC heeft 7 ingangen, moet de 2 ingangen die ik niet gebruik gewoon los laten hangen?

Ik hep zelf geen ervaring met dit IC maar ik zou ze iig ergens aan vast maken (+5V of GND), los laten kan nogal eens osccilaties veroorzaken die je niet wilt hebben.

- De IC heeft twee outputs Q7 en Q7'. Bij Q7 staat dit vermeld: Serial output from the last stage en bij Q7' staat dit vermeld: Complementary output from the last stage. Waar moet ik deze twee outputs op aansluiten. Een van de twee (of allebei) moet naar de TTL to RS232 converter maar welke?

Q7 is de data die op de laatste stage staat. en Q7' is de geinverteerde van Q7 (dus als Q7 = 1 dan Q7' = 0 en andersom)

- Ik heb een Oscillator van 9600Hz die op deze IC aangesloten moeten worden. Er is maar 1 input voor de klok, namelijk CP. Moet hier de +uitgang of de -uitgang van de oscillator op aangesloten worden?

nee dat kan niet, het moet eigenlijk met een puls generator (zodat er een blokgolf uit komt) maar dit kun je wel maken van een Oscillator (ik neem aan dat je zo'n zilveren plat hulsje met 2 pootjes bedoelt?).

Je gebruikt een invertor, hieraan zet je paralel (1 pootje op de ingang 1 op de uitgang, maakt niet uit welke) je oscillator. Daaraan zet je paralel een weerstand van 1 meg (voor balans tussen de twee pinnetjes)

vanuit elk pinnetje van de oscillator zet je een capaciteit naar ground van zo'n 27pF (of iets in die buurt)

In serie met deze schakeling zet je nog een inverter, en op de uitgang van deze inverter staat dan je blokgolf die in je IC moet.

als je nog even geduld hebt tot morgen, zal ik kijken of ik het wat duidelijker uit de doeken kan doen...

Allereerst even iets over serielle datacommunnicatie. Bij standaard RS232 protocollen is het aantal bits en logische niveaus voorgeschreven. In rust is de lijn een logische "1", dan krijg je eerst een start bit die altijd "0" is, dan afhankelijk van de instelling van je computer, 7 of 8 databits, dan een of twee stop bits, wat eigenlijk niet meer is dan een gedefinieerde periode rust voordat een nieuw character gestuurd gaat worden. Dus als je met een schuifregister dit wil realiseren, moet je eigenlijk 10 stages hebben. Je zegt dat je je klok al hebt, voor 9600 baud zou dit een frequentie van 9.6 khz moeten zijn. Nu even naar het ontwerp:

We moeten dus 10 stages doorlopen, 1 start bit, 8 data bits en 1 stop bit (geen pariteit, kan wel maar maakt het lastiger..) Daar hebben ze speciaal een I.C. voor op de markt gebracht, een 4017 Een ander iets wat je moet doen is de data latchen in je schuifregister. Omdat we 8 bitten willen versturen (we kunnen vanwege het protocol niet meer of minder versturen) hebben we dus een 8 bit schuifregister nodig, die we parallel kunnen laden. Die 74HC165 is inderdaad goed gevonden, de output die je nodig hebt is inderdaad Q7. Dus de tijdvolgorde diagram ziet er dan zo uit:


                            74HC165 inputs      transmitter
Stage        To do           CE          PL        out
  0    Load shiftregister    0           0          1
  1     Send Lowest bit      0           1          D0
  2     Send 2nd bit         0           1          D1
.....
  8     Send higest bit      0           1          D7
  9     Send stop bit        0           1          0

en dan weer beginnen met stage 0. Door nu Ds op 0 te houden krijg je de stop bit er "gratis" bij, wat je dan nog moet doen is ervoor zorgen dat als de 4017 de "0" uitgang "1" heeft, de parallel load "1" word, en dat alle clock signalen de goede polariteit hebben. (de 4017 reageerd op de positieve flank, alle andere op de negatieve) Maar het blijft een schoolvraag, dus moet er ook nog wat voor jouw te puzzelen blijven...

Succes