Multinode USART?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
jesse
Inlägg: 9241
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Multinode USART?

Inlägg av jesse »

Det var ju en poäng förstås, det tänkte jag inte på :vissla:
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Multinode USART?

Inlägg av blueint »

Datablad för "High-speed CAN transceiver" MCP2551

0,931 EUR/st hos mouser.com låter överkomligt.
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: Multinode USART?

Inlägg av Pajn »

TXD är TTL kompatibel och RXD är CMOS kompatibel. Betyder det att jag måste ha två olika kretsar för de pinnarna? :humm: :lol:

Jag förstår mig inte riktigt på den där kretsen, den verkar inte implentera några av funktionerna i CAN utan den verkar mer funka som MAX/SP485 fast det går en annan typ av signal i trådarna.
Fattar jag rätt då?

Kan jag snacka på samma sätt som MAX/SP485 med den?
Det verkar inte gå att stänga av sändning så man får se till att TXD är hög är man inte snackar.
Hur funkar TX i en µCs USART modul, är den hög eller låg när enheten håller käften?

Prismässigt är de ung samma som SP485 så det det hänger på är vilken som är "bäst"

SP485 har fördelen att det går att stänga av sändning vilket känns bättre än att hålla TXD hög även om det är exakt samma funktion fast på samma pinne.
CAN har fördelen att det garanterat är säkert att snacka i munnen på varandra.
Nerre
Inlägg: 27408
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Multinode USART?

Inlägg av Nerre »

Om jag inte minns fel så är den hög, samma läge som "stoppbiten" (stoppbiten är egentligen bara en "paus" före nästa startbit).
Användarvisningsbild
Icecap
Inlägg: 26796
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Multinode USART?

Inlägg av Icecap »

En UART i "vila" har '1' på TX.

Och i MAX485.kretsen kan man växla mellan att ha sändaren och mottagaren aktiv vid att koppla ihop de två styringångar. Men jag skulle vilja föreslå att du INTE stänger av mottagaren men låter den vara enablat hela tiden. Då kan man jämföra det inkommande med vad man just sände och se om det blir skit av det hela.
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: Multinode USART?

Inlägg av Pajn »

>Om jag inte minns fel så är den hög, samma läge som "stoppbiten" (stoppbiten är egentligen bara en "paus" före nästa startbit).
Okej, bra. Då spelar det ju ingen roll att det inte går att stänga av write, egentligen är det ju bra för jag slipper den extra styrningen.

>Och i MAX485.kretsen kan man växla mellan att ha sändaren och mottagaren aktiv vid att koppla ihop de två styringångar. Men jag skulle vilja föreslå att du INTE
>stänger av mottagaren men låter den vara enablat hela tiden. Då kan man jämföra det inkommande med vad man just sände och se om det blir skit av det hela.
Får se. Har läst lite att man ska stänga av läs för annars kan det bli problem i kretsen. Fast det beror ju på krets såklart, det går ju snabbt att testa och se :)

Just nu lutar det nog mer åt CAN kretsen men jag vet inte, känns ganska hugget som stucket.
EDIT: Om man nu kan snacka med USART modulen i µCn precis 485 lösningen.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: Multinode USART?

Inlägg av jesper »

Att köra 'riktig' CAN utan hårdvarustöd i processorn kommer bli rätt så knepigt.

Då du vill ha att alla enheter ska vara master, borde du kanske använda 485 drivern som man gör i J1708. Då kopplar du TXD till TX-enable pinnen istället för till TX. TX sätter du fast på låg. RX-enable är alltid aktiv. På så sätt kan du implementera en prioritetsordning liknande CAN (kallas MID i J1708).

Se mer här: http://en.wikipedia.org/wiki/J1708
och här: http://www.ti.com/lit/an/snla038a/snla038a.pdf
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: Multinode USART?

Inlägg av Pajn »

Det var ju också en lösning :tumupp:
Problemet är att TX-enable är aktiv hög på SP485 och MAX486 och "viloläget" är hög. Då skulle jag behöva invertera signalen :/
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: Multinode USART?

Inlägg av jesper »

