RS232-drivare som klarar 460kbit/s till en debugport
RS232-drivare som klarar 460kbit/s till en debugport
Jag har en debugport som kör asynkron seriedata via en UART med en enkel funktion för att bitbanga ut datan till en terminal/PC. För att få bitbangen att funka med rätt tider så stängs avbrottet av under en teckentid. Inga problem så långt. Så funkar det idag.
För att denna funktion skall kunna användas överallt, även i t.ex avbrottsrutiner, så måste tiden som avbrottet är avstängt hållas minimal. Detta görs enklast genom att hålla en riktigt hög bithastighet som då gör att teckentiden blir kort, och därmed även avstängningstiden. Jag skulle vilja köra den på 460kbit/s för att få tillräckligt korta tider. Problemet är att MAX232:an som sitter mot terminalen/PC:n då inte hänger med.
Det går givetvis att göra en diskret eller op-baserad drivare som kan klara det, men det hade varit mycket enklare att bara köpa en MAX232-kompatibel krets att plugga in istället för den befintliga. Då blir det ingen utvecklingstid alls. Eftersom jag har lite knappt med tid så skulle en kompatibel krets lösa saker mycket smidigare. Någon som vet om någon sådan? Dom flesta verkar bara klara 115kbit/s eller däromkring. Eller har jag letat för dåligt?
För att denna funktion skall kunna användas överallt, även i t.ex avbrottsrutiner, så måste tiden som avbrottet är avstängt hållas minimal. Detta görs enklast genom att hålla en riktigt hög bithastighet som då gör att teckentiden blir kort, och därmed även avstängningstiden. Jag skulle vilja köra den på 460kbit/s för att få tillräckligt korta tider. Problemet är att MAX232:an som sitter mot terminalen/PC:n då inte hänger med.
Det går givetvis att göra en diskret eller op-baserad drivare som kan klara det, men det hade varit mycket enklare att bara köpa en MAX232-kompatibel krets att plugga in istället för den befintliga. Då blir det ingen utvecklingstid alls. Eftersom jag har lite knappt med tid så skulle en kompatibel krets lösa saker mycket smidigare. Någon som vet om någon sådan? Dom flesta verkar bara klara 115kbit/s eller däromkring. Eller har jag letat för dåligt?
Re: RS232-drivare som klarar 460kbit/s till en debugport
Kika på 1488/1489 ..?
Eller fula med TX till transistor som använder MAX232 för +12 (eller -12V?) och zener åt andra hållet?
Eller fula med TX till transistor som använder MAX232 för +12 (eller -12V?) och zener åt andra hållet?
Re: RS232-drivare som klarar 460kbit/s till en debugport
Eller byt till usb/uart bridge tex FT245R från FTDI chip. Jag kör 921600 bps till en sådan...
Re: RS232-drivare som klarar 460kbit/s till en debugport
Alla dom varianterna skulle kunna funka, men ingen uppfyller önskemålet om att vara kompatibel med MAX:en. Finns det ingen sådan, så får det bli något annat ändå. USB-varianten skulle ju egentligen kunna vara rätt smidig, om man ändå måste bygga nytt.
Re: RS232-drivare som klarar 460kbit/s till en debugport
Gå till : http://para.maxim-ic.com/en/search.mvp? ... ree=master
Dra upp reglaget "Data Rate (kbps)" till önskad gräns.
Studera resultatet.
De har RS232 tranceivers upp till 3 Mbps.
Om du inte hittar något som passar *där*, så vet i fan...
Dra upp reglaget "Data Rate (kbps)" till önskad gräns.
Studera resultatet.
De har RS232 tranceivers upp till 3 Mbps.
Om du inte hittar något som passar *där*, så vet i fan...
Re: RS232-drivare som klarar 460kbit/s till en debugport
Inte kanske direkt svar på frågan, men för framtiden så kanske du kan tänka dig nåt sånt här? Supersmidig som debugkabel!
Re: RS232-drivare som klarar 460kbit/s till en debugport
Sodjan> Jo, den hittade två varianter, MAX3225E & MAX3225.
danwi> Den ser ju rätt trevlig ut för ändamålet. Nu blev det faktiskt nästan samma variant. En UB232R inhandlades idag och håller på att kopplas in på 5V-signalen. Så får vi se om det funkar som jag tänkt...
danwi> Den ser ju rätt trevlig ut för ändamålet. Nu blev det faktiskt nästan samma variant. En UB232R inhandlades idag och håller på att kopplas in på 5V-signalen. Så får vi se om det funkar som jag tänkt...

Re: RS232-drivare som klarar 460kbit/s till en debugport
Japp. Då var det inkopplat och testkört. Fungerar utmärkt, förutom att det är lite tight att få till en bra timing med den hastigheten och frekvensen som jag kör. 16MHz kristall, och 460kbit/s ger ca 8.6 klockcykler/bit. Det blir aningen för stort bitfel för att gå felfritt i alla lägen oavsett om man kör 8 eller 9 klockcykler/bit. Det går att göra mer korrekt genom att sätta olika tider på varje bit, t.ex varannan bit 8 cykler och varannan 9 cykler. Dock har jag ingen plats i den befintliga applikationen just nu för den extra kod som behövs. Men det fungerar hjälpligt som det är, så det får vara för denna gången. 
Edit:
Eftersom jag kör med btfss följt av btfsc för att kolla och sätta utbiten till rätt värde, så blir det naturligtvis lite grann jitter där också och en aning förskjutning av flanken beroende på om det är ettbit eller nollbit. Det har säkert också en liten inverkan på tiderna.

Edit:
Eftersom jag kör med btfss följt av btfsc för att kolla och sätta utbiten till rätt värde, så blir det naturligtvis lite grann jitter där också och en aning förskjutning av flanken beroende på om det är ettbit eller nollbit. Det har säkert också en liten inverkan på tiderna.