|
Microblaze InstancePtr |
|
|
|
 |
Ответов
|
May 23 2007, 05:56
|
Местный
  
Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165

|
2 -=Vitaly=-: Я попробовал зделать EDK8.2 проект используя код который я привел выше. Все работало, и проблем с xspi_i.h небыло... Архив проекта не умещается здесь, поставил на http://slil.ru/24404862. Я вывел все на ISE, но этим не обязательно пользоватся, если Вы введете .ucf файл под Вашу плату в XPS все сработает и так.
--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
|
|
|
|
|
May 23 2007, 09:09
|

Местный
  
Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991

|
Цитата(CodeWarrior1241 @ May 23 2007, 08:56)  2 -=Vitaly=-: Я попробовал зделать EDK8.2 проект используя код который я привел выше. Все работало, и проблем с xspi_i.h небыло... Архив проекта не умещается здесь, поставил на http://slil.ru/24404862. Я вывел все на ISE, но этим не обязательно пользоватся, если Вы введете .ucf файл под Вашу плату в XPS все сработает и так. Спасибо, обязательно посмотрим. Я щас работаю под 9.1 Рановато наверное начал, говорили же люди до 3го сервиспака ни-ни!!
|
|
|
|
|
May 23 2007, 14:10
|
Местный
  
Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165

|
Цитата(-=Vitaly=- @ May 23 2007, 09:20)  Работает так как сказал CodeWarrior, но я не инклудил xspi_i.h и у меня он не молотит все время пачки, а затыкается через некоторе время. Так что имеем теперь 2 метода работы с SPI мой и правильный  Нащет этoй header, на ней написано "for internal use only", поэтому наверно explicitly присоиденять её не надо... Вроде все что надо присоиденять находится в /microblaze_0/include. Цитата Рановато наверное начал, говорили же люди до 3го сервиспака ни-ни!!  lol, мы сами еще на 9.1 flow не перешли, наш админ как раз по этим сооброжениям и действует.
--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
|
|
|
|
|
May 24 2007, 09:52
|

Местный
  
Группа: Свой
Сообщений: 468
Регистрация: 31-08-06
Из: Киев
Пользователь №: 19 991

|
Подскажите есть ли стандартная функция в EDK типа XIic_SelfTest, но которая выдавала бы на ножки данные. А то у меня осциллограф молчит, XIic_SelfTest выдает,что все ок. Выводы IIC вывел на ножки плиса с внутренним пуллапом. Код void IIC_init(XIic MY_Iic) { Xuint32 Iic_status; XIic_Initialize (&MY_Iic, XPAR_OPB_IIC_0_DEVICE_ID); XIic_SetOptions (&MY_Iic,XIIC_CR_ENABLE_DEVICE_MASK); XIic_Start(&MY_Iic); Iic_status= XIic_SelfTest(&MY_Iic); if(Iic_status== XST_SUCCESS){ xil_printf("IIC selftest succesful \r\n"); } else{ xil_printf("IIC some errors detected \r\n"); }
}
void main(void) { while(1) { XIic_MasterSend (&MY_Iic,0x55,1); } } И еще вопросик к CodeWarrior почему в функцию Код #define SLAVE_STARTING_ADDRESS 0x00 // set the starting slave address XSpi_Initialize(&MY_Spi, SLAVE_STARTING_ADDRESS); вы передаете адрес, когда по документации там должен идти DeviceId. Конечно в нашем случае они оба равны 0, но хотелось бы прояснить ситуацию. И еще мне не совсем понятно почему маски в xspi_l.h и xspi.h указывающие на один и тот же бит (например в регистре статуса) имеют разные значения в 2х хедерах. С I2C то же самое. В чем секрет?
Сообщение отредактировал -=Vitaly=- - May 24 2007, 09:57
|
|
|
|
|
May 25 2007, 12:07
|
Местный
  
Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165

