PIC UART out är 3.3V?
PIC UART out är 3.3V?
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?
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?
- 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:
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.
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.
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?
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?
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?
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
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
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.
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.