PIC UART out är 3.3V?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Goran
Inlägg: 31
Blev medlem: 19 augusti 2006, 09:47:36
Ort: Göteborg

PIC UART out är 3.3V?

Inlägg av Goran »

Frågade samma fråga i en annan tråd men kanske bättre att starta en ny tråd då ämnet avviker från trådens ämne.

Det är så att jag har en PIC (p18f4320) som jag vill skicka UART signaler från till en BlueTooth-modul. Modulens UART nivåer är på 3.3V. Undrar om nivåerna automatiskt regleras ner hos PIC:en (från TTL till 3.3V) då jag ställer in output pinnarna att arbeta med UART? Eller om jag måste skaffa mig en speciell driver-krets mellan PIC:en och modulen? ...eller det kanske finns bättre lösningar?
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Antigen en separat drivkrets eller bara ett så kopplar du utgången från picen med spänningdelare eller två serikopplade dioder (loosar cirka 1,6V på det och det ger 3,7V som max för hög signal och det brukar vara tillräckligt nära för att fungera, sätt ett 100 ohm motstånd i serie också för sinnesfriden skull om du vill, men fungerar troligen bra ändå) ingången till PICen GÅR ta 3,3V direkt, du får lägre störmarginaler, men det brukar fungera (5V matad pic tolkar Uin/2 som omslagsnivå mellan hög och låg - det ger dig en störmarginal på 0,8V - inte perfekt, men som sagt kan vara oki så länge miljön är lugn och applikationen inte är superkritisk)

Den enkla metoden beskriven här fungerar, men är det viktigt och du vill ha maximala marginaler så är en 5/3,3V linjedrivare bästa lösningen. Eller iaf EN bra lösning - finns givetvis fler sätt att lösa det på om man vill blanda in fler komponenter.
Goran
Inlägg: 31
Blev medlem: 19 augusti 2006, 09:47:36
Ort: Göteborg

Inlägg av Goran »

Skulle få ner storleken på min krets genom att antingen använda sig av spännigsdelare eller sänka potentialen mellan inputen på modulen med två dioder. Men tror jag skall satsa på en mer robust lösning.

Det är alltså http://www.elfa.se/pdf/73/730/07300635.pdf jag talar om och kollar man i databladet där så definierar den LOW som 0-0.2V och HIGH som 2.1-3.7V. Är det någonting som jag kan fixa med t.ex driverkretsen MAX232?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Det absolut enklaste är att köra hela kopplingen på 3.3 V. Alltså även PIC'en.
Du skrivet inte att du *inte* kan göra det, så då föreslår jag helt enkelt det.

Dock kräver det lite hänsyn till ICSP om du använder det för programmeringen.
Goran
Inlägg: 31
Blev medlem: 19 augusti 2006, 09:47:36
Ort: Göteborg

Inlägg av Goran »

Min pic behöver minst 4V eftersom jag kör den på hög frekvens och modulen är 10% av alla grejer jag kopplar till den som inte skall köras på TTL-nivå. Om jag däremot skulle använda mig av en diodkoppling som bengt föreslog och "åt andra hållet" använda mig av schmitt-triggade inverterare för att få upp nivån till TTL?
Goran
Inlägg: 31
Blev medlem: 19 augusti 2006, 09:47:36
Ort: Göteborg

Inlägg av Goran »

Eller kanske en motstånd-zener(3.3V)-koppling istället för de vanliga dioderna? Då får man ju in strömbegränsningen på samma gång så att man kan sova lugnt om nätterna.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Är det ett "one-off" projekt ?
Jag har för mig att Texas (TI) har 3.3/5 V converters som man kan sampla...
Användarvisningsbild
Tony
Inlägg: 1038
Blev medlem: 9 november 2003, 16:08:47

Inlägg av Tony »

Jag skulle använda en diskret inverterare dvs. en transistorswitch.

Både PIC och BT-modulen har ju interna pullup så allt du behöver är en NPN-transistor (BC548) och ett förkopplings-motstånd (4k7) sen får du aktivera pullup på de relevanta ingångarna.

[out]----[4k7]----(B)
[In]-----(C)
GND-----(E)

BC548 benen nedåt, flata sidan mot dig, från vänster till höger: CBE
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Detta problem kan lösas med den "Nivå omvandlare" som jag har i min "Freebie"-sektion på min hemsida. Istället för att koppla en spänningsdelare med 5V kopplar du helt enkelt basen till 3,3V via ett 4,7K motstånd. Signalen från 5V UART kastas in på emittern och på kollektorn tas 3,3V signalen ut. Du behöver en pull-up på kollektorn till 3,3V, 4,7K duger nog helt bra.

I essens behöver du alltså 2 motstånder + 2 NPN småsignal transistor.

Fördelen med den koppling är att den inte inverterar signalen.
Skriv svar