Interfaing SPI comm între 18f46k22 şi 18f8722.

D

deeplearns

Guest
Salut prieteni, am încercat să se conecteze şi LCD de modul de 18F46k22. Modulul LCD care are ecran tactil utilizează 18F8722. Prin urmare, am încercat să interfaţă 18f8722 (în calitate de căpitan), pentru a 18F46k22 (sclav). Am fost capabil de a crea programul şi simula o sucesfully Usin Proteus. Dar când l-am incercat pe hardware-ul nu funcţionează la toate .. nu clk impulsuri nimic. Dar acum i se poate vedea unele impulsuri pe Clk şi SDO comandantul trimite impulsuri .. dar nimic nu la receptor pentru master care este SDI (18f8722). Aceasta este Slave (18f46k22) nu trimite nici impulsuri. Poate cineva ajuta cu un cod de test, foarte de bază. Multumesc.
 
Poate cineva vă rog să-mi dai niste idei .. Am fost capabil de a obţine unele impulsuri de la receptor, dar prea amplitudinea de impulsuri par să fie foarte scăzut. Sclavul meu primeste de date .. Si l-am programat să clipească un LED pe date corecte recieval .. şi funcţionează. Am făcut acelaşi lucru pentru master, însă LED-ul nu clipească deloc ... Eu pot vedea în impulsuri CRO pentru CLK, SDO, SDI. Singura diferenţă este de amplitudine pentru SDI Master sau Slave SDO este prea mic poate V 0.2. Atunci când ar trebui să atleast 4.8 cred. Te rog ajuta-ma .... Multumesc din nou.
 
Hai sa verificat u fişa de date pentru orice pull up Enable este necesar?
 
U a se vedea, fără a trage în sus permite semnalul clk şi SDO pentru master şi SDI pentru sclavi sunt bine ..... Am fost încercarea de a depana problema şi au încercat diverse lucruri. Am eliminat legătura dintre maestru şi SDO SDI Slave pentru a verifica dacă lor este o problemă .. chnages nimic. Apoi am conectat un rezistor 100k SDI betwween sclav şi de la sol (extern), în continuare acelaşi lucru. Şi, de fapt, i-au dezactivat RPBU ... deoarece în foaia de date lor nu este nici o menţiune, cum ar. Ele sunt menţionate a fi necesară atunci când se utilizează funcţia de întrerupere schimbare .. Oricum mulţumesc pentru un răspuns ma simt bine .. ca lor au fost nici un răspuns de mai multe zile .. Şi voi încerca să dea un extern pull-up în loc de externe trage în jos. Multumesc.
 
Poate încărca u partea de configurare portul de la programul de Ur? Voi încerca să treacă prin foaia de date. Multumesc [COLOR = "Silver"] [/COLOR] Dacă este posibil, de asemenea, încărcaţi schematică. Am descarcat foaia de date a modulului LCD. Vreau să ştiu cum ur-l interfaţă. Cu LCD şi touch screen 2 SPI este folosit pentru a comunica cu 18f8722. Sunt u încearcă să comunice cu acest MCU cu un alt SPI? Care este sursa de alimentare de utilizare u la putere în sus? 5 sau 3.3? Care este starea de pini vtsc?
 
va fi bine, dacă u încărcaţi schema ur şi, probabil, cod, astfel încât să putem ajuta u. care sunt u folosind platforma (AŞM, c, de bază), etc cum configuraţi u pinul portului. în cazul în care producţia de serie este pe PORTB fi sigur că tractiuni nu sunt activate sau mai bine încercaţi să-l în continuare pe alte porturi. i-au întâmpinat această problemă înainte de a utiliza 16f886 & 7. Nu pot spune acest lucru ceea ce este greşit, dar inca ma gandesc sa ca urmare a caracterului multifuncţional al portului. verifica astfel de configurare şi asiguraţi-vă că nu sunt atribuirea o funcţie de portul în timp ce aştepta un alt. noroc
 
