Problem med ATmega2560 I2C (Software Module)

D

djnik1362

Guest
hei jeg har et styre som inkluderer en Spartan II FPGA. I denne FPGA er det en Slave I2C mottaker som jeg skrev det. Når jeg kobler ATmega16 I2C utgang (merk: programvare I2C ikke 2-Wire) til å styre det arbeidet lykkes. (Merk: Jeg satt 2-Wire Pins for I2C (PORTC)). Men det er et annet bord som har ATmega2560 som har samme programvare som ATmega16 men FPGA kan ikke motta data fra den. (Merk: Jeg satt 2-leder pins for I2C (PORTD)). Kan du foreslå noen ide å løse dette problemet? Takk.
 
Hvis du bruker programvare forsinkelser (som _delay_ms ()) så jeg kan foreslå deg å sjekke klokkehastighet og, om nødvendig, for å justere F_CPU. Også sjekke hvilke klokke kilde du bruker, og sjekk sikringer for å kontrollere om du har div8 sikring aktivert eller ikke.
 
Hvis du bruker programvare forsinkelser (som _delay_ms ()) så jeg kan foreslå deg å sjekke klokkehastighet og, om nødvendig, for å justere F_CPU. Også sjekke hvilke klokke kilde du bruker, og sjekk sikringer for å kontrollere om du har div8 sikring aktivert eller ikke.
Hvordan justerer F_CPU og hva er det? Jeg sjekker med div8 sikring sett og tydelig og i begge er det ingen ACK i mottakeren. Min FPGA kode er følsom for positive kanten av SCL og synes arbeidet med alle I2C frekvens virkelig. Min undring er samme program i ATmega16 fungerer, men fungerer ikke på ATmega2560. Jeg må nevne ATmega16 er på en enkel evaluere styret men ATmega2560 er på en kompleks bord med mange enheter slik FPGA, PROM, buffere, D / A. Jeg blir gal!
 
Hvis du bruker GCC til å skrive koden, så du (eller din Makefile) må definere F_CPU symbol. Dette er klokkehastigheten i Hertz, slik at du kan skrive noe sånt-DF_CPU = 8000000 I AVR Studio, det er et prosjekt alternativ hvor du definere klokkehastighet - dette har effekten av å definere dette symbolet. Dessverre vet jeg ikke hvordan er i IAR, men jeg er ganske sikker på at det er noe sånt.
 

Welcome to EDABoard.com

Sponsor

Back
Top