|
|
  |
TWI в sam7s |
|
|
|
Apr 24 2008, 12:23
|

Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600

|
Цитата(aaarrr @ Apr 7 2008, 13:02)  ИМХО, TWI на SAM7 все же неработоспособен. У меня есть несколько "почти работающих" вариантов, но все они благополучно сыпятся на попытке общения с SAA7113. Софтверный во сто крат лучше, поверьте  А могли бы поделиться сим софтварным и2с ? С ходу ничего не удалось нагуглить
|
|
|
|
|
Apr 24 2008, 12:43
|

Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600

|
Цитата(aaarrr @ Apr 24 2008, 20:35)  Что там гуглить? Работы на пару часов максимум.
iic.rar ( 1.86 килобайт )
Кол-во скачиваний: 331Спасибо большое! У меня бы заняло намного больше времени... И получилось бы хуже. До каких частот можно спокойно раскачивать ?
|
|
|
|
|
Jun 16 2008, 22:41
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Apr 7 2008, 08:02)  ИМХО, TWI на SAM7 все же неработоспособен. Добрался до аппаратного TWI модуля в SAM7 S. Софтверный драйвер непозволительная роскош в моем случае. На мой взгляд работать куда удобнее чем со стандартным филипковым I2C (портировал драйвер с LPC на SAM7) Проверил с рамтроновскими FM'ками и at24 серией, а также c мегой в качестве слейва, да и просто без ничего на линии. Давил линию принудительно в 0. работает.. 400kHz полет нормальный, TWI модуль не подвисает. (до "Soft reset" дело ни разу не дошло). PS: подтяжки всегда ставлю 1k (с некоторыми девайсами обеспечивает 1Mhz трансфер).
|
|
|
|
|
Jun 17 2008, 01:54
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Да вроде нормально давил ;> Попробовал фокус с отверткой (закоротить линии) - сработал soft reset и шина задышала себе дальше. В атаче драйвер "как есть". пример применения: Код void CheckExtStorage(void) { U8 addr = 0xA0; U8 rBuf[16];
printf("Discovering storages connected to I2C bus\n"); while (addr < 0xA8) { printf("storage 0x%x...", addr); i2c_MemTransfer( addr + SLA_R, 0x00, sizeof(rBuf), rBuf); if (i2c_WaitCompleteOperation() == ACK) printf("PRESENT"); else printf("NOT present"); printf("\n"); addr += 2; }
}
.... i2c_Init(); CheckExtStorage();
Прикрепленные файлы
i2cdrv.zip ( 5.03 килобайт )
Кол-во скачиваний: 108
|
|
|
|
|
Jun 19 2008, 12:11
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(aaarrr @ Apr 7 2008, 09:02)  ИМХО, TWI на SAM7 все же неработоспособен. У меня есть несколько "почти работающих" вариантов, но все они благополучно сыпятся на попытке общения с SAA7113. Софтверный во сто крат лучше, поверьте  Да ладно, ребят, что-то ужасы какие-то рассказываете. Как может быть неработоспособным модуль серийного девайса? Может быть, просто есть какие-то нюансы, которые должны прекрасно обходиться. Ну а если "тыкать" отвёрткой или паяльником по выводам работающего чипа, так тут не только TWI заглючит, а вообще всё погореть может...
|
|
|
|
|
Jun 19 2008, 12:28
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 19 2008, 16:11)  Да ладно, ребят, что-то ужасы какие-то рассказываете. Ужасы.Цитата(sonycman @ Jun 19 2008, 16:11)  Как может быть неработоспособным модуль серийного девайса? Может. У SAM7 это один из PLL и I2C slave. Цитата(sonycman @ Jun 19 2008, 16:11)  Может быть, просто есть какие-то нюансы, которые должны прекрасно обходиться. Поверьте, я с атмеловскими ARM'ами имею дело уже 7 лет, и бился с I2C до последнего, но эта ж. может работать лишь с ограниченным набором I2C устройств.
|
|
|
|
|
Jul 4 2008, 00:51
|
Участник

Группа: Свой
Сообщений: 65
Регистрация: 15-11-07
Из: Taipei, TW
Пользователь №: 32 356

|
И снова TWI в AT91SAM7S256. Это нормально, что стандартный пример AT91SAM7S256-BasicTWI-IAR4_30A-1_21 не хочет компилится? Говорит Код Error[Pe018]: expected a ")" D:\iararm5\AT91SAM7S-Interrupt\Src\lib_twi.c 74 Error[Pe018]: expected a ")" D:\iararm5\AT91SAM7S-Interrupt\Src\lib_twi.c 74 Error[Pe018]: expected a ")" D:\iararm5\AT91SAM7S-Interrupt\Src\lib_twi.c 78 и так далее, до 130 строчки, на безобидные с виду if ((status & ERROR) == ERROR) error++;. Работа только в режиме Master, компилер IAR ARM 5.11.
Сообщение отредактировал ЕшТ - Jul 4 2008, 00:52
|
|
|
|
|
Sep 3 2008, 23:09
|
Участник

Группа: Свой
Сообщений: 65
Регистрация: 15-11-07
Из: Taipei, TW
Пользователь №: 32 356

|
товарищи, у кого нибудь вообще тви аппаратный работает в сам7с? скиньте кусочки кода с функциями плиз. Родные с примера что-то не работают. компилятор ИАР 5.10
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|