|
Цитата(-=Vitaly=- @ May 24 2007, 05:52)  Подскажите есть ли стандартная функция в EDK типа XIic_SelfTest, но которая выдавала бы на ножки данные. А то у меня осциллограф молчит, XIic_SelfTest выдает,что все ок.
Выводы IIC вывел на ножки плиса с внутренним пуллапом. У меня не задействован I2C self-test. Я заметил пару, в моем понимании, ошибок: 1. В XIic_SetOptions (&MY_Iic,XIIC_CR_ENABLE_DEVICE_MASK); строке, функция из xiic.h, но definition XIIC_CR_ENABLE_DEVICE_MASK из xiic_l.h. Они не совместимы, options от одной не будут работать как argument для другой. 2. Вы не устанавливаете адрес slave к которому Вы высылаете 0х55. Как же I2C будет без этого? Я выставляю адрес slave-a каждый раз когда что либо пересылаю, естессно. Посмотрите комменты к функции XIic_SetAddress of the xiic.c file. Там написано почему имея XI2C_ADDRESS_TO_SEND = 0х01, надо иметь AddressType тоже. Это сваязано с установлением причины изминения адреса, т.е. если XIic_SetAddress вызывается опять, AddressType будет обозночать или то что Microblaze стал теперь slave, или что он продолжает быть master. Еще в xiic.h это поясняется: Код /* The following address types are used when setting and getting the addresses * of the driver. These are mutually exclusive such that only one or the other * may be specified. */ /** bus address of slave device */ #define XII_ADDR_TO_SEND_TYPE 1 /** this device's bus address when slave */ #define XII_ADDR_TO_RESPOND_TYPE 2 Собственно, вот сам код, попробуйте... Код #include "xparameters.h" #include "xiic.h" #include "xiic_l.h" #include "xbasic_types.h" #include "xstatus.h"
#define XI2C_ADDRESS_TO_SEND 0x01
void IIC_init(XIic MY_Iic) { Xuint32 Iic_status; XIic_Initialize (&MY_Iic, XPAR_OPB_IIC_0_DEVICE_ID); //XIic_SetOptions (&MY_Iic,XIIC_CR_ENABLE_DEVICE_MASK); XIic_Start(&MY_Iic); /* Iic_status= XIic_SelfTest(&MY_Iic); if(Iic_status== XST_SUCCESS){ xil_printf("IIC selftest succesful \r\n"); } else{ xil_printf("IIC some errors detected \r\n"); } */ }
void main(void) { while(1) { XIic_SetAddress(&MY_Iic, XII_ADDR_TO_SEND_TYPE, XI2C_ADDRESS_TO_SEND); XIic_MasterSend (&MY_Iic,0x55,1); } }
--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
|
|
|
|
Сообщений в этой теме
-=Vitaly=- Microblaze InstancePtr May 17 2007, 03:59 -=Vitaly=- Здравствуйте, где для Микроблейзового софта взять ... May 17 2007, 11:18 CodeWarrior1241 Цитата(-=Vitaly=- @ May 17 2007, 07... May 17 2007, 12:22  -=Vitaly=- Спасибо.
Я хочу банально вручную выставлять SS си... May 17 2007, 12:41 CodeWarrior1241 Вы пользуетесь low-level function XSpi_mSetControl... May 17 2007, 16:13 -=Vitaly=- Цитата(CodeWarrior1241 @ May 17 2007, 19... May 18 2007, 05:43 CodeWarrior1241 Так зделайте его глобальным и все! Веди это же... May 18 2007, 09:00 -=Vitaly=- Цитата(CodeWarrior1241 @ May 18 2007, 12... May 18 2007, 09:34  CodeWarrior1241 Я возможно перестал понимать суть вопроса... point... May 18 2007, 11:38   -=Vitaly=- Хе, хе бой продолжается. Перестало компилиться нах... May 21 2007, 07:54  XVR Цитата(-=Vitaly=- @ May 18 2007, 13... May 21 2007, 09:22   -=Vitaly=- Цитата(XVR @ May 21 2007, 12:22) С этого ... May 21 2007, 12:57    XVR Цитата(-=Vitaly=- @ May 21 2007, 16... May 22 2007, 07:30     -=Vitaly=- Спасибо, но у меня при включении xspi_i.h отказыва... May 22 2007, 11:21      -=Vitaly=- Пока сделал так, проверил работает, правда приходи... May 22 2007, 14:32     CodeWarrior1241 Цитата(XVR @ May 22 2007, 03:30) Что каса... May 22 2007, 12:34   CodeWarrior1241 ЦитатаУ Вас направильно определен этот самый Insta... May 21 2007, 12:59      -=Vitaly=- Ау Jun 7 2007, 11:33       CodeWarrior1241 Цитата(-=Vitaly=- @ Jun 7 2007, 07... Jun 7 2007, 14:55 CodeWarrior1241 Цитатапочему в функцию
Код#define SLAVE_STARTING... May 24 2007, 12:40 -=Vitaly=- Цитата(CodeWarrior1241 @ May 24 2007, 15... May 24 2007, 13:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|