RE: no activity on MCF5275 QSPI bus
"Carter, Richard" <[email protected]> Thu, 13 Mar 2008 12:38:02 -0700
| Newsgroups | gmane.comp.hardware.motorola.microcontrollers.coldfire |
|---|---|
| Message-ID | <3DD728A3B927AA438D6367166CC67D091F5914@ala-mail10.corp.ad.wrs.com> |
Sounds like the pin assignments aren't setup right. I've not used the 5275, but the 5208 and 5329 both have PAR configuration bits that need to assign the I/O pins to QSPI. Rich Carter 603-897-2071 > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of David van Geest > Sent: Thursday, March 13, 2008 3:05 PM > To: Carter, Richard > Subject: [ColdFire] no activity on MCF5275 QSPI bus > > Hi all, > > I'm having trouble with the QSPI on my M5275EVB. I've > written a test app that should give me some activity on the > bus, according to the Programming Example in the manual (pg. > 24-16). With an oscope probe on pin 3 or 5 of J9 (SCK and > QSDO, respectively), I don't see ANY activity - both pins > stay at 3.3 V. > > The oscope works fine - I've run a whole lot of self-tests, > and it shows similar signals just fine (e.g. the I2C on the > same board). > > Some more background: I'm running uClinux on the board. I > was trying to port the mcf_qspi driver, and when using my > ported driver, was again not seeing any activity on the bus. > I decided to eliminate the driver as the source of the > problem, and instead gave user apps R/W/E access to the QSPI > registers using the PACR registers. > > When running the test app, all the QSPI registers seem to be > written correctly. I've included the test app source and > sample program output below. Note that I don't have a SPI > device attached, which is why the received data is all 1s. > > At this point I'm thinking that either: > a) I've missed something incredibly obvious and am going to > look stupid by sending this email... :-) > b) There's a hardware problem > > Can someone take a look at my test app code and help me > eliminate that as a cause? > > Thanks! > -David > > Test app code (reg definitions provided in a separate file): > int main () { > // I didn't want to do 12 bit transfers.... 16 bit instead > // Also, set the baud rate to slowest setting with FF > instead of 08 > QMR = 0x83FF; > if (QMR == 0x83FF) > printf("Step 1: QMR Write\n"); > > QDLYR = 0x0404; > if (QDLYR == 0x0404) > printf("Step 2: QDLYR Write\n"); > > QIR = 0xD00F; > if (QDLYR == 0x0404) > printf("Step 3: QIR Write\n"); > > QAR = 0x0020; > if (QDLYR == 0x0404) > printf("Step 4: QAR Write\n"); > > //while (1) { > int i = 0; > for (i = 0; i < 4; i++) { > QDR = 0x7E00; > } > for (i = 0; i < 4; i++) { > QDR = 0x7D00; > } > for (i = 0; i < 4; i++) { > QDR = 0x7B00; > } > for (i = 0; i < 4; i++) { > QDR = 0x7700; > } > printf("Step 5: QDR Command Write\n"); > > QAR = 0x0000; > printf("Step 6: QAR Write\n"); > > u16 temp = 0x0000; > for (i = 0; i < 16; i++) { > temp = i; > QDR = temp; > } > printf("Step 7: QDR Data Write\n"); > > QWR = 0x0F00; > printf("Step 8: QWR Write\n"); > > QDLYR |= QDLYR_SPE; > printf("Info: QDLYR is: %x\n", QDLYR); > printf("Step 9: SPE Set\n"); > > > //wait until transfer is complete > while (1) { > printf("Step 10: Waiting...\n"); > temp = QIR & 0x0001; > if (temp == 0x0001) > break; > } > > QAR = 0x0010; > printf("Step 11: Write QAR\n"); > u16 receiveBuff[16]; > for (i = 0; i < 16; i++) { > receiveBuff[i] = QDR; > printf("Step 12: Received Data at %d is > %x:\n",i,receiveBuff[i]); > } > //} > > printf("Done!\n"); > > return(0); > > } > > > Test app output: > Step 1: QMR Write > Step 2: QDLYR Write > Step 3: QIR Write > Step 4: QAR Write > Step 5: QDR Command Write > Step 6: QAR Write > Step 7: QDR Data Write > Step 8: QWR Write > Info: QDLYR is: 8404 > Step 9: SPE Set > Step 10: Waiting... > Step 11: Write QAR > Step 12: Received Data at 0 is ffff: > Step 12: Received Data at 1 is ffff: > Step 12: Received Data at 2 is ffff: > Step 12: Received Data at 3 is ffff: > Step 12: Received Data at 4 is ffff: > Step 12: Received Data at 5 is ffff: > Step 12: Received Data at 6 is ffff: > Step 12: Received Data at 7 is ffff: > Step 12: Received Data at 8 is ffff: > Step 12: Received Data at 9 is ffff: > Step 12: Received Data at 10 is ffff: > Step 12: Received Data at 11 is ffff: > Step 12: Received Data at 12 is ffff: > Step 12: Received Data at 13 is ffff: > Step 12: Received Data at 14 is ffff: > Step 12: Received Data at 15 is ffff: > Done! > --- > [email protected] Send a post to the list. > [email protected] Join the list. > [email protected] Join the list in digest mode. > [email protected] Leave the list. > > --- [email protected] Send a post to the list. [email protected] Join the list. [email protected] Join the list in digest mode. [email protected] Leave the list.