Använda RX och TX portarna till både RS232 komm. och LEDs?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Använda RX och TX portarna till både RS232 komm. och LEDs?

Inlägg av ankan »

Funderar på om man skulle kunna använda TX och RX pinnarna på picen till att styra tex ett par LED under tiden som inte TX och RX används.

Jag kommer alltså låta picen befinna sig i två olika mode. I ena används TX och RX och i andra skulle jag vilja ha pinnarna för att styra två LEDs.

Klarar MAX232 kretsen av att jag skickar in 5V på TTL utgången? Kan jag alltså styra en LED på RX pinnen utan att förstöra MAX kretsen. Eller bör jag skydda MAX-kretsen med en diod kanske?

Att skicka 5V på MAX-kretsens TTL ingång borde inte vara några problem i alla fall eftersom det är den spänningen den får in där vanligtvis.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Du kan lägga ett större motstånd mellan MAX232's utgång och RX
på PIC'en. När "RX" är aktiv är ingången så pass hög impendans så
motståndet kommer inte att märkas. När samma pinne driver en LED
kommer det att bli en liten last på MAX-pinnen som knappast
märks. Jag skulle prova med t.ex 10 kohm.

För TX pinnen är det enklare eftersom den ju alltid "driver". Dock kan du
hamna i ett läge där du sätter RS232 linjen i "break", du får kolla att
det inte gör något för motparten.

Men detta betyder naturligstvis att det alltid måste vara PIC'en som
inleder en "session", den kommer inte spontant att kunna
ta imot något.

Har du ont om pinnar ? :-)
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Jo det e rätt ont om pinnar och RX och TX är ju en resurs.

Hur gör man så att en session alltid startas av picen. Eller är det bara något som är helt enkelt. Köra asynkront antar jag.

Jag fattar dig rätt om du menar att koppla.

RX -> LED -> MOTSTÅND -> MAX-TTL utgång.

Samma sak gäller för ICSP programmering också antar jag?
Användarvisningsbild
Icecap
Inlägg: 26655
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Är det så tight om resurser är det hela feldimensionerat!

Att växla funktion kan i vissa fall vara befogad men när det påverkar kommunikation med andra system är det mycket fel.

Det finns även flera problem med den konstellation:
LED'n på TX blinkar till: det kan antingen vara för att LED'n _ska_ blinka till eller för att PIC'en sändar en seriell kommando. Alltså visar LED'n rätt i 50% av fallen vilket jag inte hade accepterat.

Om LED'n blinkar till för att den blinkar till kan de uppfattas av mottagaren som en byte, beroende på blinkets längd.

Även detta är helt fel enl. mitt sätt att se det på.

Det finns andra, mer vettiga sätt, att frigöra pinnar men då schemat inte finns tillgängeligt blir det ju svårt att rådge.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Eftersom jag vill använda så få komponenter som möjligt så kommer det inte finnas så mycket mer. LEDn var nog dåligt förlag. Tänkte använda mig av en LCD där datapinnarna skulle sättar på RX, TX, ICSPDAT och ICSPCLK.
Så länge man inte enablar ut datat till LCDn så kan man köra ut vad som helst på pinnarna.
Den ända risken som finns är när man vill köra mot LCDn och inte vill att det ska komma ut skäptecken på terminalen eller att den går i i break. Vad nu break gör för något.
När det gäller ICSPDAT och ICSPCLK så är det väll inga problem om det är datapinnar till LCDn. Antar att jag borde sätta ett motstånd på samma sätt som mellan RX och MAX -kretsen. Dvs mellan ICSP-kontakten och pinnarna på picen.

Visst det är lite tight men det är kul att effektivisera lite också. Känns dumt att slänga på en 28pin uC när man bara behöver ett par pinnar till.
Har dessutom inte alla Microchips kretsar hemma precis.

Sorry att jag förvirrade med LEDn. Jag tyckte bara att det var ett bra och enkelt exempel. Kanske inte så passande i detta fall.
Användarvisningsbild
Icecap
Inlägg: 26655
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Break är när startbitten på ett serieord fyller hela ordet inkl. stoppbitten, alltså istället för 0xxxxxxxx1 skickar man 0000000000. (xxxxxxxx är de "vanliga" databits)

Jag har även för mig (men är inte säker) att denna '0' ska vara 3 char lång för att den ska detekteras som break.

Problemet är nog ännu värre om du ska multiplexa med LCD-data, de kan skifta snabbt. Det kan dock vara en lösning att kolla om man kan använda ett av styrsignalerna till att "disabla" serieporten. På LCD'n behöver man ofta inte att använda R/W-signalen, det kan spara 1 pinne.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

R/W-pinnen är jordad från början. Jag behöver inte läsa från LCDn.

Jag kommer inte att switcha snabbt fram och tillbaka mellan LCD och RX/TX. Utan det är två olika lägen picen startas upp i beroende på om jag har 0 eller 1 på en pinne.

