Danh mục

Giáo trình hoàn chỉnh vi điều khiển-Phần 7

Số trang: 9      Loại file: pdf      Dung lượng: 172.62 KB      Lượt xem: 13      Lượt tải: 0    
Jamona

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu giáo trình hoàn chỉnh vi điều khiển-phần 7, công nghệ thông tin, phần cứng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Giáo trình hoàn chỉnh vi điều khiển-Phần 7 Hình 2.31 Sô ñoà khoái MSSP (I2C Master mode).I2C Master ñoùng vai troø tích cöïc trong quaù trình giao tieáp vaø ñieàu khieån caùc I2C Slave thoângqua vieäc chuû ñoäng taïo ra xung giao tieáp vaø caùc ñieàu kieän Start, Stop khi truyeàn nhaän döõ lieäu.Moät byte döõ lieäu coù theå ñöôïc baét ñaàu baèng ñieàu kieän Start, keát thuùc baèng ñieàu kieän Stop hoaëcbaét ñaàu vaø keát thuùc vôùi cuøng moät ñieàu kieän khôûi ñoäng laëp laïi (Repeated Start Condition).Xung giao tieáp noái tieáp seõ ñöôïc taïo ra töø BRG (Baud Rate Generator), giaù trò aán ñònh taàn soáxung clock noái tieáp ñöôïc laáy töø 7 bit thaáp cuûa thanh ghi SSPADD. Khi döõ lieäu ñöôïc ñöa vaøothanh ghi SSPBUF, bit BF ñöôïc set vaø BRG töï ñoäng ñeám ngöôïc veà 0 vaø döøng laïi, pin SCLñöôïc giöõ nguyeân traïng thaùi tröôùc ñoù.Khi döõ lieäu tieáp theo ñöôïc ñöa vaøo, BRG seõ caàn moätkhoaûng thôøi gian TBRG töï ñoäng reset laïi giaù trò ñeå tieáp tuïc quaù trình ñeám ngöôïc. Moãi voøngleänh (coù thôøi gian TCY ) BRG seõ giaûm giaù trò 2 laàn. Hình 2.32 Sô ñoà khoái BRG (Baud Rate Benerator) cuûa I2C Master mode.Caùc giaù trò cuï theå cuûa taàn soá xung noái tieáp do BRG taïo ra ñöôïc lieät keâ trong baûng sau: Trong ñoù giaù trò BRG laø giaù trò ñöôïc laáy töø 7 bit thaáp cuûa thanh ghi SSPADD. Do I2Côû cheá ñoä Master mode, thanh ghi SSPADD seõ khoâng ñöôïc söû duïng ñeå chöùa ñòa chæ, thay vaøoñoù chöùc naêng cuûa SSPADD laø thanh ghi chöùa giaù trò cuûa BRG. Ñeå taïo ñöôïc ñieàu kieän Start, tröôùc heát caàn ñöa hai pin SCL vaø SDA leân möùc logic caovaø bit SEN (SSPCON2) phaûi ñöôïc set. Khi ñoù BRG seõ töï ñoäng ñoïc giaù trò 7 bit thaáp cuûathanh ghi SSPADD vaø baét ñaàu ñeám. Sau khoaûng thôøi gian TBRG, pin SDA ñöôïc ñöa xuoángmöùc logic thaáp. Traïng thaùi pin SDA ôû möùc logic thaáp vaø pin SCL ôû möùc logic cao chính laøñieàu kieän Start cuûa I2C Master mode. Khi ñoù bit S (SSPSTAT) seõ ñöôïc set. Tieáp theoBRG tieáp tuïc laáy giaù trò töø thanh ghi SSPADD ñeå tieáp tuïc quaù trình ñeám, bit SEN ñöôïc töïñoäng xoùa vaø côø ngaét SSPIF ñöôïc set. Trong tröôøng hôïp pin SCL vaø SDA ôû traïng thaùi logic thaáp, hoaëc laø trong quaù trình taïoñieàu kieän Start, pin SCL ñöôïc ñöa veà traïng thaùi logic thaáp tröôùc khi pin SDA ñöôïc ñöa veàtrang thaùi logic thaáp, ñieàu kieän Start seõ khoâng ñöôïc hình thaønh, côø ngaét BCLIF seõ ñöôïc set vaøI2C seõ ôû traïng thaùi taïm ngöng hoaït ñoäng (Idle). Hình 2.33 Giaûn ñoà xung I2C Master mode trong quaù trình taïo ñieàu kieän Start. Tín hieäu Stop seõ ñöôïc ñöa ra pin SDA khi keát thöùc döõ lieäu baèng caùch set bit PEN(SSPCON2). Sau caïnh xuoáng cuûa xung clock thöù 9 vaø vôùi taùc ñoäng cuûa bit ñieàu khieånPEN, pin SDA cuõng ñöôïc ñöa xuoáng möùc thaáp, BRG laïi baét ñaàu quaù trình ñeám. Sau moätkhoaûng thôøi gian TBRG, pin SCL ñöôïc ñöa leân möùc logic cao vaø sau moät khoaûng thôøi gianTBRG nöõa pin SDA cuõng ñöôïc ñöa leân möùc cao. Ngay taïi thôøi ñieåm ñoù bit P (SSPSTAT)ñöôïc set, nghóa laø ñieàu kieän Stop ñaõ ñöôïc taïo ra. Sau moät khoaûng thôøi gian TBRG nöõa, bit PENtöï ñoäng ñöôïc xoùa vaø côø ngaét SSPIF ñöôïc set. Hình 2.34 Giaûn ñoà xung I2C Master mode trong quaù trình taïo ñieàu kieän Stop. Ñeå taïo ñöôïc dieàu kieän Start laëp laïi lieân tuïc trong quaù trình truyeàn döõ lieäu, tröôùc heátcaàn set bit RSEN (SSPCON2). Sau khi set bit RSEN, pin SCL ñöôïc ñöa xuoáng möùc logicthaáp, pin SDA ñöôïc ñöa leân möùc logic cao, BRG laáy giaù trò töø thanh ghi SSPADD vaøo ñeå baétyñaàu quaù trình ñeám. Sau khoaûng thôøi gian TBRG, pin SCL cuõng ñöôïc ñöa leân möùc logic caotrong khoaûng thôøi gian TBRG tieáp theo. Trong khoaûng thôøi gian TBRG keá tieáp, pin SDA laïi ñöôïcñöa xuoáng möùc logic thaáp trong khi SCL vaãn ñöôïc giöõ ôû möùc logic cao. Ngay thôøi ñieåm ñoù bitS (SSPSTAT) ñöôïc set ñeå baùo hieäu ñieàu kieän Start ñöôïc hình thaønh, bit RSEN töï ñoängñöôïc xoùa vaø côø ngaét SSPIF seõ ñöôïc set sau moät khoaûng thôøi gian TBRG nöõa. Luùc naøy ñòa chæcuûa I2C Slave coù theå ñöôïc ñöa vaøo thanh ghi SSPBUF, sau ñoù ta chæ vieäc ñöa tieáp ñòa chæhoaëc döõ lieäu tieáp theo vaøo thanh ghi SSPBUF moãi khi nhaän ñöôïc tín hieäu töø I2C Slave,I2C Master seõ töï ñoäng taïo tín hieäu Start laëp laïi lieân tuïc cho quaù trình truyeàn döõ lieäu lieân tuïc. Caàn chuù yù laø baát cöù moät trình töï naøo sai trong quaù trình taïo ñieàu kieän Start laëp laïi seõlaøm cho bit BCLIF ñöôïc set vaø I2C ñöôïc ñöa veà traïng thaùi “Idle”. Hình 2.35 Giaûn ñoà xung I2C Master mode trong quaù trình taïo ñieàu kieän Start lieân tuïc. Xeùt quaù trình truyeàn döõ lieäu, xung clock seõ ñöôïc ñöa ra töø pin SCL vaø döõ lieäu ñöôïcñöa ra töø pin SDA. Byte döõ lieäu ñaàu tieân phaûi laø byte ñòa chæ xaùc ñònh I2C Slave caàn gia ...

Tài liệu được xem nhiều: