# RS232 / USB / Bezvadu komunikācija >  RS485, kā no PC nosūtīt 9 bitu datu paku

## SnacK

Sveicināti!

Eksperimenta pēc gribētu pamēģināt saslēgt kopā vairākus Atmel 8-bit mikrokontrollerus, izmantojot RS485 līniju. Ar pašiem MCU viss it kā skaidrs. Viens ir kā master, pārējie slave, USART uzstādījumos 9 biti, no parity, 1 stop bits. 9. bits norāda tiek sūtīti dati, vai adrese.
BET es kā master iekārtu gribu izmantot PC. Ir uztaisīts FT232RL + SN75176 adapteris. Diemžēl netieku skaidrībā kā no PC lai nosūta 9 bitus.
Nekāds dižais programmētājs neesmu, līdz šim, sūtot 8 bitus, esmu rakstījis tikai Win32 konsoles programmas MS Visual C++. Datu nosūtīšana un saņemšana veiksmīgi izdevās ar _WriteFile_ un _ReadFile_ funkcijām. Bet tādā veidā laikam var nosūtīt tikai līdz 8 bitiem. Tad nu, kā lai nosūtu 9 bitu virkni, netieku gudrs...

Paldies!

----------


## kabis

Paskaties datora com portu konfigurāciju, iespējams, ka tur var uzlikt 9 bitu režīmu.

Alternatīvs variants ir izmantot vēl 1 mikrokontrolieri, kurš ar pārējiem sarunājas caur rs485, bet ar datoru caur kādu citu interfeisu (piem. rs232 vai usb).
Lūk links ar dažādiem projektiem, kā atmel 8 bitu kontrolierus pieslēgt pie datora caur usb: http://www.obdev.at/products/vusb/index.html

----------


## SnacK

9 bitus uzstādīt nevar ne iebūvētājam COM porta kontrolierim, ne FT232.
Pamēģināšu vēl variantu, ka datus nosūta pa pakām un katrs pirmais baits norāda adresi. Tas gan sarežģīs programmu un prasīs vairāk resursus no visiem MCU, lai izanalizētu visus ienākošos datus.
Multi-processor Communication Mode režīmu izmantot būtu ērtāk, jo tad liekie dati automātiski tiek atfiltrēti...

----------


## JDat

lai arii laikam vairs nav aktuaali, es saakutu kiimikjot un sarezhgiit visu procesu.
no PC uz FR232rl (kaa man patiik shitaa mikrene). pa TXD un RXD suutam 8 bitus kaa parasti, pa vadiibas signaaliem RTS,DTS utt) iemaanam 9 bitu.
teiksim DTR indicee vai mums ir 8 biti vai 9 biti (0-8bit/1-9bit mode). pa RTS deviitais bits. taalaak naak talkaa master MCU kontrolieris, kas runaas ar paareejiem 9 bit modee. MCU analizee DTR staavokli, ja 9 bit mode, tad njem veeraa RTS. Neskatoties ka teoreetiski ideja ir laba, tomeer praksee var rasties probleemas. Savulaik baroju seriaalo portu ar PL2303 (vai kaa tur vinju USB to serial) ar tainstruura impulsiem un konstateeju ziepes: ja uz vadiibas kaajaam dod impulsus, kuru frekvence ir lielaaka par 250 Hs, tad ports vairs nejuut ka tie signaali ir mainiijusies. Nezinu, kas pie taa vainiigs: mans generators, USB ports vai PC, bet vij taa ka nestraadaaja. Pagaidaam uz fr232rl neesmu veicis shitaadus experimentus laika truukuma deelj. Vbet tuvaakajaa laikaa shis jautaajusm aktualizeesies arii uz fr232rl. Taatad truukumi: var gadiities ka straadaas, bet ar aatrumiem liidz 250 bitiem sekundee, jaaizmanto master MCU ar 2 seriaalajiem portiem. PC softs paliek specifisks un kaut kas jaakodee pasham.
Secinaajums, shito triku ir jeega taisiit tikai iipashos un specifiskos gadiijumos.

----------


## JDat

ja kaadu veel interesee: man izdevaas ieksh ft232rl mikrenes iepuust taisnstuuri 400 Hz un kompis uzskaitiija. taatad teoreetiski var dabuut 9 bitiigu aatrumu liidz 400 bitiem sekundee. Itkaa standarta aatrumu 300 bitus 9-bitu rezhiimaa vareetu suutiit ar taadu kiimiju.

----------


## marizo

Ar FT232RL kaut kādu ķīmiju uztaisīt laikam var. Reiz eksperimentēju ar DMX512 vadību no datora, tur bija tāda lieta, ka datu pakas sākumu apzīmēja ar >10 bitus garu loģisko "1". Tālāk gan dati tika sūtīti 8N2. Tikai nevar jau tikt tās programmas source, lai saprastu, kas un kā tiek sūtīts.
Ja jau pa starpu liek kādu kontrolleru, tad jau tikpat labi var uz to sūtīt 2 baitus pa 8 bitiem, bet pa RS485 tos pārveidot uz 9bitu.

----------