Modulul LCD vorbesc despre este un modul de achiziţionat de la Mikroe Visual GLCD SmartGLcd 240 * 128 şi utilizările PIC 18f8722 ca bază.. Acum l-am programat pentru a oferi un ecran vizual în care intrăm 8 octet de date variabile şi care ar trebui să fie transferat la un alt 18F46k22 PIC, care, atunci cand primeste datele vor conduce anumite motoare în funcţie de valoarea de primit. După transferul de date este complet, atunci 18f8722, treaba se face ... Eu acum încerc să fac un cod de bază pentru a transmite date de la Master şi sclav .. si daca datele corecte primit clipesc LED-uri stare. Aşa cum am menţionat mai devreme clipi LED-uri atunci când am pus condiţia ca datele primit este mai mare, apoi la zero. Dar, atunci când sunt puse de date starea primit este exact ceea ce i-am trimite .. nu clipeşte. Când este bifat în osciloscop datele trimise de maestru arata bine, dar este în polaritate opusă .. eu pot vedea ceasul având pozitiv la sol WRT polaritate .. dar SDO Master sunt sub pământ în CRO .. şi impulsurilor de master SDI prea sunt sub pământ şi la nivel de tensiune ar trebui să fie în jurul valorii de 0,2 la 0,5 volţi numai.
 
Acesta este un dispozitiv de 5 V, Port C bit 3 4 5 sunt folosite pentru ssp. .. Cocern meu principal pare a fi .. 1: trimite datele arată a fi în polaritate opusă în CRO .. 2 ... de date primit de master este de amplitudine foarte mică şi de polaritate opusă .. Aceasta este tensiunea de sclav SDO portul este foarte scăzut. Care ar putea fi motivul. Maestrul foloseşte de asemenea, de fapt, 40 Mhz oscilator extern şi receptor este de la 64 MHz oscilator intern.
 
"De asemenea, Maestrul foloseşte de fapt, 40 Mhz oscilator extern şi receptor este de la 64 MHz oscilator intern", de la scheme am constatat că frecvenţa procesorului master este setat la 32mhz în loc de u 40MHz utilizat. I-am luat într-o mulţime de probleme atunci când ceasului procesorului nu se potriveşte cu ceea ce sa în cod, în special atunci când se utilizează usarts. deşi eu nu am simula circuit, dar încercaţi şi să verificaţi acest lucru şi a vedea ce u va primi. Şi mă întreb de ce u facut sclav frecvenţa mai mare decât cea a comandantului. doar curios. noroc
 
Salut baieti, am atasat un extern de 10 MHz cristal alongwith activat PLL, ceea ce face 40 MHz încă nici noroc. Am încercat să deconectaţi SDI Master şi Slave SDO şi apoi pot vedea impulsuri de la SDO Slave de amplitudine în jur de 4,5 V, dar când am conecta la SDI Master semnalul devine atteunated. Deci, este sclavul trimite impulsuri, dar atunci când este conectat la receptor Maestru apare problema. Acelaşi lucru se întâmplă atunci când se utilizează 64 Mhz ceasul intern.
 
Bună din nou, de fapt, am fost în măsură să comunice SPI SPI de fapt, căprioară, nu necesită două UC să aibă frecvenţa oscilatorului acelaşi ceas de Master este ceea ce controlează transferul de date, dar lor încă mai este o problemă minoră, rob primeste datele corect, dar Maestrul nu atunci când am pus condiţia de a clipi a condus la o anumită valoare primit, atunci aceasta nu funcţionează, dar cand dau un interval .. ex pentru 240 ... dacă aş spune> = 0 sau> = 100 sau> = 200 se face clipi. Presupun că am nevoie pentru a verifica WCOL sau bit SSPOV alighn pentru transferul de date sau de a evita coliziunea, nu am putut înţelege cum se face de la foaia de date. Asteptam Ajutor ASAP. Multumesc.
 

Welcome to EDABoard.com

Sponsor

Back
Top