B
benag6
Guest
Привіт друзі,
У мене є два сумніви щодо
1.interfacing зовнішнього інтерфейсу EEPROM.
Якщо ext.eeprom (наприклад, для AT24c04) прямо пов'язане з Однокристальний мікроконтроллер ATmega16 з правильним 10k підтягти резистор, я не отримую належного каналу набір для потоку даних, і, отже, передача даних не відбувається, але коли я змінився volatge від Vcc (5V ) на 3.3V це worked.why?2.Я нижче підпрограма знати SPI працює.
Нижче наводиться частина підпрограми 4-провідний інтерфейс:
Це не працює.Чи можна знайти будь-якої несправності в ньому.Я також хотів би знати, про будь-які точних значеннях volatge необхідно приділити на шум і Даут-контактний.
запропонувати мені ідеї, вид.
nakkeeran
/ / Програма знати робочих передачі даних, використанням SPI.
. Включити "m16def.inc"
. Йе Темп = R16
. Йе temp1 = R17
. Йе даних = R19
. Фас sclk = 7; PB7 контактний
. Фас сз = 4; PB4 контактний
. Фас Мосі = 5; PB5 контактний
. Фас місо = 6; PB6 контактний
. Cseg
. Org $ 0JMP скидання
стримано
скидання:
ЛДІ temp1, низьким (ramend)
з SPL, temp1; набір lowbyte для SP
ЛДІ temp1, високий (ramend)
з SPH, temp1; набір highbyte для SP
ЛДІ темп, 0xff;
з DDRC, температура
з DDRA, температура
з ДРРР, температура
checkingSPI:
init_spi:
ЛДІ темп, 0xb0, керівництво налаштування в PORTB.
з DDRB, температура;
ЛДІ темп, 0x70; початкових імпульсів порт, а висока
з PORTB, температура;
ЛДІ Темп, $ 55, контроль експлуатації встановлений для падіння краю.отже, cpha = 1.
з SPCR, температура
writecmd_spi:
ЛДІ даних, $ 8а, це адреса, за яким дані будуть зберігатися, а також 7 біт для запису включити.
CBI PORTB, 4; сз = низький
SPDR з даних
intrpflag:
SBIS СПСР, spif
rjmp intrpflag
виклику w_16ms
writedata_spi:
CBI PORTB, 4
ЛДІ даними, $ 33, це дані
SPDR з даних
getintrpflag:
SBIS СПСР, spif
rjmp getintrpflag
ВГО PORTB, 4; / / встановлюємо біт chipselect
readcmd_spi:; це читання даних рутини.
ЛДІ даних, $ 0a, це читання даних адресу, тут на 0 біт 7 читається дозволити.
CBI PORTB, 4
SPDR з даних
getintrflag:
SBIS СПСР, spif
rjmp getintrflag
виклику w_16ms
read_data_spi:
CBI PORTB, 4
ЛДІ даними, $ 51, а деякі грубі значення.
SPDR з даних
getintr4:
SBIS СПСР, spif
rjmp getintr4
в даних, SPDR
з portd, дані; відображення даних тут SHD складе $ 33.
респ: rjmp респ
У мене є два сумніви щодо
1.interfacing зовнішнього інтерфейсу EEPROM.
Якщо ext.eeprom (наприклад, для AT24c04) прямо пов'язане з Однокристальний мікроконтроллер ATmega16 з правильним 10k підтягти резистор, я не отримую належного каналу набір для потоку даних, і, отже, передача даних не відбувається, але коли я змінився volatge від Vcc (5V ) на 3.3V це worked.why?2.Я нижче підпрограма знати SPI працює.
Нижче наводиться частина підпрограми 4-провідний інтерфейс:
Це не працює.Чи можна знайти будь-якої несправності в ньому.Я також хотів би знати, про будь-які точних значеннях volatge необхідно приділити на шум і Даут-контактний.
запропонувати мені ідеї, вид.
nakkeeran
/ / Програма знати робочих передачі даних, використанням SPI.
. Включити "m16def.inc"
. Йе Темп = R16
. Йе temp1 = R17
. Йе даних = R19
. Фас sclk = 7; PB7 контактний
. Фас сз = 4; PB4 контактний
. Фас Мосі = 5; PB5 контактний
. Фас місо = 6; PB6 контактний
. Cseg
. Org $ 0JMP скидання
стримано
скидання:
ЛДІ temp1, низьким (ramend)
з SPL, temp1; набір lowbyte для SP
ЛДІ temp1, високий (ramend)
з SPH, temp1; набір highbyte для SP
ЛДІ темп, 0xff;
з DDRC, температура
з DDRA, температура
з ДРРР, температура
checkingSPI:
init_spi:
ЛДІ темп, 0xb0, керівництво налаштування в PORTB.
з DDRB, температура;
ЛДІ темп, 0x70; початкових імпульсів порт, а висока
з PORTB, температура;
ЛДІ Темп, $ 55, контроль експлуатації встановлений для падіння краю.отже, cpha = 1.
з SPCR, температура
writecmd_spi:
ЛДІ даних, $ 8а, це адреса, за яким дані будуть зберігатися, а також 7 біт для запису включити.
CBI PORTB, 4; сз = низький
SPDR з даних
intrpflag:
SBIS СПСР, spif
rjmp intrpflag
виклику w_16ms
writedata_spi:
CBI PORTB, 4
ЛДІ даними, $ 33, це дані
SPDR з даних
getintrpflag:
SBIS СПСР, spif
rjmp getintrpflag
ВГО PORTB, 4; / / встановлюємо біт chipselect
readcmd_spi:; це читання даних рутини.
ЛДІ даних, $ 0a, це читання даних адресу, тут на 0 біт 7 читається дозволити.
CBI PORTB, 4
SPDR з даних
getintrflag:
SBIS СПСР, spif
rjmp getintrflag
виклику w_16ms
read_data_spi:
CBI PORTB, 4
ЛДІ даними, $ 51, а деякі грубі значення.
SPDR з даних
getintr4:
SBIS СПСР, spif
rjmp getintr4
в даних, SPDR
з portd, дані; відображення даних тут SHD складе $ 33.
респ: rjmp респ