Ja, det behövs tyvärr, men det kanske går att göra i I/O konfigurationen, beroende på vilken processor du har.
Pajn
Inlägg: 1160
Blev medlem: 6 juni 2008, 19:14:29
Ort: Nyköping
Kontakt:

Re: Multinode USART?

Inlägg av Pajn »

Okej :(
Det verkade inte ga att ändra på 18f2550 som jag kör som "generell" processor när jag utvecklar iaf.

Då testar jag nog att köra "normalt". Kretsen borde vara kortslutningssäker så jag beställer några att testa med och hoppas på det :)
Förhoppningsvis ska jag aldrig behöva komma så att de snackar i mun på varandra utan det ska jag ju försöka känna av. Om det blir så att de börjar snacka *exakt* samtidigt kommer jag ju märka det genom att läsa tillbaka det jag skickar. Det ska inte vara batteridrivet så att jag kan råka dra 250mA (x2 borde det bli va?) korta stunder ibland är ingen katastrof.

Nätet kommer inte vara så trafikerat att prioriteringar behövs så jag tror det kommer bli bra.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Multinode USART?

Inlägg av blueint »

https://en.wikipedia.org/wiki/J1708

Hur åstadkommer man differentiell och öppen-kollektor operation samtidigt !?

"The hardware utilized are RS-485 transceivers wired for open collector operation through the use of a pullup and pulldown of the separate data lines."
ToPNoTCH
Inlägg: 5275
Blev medlem: 21 december 2009, 17:59:48

Re: Multinode USART?

Inlägg av ToPNoTCH »

Pajn skrev:Okej :(
Det verkade inte ga att ändra på 18f2550 som jag kör som "generell" processor när jag utvecklar iaf.
Kolla RXDTP och TXCKP i BAUDCON registret.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: Multinode USART?

Inlägg av jesper »

@blueint: Vad som menas är nog att _funktionen_ blir motsvarande en open-kollektor lösning. Men man har fortfarande fördelen med en differentiell lina.

En stor fördel mot "vanlig" RS485 är att man kan skippe den tredje I/O pinne man normalt behöver för TX_ENABLE. Samt all komplexitet runt denna, som eventuellt behövs i mjukvara.
Användarvisningsbild
Icecap
Inlägg: 26796
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Multinode USART?

Inlägg av Icecap »

Om det nät som det ska kommuniceras på räcker en bit rent fysisk skulle jag aldrig använda någon form av open-collector! Störningar får lättare att ställa till det och i detta nät blir det ju de-facto som OC när alla sändare tystnar - men när någon väl sänder drivs datalinorna "hårt" och det ger ett bättre skydd mot störningar.

Jag ser inte vilket problem ett renodlat RS485-nät skulle ha, visst kan det bli kollisioner (vilket drivkretsarna är designade för att klara) men mjukvaran för att fixa den delen är inte svår att greja.

Jag hade låtit mottagaren varit aktiv konstant på varje node, sedan hade jag kopplat en Capture-ingång (trigga på negativ flank) till RX-linan också och då kunde mjukvaran enkelt kolla om det var en sändning på gång vid att ta tid på varje startbit. Kan man knyta detta ihop med en timer ville det vara en del enklare: om det blir en Capture (kan j bli fler på en sänd byte) kollas tiden nu mot förra tiden, då vet man om det är samma byte eller en ny, detta sker då direkt en annan node påbörjar sin sändning.

Men kollisioner kommer hända ändå och det kan vara värd att helt enkelt skita i om de kolliderar men istället fixa en bra och stabil omsändning, kanske med slumpmässiga väntetider mellan omsändning.
Användarvisningsbild
jesper
Inlägg: 722
Blev medlem: 12 juni 2006, 16:04:08
Ort: Laem Mae Phim, Thailand

Re: Multinode USART?

Inlägg av jesper »

Det är ju ingen skillnad på en RS485 och J1708 bus i icke-drivet läge. Båda är terminerade.
J1708 designades för och används fortfarande i tunga fordon, det hade man knappast gjort om inte bussen var störningstålig.

Läs PDF'en som jag länkade till för mera info.
Skriv svar