Det kom ut några skräptecken på terminalen när jag skrev till LCDn men det är väll inget att göra åt antar jag. Det är inte tänkt att den ska vara kopplad till terminal då i alla fall.

10kOhm blev förresten lite för mycket mellan MAX och pic. Det blev 4.7kOhm i stället.

Hur är det med ICSPDAT och ICSPCLK. Ska jag stoppa in typ 10kOhm där också?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jag har funderat lite till, och lösningen med kombinerad
RX med andra funktioner är nog inte så bra.

Ta en störrre PIC. 28-pinnarna är generellt trevliga att
jobba med. Samma bredd som de mindre och fortfarande
enkel att hantera på labbplattor o.s.v.

"Break" skall ofta vara en viss tid lång, ej kopplat till baudraten.
Lite snabbt googlande ger "vanligtsvis 250 - 500 ms".

> Hur gör man så att en session alltid startas av picen.

I definitionen av protokollet som du använder mot den "andra sidan".
Det måste alltså alltid vara PIC'en som "tar kontakt".

> Har dessutom inte alla Microchips kretsar hemma precis...

Igen har talat om "alla" :-)
*Någon* 28-pinnare bör dock ingå i verktygslådan.

Du kan ju t.ex ta en av de mindre PIC18 kretsarna och
samtidigt få en betydligt kraftfullare PIC på köpet.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Det känns som att ett break inte kommer uppstå med tanke på längden om jag inte har riktigt riktigt otur.

Varför att inte kombinationen RX med andra funktioner bra?

Jag måste annars offra resetfunktionen eller högtalardelen(Tänkte spela upp lite musik).

Visst det finns 28-pin vilket skulle lösa problemet. Men jag har ingen hemma och det tar för lång tid att beställa samples från Microchip.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Nej, break är nog inget problem, jag bara nämnde det...

> Varför att inte kombinationen RX med andra funktioner bra?

Nja, just en *LED* var i alla fall inte bra.

Att kombinera med t.ex en data linje på en LCD är
nog mindre problem, så länge du inte kombinerar "E" med
någon annan linje, och håller "R/W" fast i "write" läge (så
att LCD's datalinjer inte blir utgångar av misstag).

Alltså RX direkt kopplat till LCD-datapinnne och via ett motstånd
till MAX232-pinnen.

> Visst det finns 28-pin vilket skulle lösa problemet.
> Men jag har ingen hemma och det tar för lång tid att
> beställa samples från Microchip.

:-)

Hade du frågat *mig* igår, så hade du haft en *idag*... :-)

Jag har lite blandat liggandes (både samples och partier inköpt
från t.ex eBay) liggandes, och jag kan skicka över något "for free"...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Nu tänkte jag köra vidare på 16f88 kretsen i och med att det inte borde bli några problem med RX. Men jag ska ha det i baktanke.

Blev ju tvungen att kila iväg och skaffa en 16f628 på elfa för att jag råkade bränna den som satt på wisp628 brännaren. (Körde in typ 19V på 5V ingången)

Måste verkligen se till att ha en stabil 5V matning hemma. Kör bara en 7805 nu av äldre typ som klarar bara typ 500mA och den blir riktigt varm när jag ska driva LCDn.

Man kanske skulle bygga sig en bra matningskälla. Några tips på ritningar. Behöver antagligen bara 5V och den ska vara enkel.
Nu kör jag som sagt 220V -> transformator -> 7805 -> 5V.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Behöver antagligen bara 5V och den ska vara enkel.

http://www.tradera.com/auction/aid_27813592

Skicka mig 80:- så kommer en med post (byggsats).

Också 7805 baserad, men de tål ganska mycket.
Blir den *för* varm, stänger den av sig själv. Men sätt på
en enkel TO220 kylfläns annars...

Bild
Johan.o
EF Sponsor
Inlägg: 2388
Blev medlem: 18 juni 2003, 01:08:50
Ort: Jönköping

Inlägg av Johan.o »

Det må jag säga, det var en väldigt fiffig labbspänningskälla.
platinum
Inlägg: 364
Blev medlem: 10 mars 2006, 16:43:24

Inlägg av platinum »

Byggde en egen sån där fungerar jätta bra :)
Sodjan: Vad är det som gör att den stänger av sig själv när den blir för varm? Är det inbyggt i dom *nya* 7805:orna?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Nja, jag trodde att 78xx/79xx alltid har haft övertemp-skydd (och
strömbegränsning), men jag är inte säker... Däremot är det nästan
omöjligt att "köra sönder" dom... Men vilket datablad som helst
för en 78xx har no svaret på den frågan.


När det gäller labbplatte-PSU'n, så behöver man naturligstvis inte
gå via Tradera om någon är intresserad... :-)
Skriv svar