|
|
  |
Для "Peps" и остальных кто пользуется ЕАТ - исправления. |
|
|
|
Mar 9 2011, 07:11
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
Simcom ответил на запрос согласно вот этого: 1. possibly error in libraries SIM900DevIDE - procedure of interrupt trap from signals UART EVENT_SERIALSTATUS in manual, and EVENT_SERAILSTATUS in fl_appinit.h. 2. In a document SIM900_Embedded AT Application Note_V1_0.pdf page 34 possibly error. A "Type" is written FlTriggerType , in libraries this type is described as FlGpioTriggerType. 3. interrupt does not work from GPIO новая версия фирмваре выложена - http://microchip.ua/temp/coresw3.rarДокументацию заменю на сайте по приходу новых версий. Вот дословно ответ: Thanks for your interest for our Embedded AT. 1 > For the spelling in our code “fl_appinit.h”, it is a mistake. However it will not affect the running of our program. You can use it 2 > We will change the doc accordingly. 3 > For question3, please test beat version.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Mar 10 2011, 07:46
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-12-05
Пользователь №: 12 076

|
Наверно нам уже можно претендовать на зарплату, как внештатным сотрудникам отдела QA Симкома  Понятное дело, все делают ошибки, это рабочий процесс. Но такая прошивка, по идее, не должна была покинуть даже здание Сикмома. Peps, Вы пробовали обновлять прошивку по воздуху с помощью eat1_09UpdateEmbeddedAp() ? Вроде работает, но думаю, насколько безопасно использовать если будет сбой питания. Не знаете, в файле .cla присутсвует контрольная сумма?
|
|
|
|
|
Mar 10 2011, 08:08
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-12-05
Пользователь №: 12 076

|
Хм. Пока не видел зависаний, можно подробней? Один раз только, на передаче по FTP модуль призадумался и не индицировал приходящие смс, но сам вернулся потом. Может использовать watchdog (ebdat4_04Wdtkick)?
|
|
|
|
|
Mar 10 2011, 08:29
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-12-05
Пользователь №: 12 076

|
Cadilo,
Спасибо попробуем, как время будет. Скорее всего так и есть, нужно пересобрать с новым core. Отпишусь. Вы не знаете, что ещё интересного в новой прошивке кроме фикса по прерываниям от GPIO? Беглый взгляд выявил новые команды: : CBUZZERING, NETLOCK, CEMNL, SLEDS( уже упомянули ), CRTXVMA Эх, если бы можно было ещё какой-то уникальный id читать из eat приложения. imei не годится, т.к можно сменить. Например 64 bit unique device number флешки.
|
|
|
|
|
Mar 10 2011, 08:33
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
http://microchip.ua/temp/coreSW.rarвыложил так как пришло - не перепаковывая. если это мой недосмотр, то приношу извинения. они особо подчеркнули что это должно заменить (или добавить если для 02 не было) все подобные файлы от V02 в директории \coreSW у меня это например так: C:\SIM900DevIDE\EmbatSIM\gsmos\coreSW\ 0x3700001000000115.str 1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307.cla 1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307.def 1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307.sym 1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307.x
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jun 8 2011, 11:18
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-09-10
Из: Харьков
Пользователь №: 59 703

|
День добрый. Решил разобраться с Embedded AT в модуле SIM900D (версия B05). Для начала решил собрать пример с СМС, который идет в комплекте с DevIDE. Скомпилировал проект, залил полученный *.cla файлик в модуль. Модуль нормально включается и работает (воспринимает АТ команды, регистрируется в сети), но на команду AT+CRWP=1 отвечает ERROR. Подскажите что я делаю не так?
Сообщение отредактировал ahha71283 - Jun 8 2011, 11:19
|
|
|
|
|
Jun 8 2011, 12:15
|
Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-12-05
Пользователь №: 12 076

|
А есть ли уже список изменений для 1137B03V01SIM900M64_ST_EAT.cla?
|
|
|
|
|
Jun 8 2011, 18:56
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-09-10
Из: Харьков
Пользователь №: 59 703

|
Цитата(CADiLO @ Jun 8 2011, 14:49)  А кто вам сказал что этот EAT работает на 900D ???? Только для SIM900.
Кстати я разжился комплектом для работы EAT связки SIM900+SIM08. Платформа версии 3013, документации нет ибо неофициально. Собственно нового там ядро и файлы окружения. Кому интересно разобраться без доков пишем на почту. Да вроде как СимКом сам говорит что SIM900D поддерживает Embedded AT ( пруфлинк). Или EAT разные бываю?
--------------------
Жить, как говорится, хорошо! А хорошо жить - еще лучше! (с)
|
|
|
|
|
Jun 9 2011, 13:38
|
Группа: Новичок
Сообщений: 5
Регистрация: 24-09-10
Из: Харьков
Пользователь №: 59 703

|
Цитата(CADiLO @ Jun 9 2011, 08:20)  Ну если достанете ядро для SIM900D, то может что-то и получится. А с ядром от SIM900 это маловероятно. Еще вопрос к уважаемому CADiLO. Хочу прояснить для себя ситуацию. Выходит SIM900D с заводской прошивкой не поддерживает Embedded AT? А как на счет SIM900, его заводская прошивка поддерживает эту ф-ию или нужно перепрошивать некой инженерной версией?
--------------------
Жить, как говорится, хорошо! А хорошо жить - еще лучше! (с)
|
|
|
|
|
Jun 21 2011, 05:46
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
э-э-э... может ли выключенное устройство включить само себя? имхо - нет. пользовательская прошивка, как и ядро, запустится после команды на включение - пауэркея. всегда ваш - КО.
з.ы. собсно, зачем зашел, - DTMF в ЕАТ SIM900 нужен очень. штоб был.
|
|
|
|
|
Jun 21 2011, 06:19
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
ну, старт возможен по подаче питания и без помощи МК. или поставить что-то мелкое - типа pic10f206. варианты здесь уже обсуждались месяц назад
|
|
|
|
|
Jun 21 2011, 06:49
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
во-первых, тут это оффтоп во-вторых, мне с шестиногим пиком для включения/контроля как-то спокойнее
|
|
|
|
|
Jun 30 2011, 09:56
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
апнем темку... ковыряю ЕАТ SIM900. очень он мне нравится. однако накопились вопросы без ответов (а может жара сказывается) - нужна помощь зала... 1. ADC. запрос: AT+CADC? ответ при свободно болтающемся входе: +CADC: 1,5 подал на вход Vdd_ext (пинцетом замкнул  ): +CADC: 1,1264 по документации ответ должен быть в диапазоне 0-2800, при этом нельзя подавать на вход более 2,8В. чё к чему? я что-то пропустил, или все же пинцет не наш метод? 2. вопрос на общую эрудицию: встроенная музыка в ЕАТ SIM900 как воспроизводится? не в смысле - какой командой, а куда? могу я ее проигрывать дозвонившемуся абоненту? я вот что-то в толк взять не могу... а есть варианты записать свою мелодию или речь и воспроизводить?
|
|
|
|
|
Jun 30 2011, 10:31
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
ну, т.е. напряжение он показывает напрямую, т.е. их 2800 это при расчете на нашу порядочность (не подавать более 2,8 вольта), а так-то он измерит сколько дашь (пока не сгорит). это приятно.
Уважаемый CADiLO! а нельзя по музыке китайцам напрямую вопрос задать - можно ли записать в память фрагмент и воспроизводить штатным проигрывателем? память вроде позволяет, средствА вроде есть - паркуа бы и не па? я правда еще не смог и эту музыку послушать, но это вопрос времени...
|
|
|
|
|
Jun 30 2011, 10:37
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
По музыке похожий вопрос уже подымался, но сейчас их инженер, который непосредственно ЕАТ занимается, в отъезде. Как только вернется - спрошу.
Вот чего есть в документации - Development Guid for Embedded AT2.0.pdf
The fl_SetCustAudio function - This function replaces default midi file with customer midi music from memory.
Значит можно подсунуть свой MIDI файл.
s8 fl_SetCustAudio(FlAudioName index, u8 * toneLocation, u32 toneSize, bool isUsed);
• Parameter index: The audio name, only applies to audio file from FL_AUDIO_1 to FL_AUDIO_20
Tonelocation: The audio file’s address
toneSize: The size of the audio file
isUsed: if TRUE, uses customer music instead FALSE, the index audio will use default audio
• Return values OK on success FL_RET_ERR_PARAM the paramerer is error
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Aug 3 2011, 12:53
|
Группа: Участник
Сообщений: 10
Регистрация: 14-07-09
Пользователь №: 51 230

|
месяц прошел, руки дошли - апнем темку. Development Guid for Embedded AT2.0.pdf прочел, но он не про сим900, увы. а хотелось бы чего-то подобного. вопрос прежний: встроенная музыка в ЕАТ SIM900 как/куда воспроизводится? как ее проигрывать дозвонившемуся абоненту? как записать свою мелодию или речь и ее воспроизводить?
|
|
|
|
|
Sep 15 2011, 06:07
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Нужда прижала обновить прошивку. для SIM900 EAT, указанная в этой теме прошивка - последняя? (1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307)
А то вроде бы она для тестирования. Или были изменения? Если были изменения, можно их как-то получить?
|
|
|
|
|
Sep 19 2011, 13:37
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Поделитесь пож-та прошивкой 1137B03V01SIM900M64_ST_EAT. Поставщик "завис" - менять его будем однозначно. Работа стоит. Буду очень благодарен.
|
|
|
|
|
Sep 19 2011, 15:29
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Цитата(Romashki @ Sep 19 2011, 21:24)  куда поделиться? Она вообщето есть в C:\SIM900DevIDE\EmbatSIM\gsmos\coreSW\rvctcore\ Либо по почте ap<сбк>li.ru, либо по фтп. Там правда 32мега, почтовый ящик наверно не выдержит. У меня предыдущее ядро.
|
|
|
|
|
Sep 20 2011, 00:52
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Цитата(Romashki @ Sep 19 2011, 21:24)  куда поделиться? Она вообщето есть в C:\SIM900DevIDE\EmbatSIM\gsmos\coreSW\rvctcore\ Спасибо! *.cla пришел. Правда скомпилировать тест без остальных файлов не получится.
|
|
|
|
|
Sep 20 2011, 07:41
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Спасибо!! Большой респект Romashki и CADiLO! Наши украинские коллеги гораздо внимательнее моего поставщика
|
|
|
|
|
Dec 24 2011, 16:34
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Кто может поделится Код 1137B03V01SIM900M64_ST_EAT ? Есть в наличии Код C:\SIM900DevIDE\EmbatSIM\gsmos\coreSW\1137B01V02SIM900M64_ST_EAT.cla она сильно отличается от новой ?? можно её зашивать ? а также нашол ещё Код 1137B01V02SIM900M64_ST_EAT.cla 1137B01SIM900M64_ST_EMBEDDEDAT.cla и ещё Код 1137B01V03SIM900M64_ST_EAT_FOR_TEST_20110307.cla Вот ещё вылезла интересная ошибка
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 26 2011, 08:08
|

Гуру
     
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988

|
1137B03V01SIM900M64_ST_EAT - входит в состав IDE 108 1137B01 - первая версия, после нее и прерывания исправлены были и еще некоторые вещи. вобщем так: http://www.microchip.ua/temp/NG.RAR - IDE+компилятор, рабочий комплект 38 мег кто до 30 декабря не успеет - я не виноват.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Dec 26 2011, 11:22
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Поставил новый компилятор. Все собирается отлично. version1 не забываем править. Вопрос по поводу заливки прошивки остался открытый вопрос. Софт отказывается заливатся через загрузчик. Куда рыть даже не догадываюсь. Пробовал из под ВинХп пишет тоже самое. Схемотехнически распаял обычный мост на MAX3232 между SIM900 и PC, в линиях ТХ RХ стоят резисторы на 100 ом. Все больше ничего не напаивал. Как зашиваю. Включаю программу, выбираю ядро и приложение нажимаю СТАРТ ЗАГРУЗКИ, и зажимаю ПОВКЕЙ кратковременно, как бы начинается процесс загрузки, но после 4х пунктов вываливается с ошибкой.
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 26 2011, 14:41
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата Такой вопрос. А обновлять прошивку случайно нужно не через ДЕБАГ порт ??? В общем можно та и так без разницы.
|
|
|
|
|
Mar 22 2012, 10:11
|
Группа: Новичок
Сообщений: 2
Регистрация: 17-03-12
Пользователь №: 70 858

|
Подскажите пожалуйста где можно скачать сам АРМ компилятор ? Сам RVCT собственно.
|
|
|
|
|
May 3 2012, 18:26
|
Местный
  
Группа: Участник
Сообщений: 209
Регистрация: 5-12-10
Пользователь №: 61 419

|
Подскажите по SPI в SIM900 c EAT. Не могу подружить SIM900 с SST25VF016B. Выводы подключены к ногам 11,12,13,14 модуля. Настройки модуля ebdat5_01SpiConfigure(SSI_4WIRE, SSI_ACTIVE_LOW, FL_PIN_14, SSI_SYSTEM_DIV_2, SSI_FALLING_EDGE, SSI_MSBFIRST); Не получается даже тип SST25VF016B считать. Вот функция:
void select_end_mem(void) { u8 bfur[4],i; u32 end_of_mem=0;
#ifdef VS_DEBUG u8 buff_for_sms[]="End of memory 0x0FFFFF";//22(17) #endif
ebdat5_02SpiWriteByte(0x9F); for(i=0;i<3;i++)bfur[i]=ebdat5_03SpiReadByte(); if(bfur[2]==0x41)end_of_mem=0x1FFFFF; else if(bfur[1]==0x4A)end_of_mem=0x3FFFFF; else end_of_mem=0;
#ifdef VS_DEBUG
if(end_of_mem==0x1FFFFF)buff_for_sms[16]='1'; else if(end_of_mem==0x3FFFFF)buff_for_sms[16]='3'; else {buff_for_sms[17]='0';buff_for_sms[18]='0';buff_for_sms[19]='0'; buff_for_sms[20]='0';buff_for_sms[21]='0';}
ebdat7_01DebugTrace((const char*)"\r\n"); ebdat7_02DebugUartSend(buff_for_sms, 22); ebdat7_01DebugTrace((const char*)"\r\n");
#endif } В порт выдает End of memory 0x000000 Примерно понимаю, что что-то не так с ногой CHIP SELECT, поскольку функции ebdat5_02SpiWriteByte и ebdat5_03SpiReadByte её дергают постоянно, а нужно только перед ebdat5_02SpiWriteByte и после третьего ebdat5_03SpiReadByte. Но как это сделать - не знаю. Может кто подскажет? Или товарищи из SIMCOMa подскажут....
|
|
|
|
|
May 3 2012, 20:37
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата(CADiLO @ Mar 22 2012, 14:36)  Неужели так трудно написать письмо региональному официальному дистрибьютору, ответить на пару вопросов и получить программу ? Такой раздельный вызов функций Write и Read естественно, приводит к тому, что по окончанию записи или чтения байта CS будет снят, что недопустимо для вашего протокола. Обычно SPI трехпооводный и одновременно отправляет и читает байт. Я не знаком с реализацией SPI в EAT, но в OCPU софтово реализовна функция, которая пишет и одновременно читает заданное количество байт. Т.о. пишем три байта (первый - команда, остальные - неважно), одновременно читаем тоже три (первый - неважно, остальные два - ответ).
|
|
|
|
|
May 12 2012, 11:25
|

Евгений
  
Группа: Участник
Сообщений: 341
Регистрация: 13-10-11
Пользователь №: 67 706

|
Цитата(Romashki @ May 11 2012, 20:11)  Эдуард, может Вы подскажете, как это побороть? Очень благодарен буду. А если так? u8 Buf[4] = {0x9F,0x00,0x00,0x00}; for(i=0;i<4;i++) { ebdat5_02SpiWriteByte(Buf[i]); - шлем Buf[i] = ebdat5_03SpiReadByte(); - читаем } Как вариант - возьмите осцил и подключитесь в MOSI, MISO и CLK. Посмотрите есть ли клоки при ebdat5_03SpiReadByte() и данные от слэйва по линии MISO.
Сообщение отредактировал Цырен. - May 12 2012, 11:26
--------------------
|
|
|
|
|
May 13 2012, 08:42
|
Местный
  
Группа: Участник
Сообщений: 209
Регистрация: 5-12-10
Пользователь №: 61 419

|
Цитата(GeGeL @ May 13 2012, 08:20)  PS: альтернативой есть написать самому даную функцию (абсолютно ничего сложного), используя стандартные функции управления ножками модуля. Конечно, будет на порядок медленней обмен, но хоть как... Пытаюсь это сделать....знать бы сколько выполняется команда по установке ноги в 1 или 0 ... или это нельзя определить?
|
|
|
|
|
Aug 16 2012, 07:47
|
Местный
  
Группа: Участник
Сообщений: 209
Регистрация: 5-12-10
Пользователь №: 61 419

|
Вроде бы получилось написать свои функции SPI....но пришлось использовать комбинации, которые Симком запрещает.....ну...пока деваться некуда.... это функции типа while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK);
Функции, которые получились:
bool eeprom_ready(void) { u8 tmg;
while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK); send_byte(0x05); tmg=read_byte(); while(ebdat6_04WriteGpio(EEPROM_SELECT,1)!=FL_OK); if((tmg&0x01) || !(tmg&0x02))return 0; else return 1; }
u8 read_byte(void) { u8 a,dats=0; bool mBits;
for(a=0;a<8;a++) { while(ebdat6_04WriteGpio(EEPROM_CLK, 1)!=FL_OK); dats<<=1; while(ebdat6_05ReadGpio(EEPROM_DI,&mBits)!=FL_OK); if(mBits)dats|=1; while(ebdat6_04WriteGpio(EEPROM_CLK, 0)!=FL_OK); } return dats; }
void send_byte(u8 bt) { u8 i;
for(i=0;i<8;i++) { if(bt&0x80)while(ebdat6_04WriteGpio(EEPROM_DO,1)!=FL_OK); else while(ebdat6_04WriteGpio(EEPROM_DO,0)!=FL_OK); while(ebdat6_04WriteGpio(EEPROM_CLK, 1)!=FL_OK); bt<<=1; while(ebdat6_04WriteGpio(EEPROM_CLK, 0)!=FL_OK); } }
//****************************************************************** void write_ext_eeprom (u32 address,u16 count,u8 *bfur) { u16 i;
init_ext_eeprom(); while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK);
send_byte(0xAD); send_byte(address>>16); send_byte(address>>8); send_byte(address); send_byte(bfur[0]); /* send 1st byte to be programmed */ send_byte(bfur[1]); /* send 2nd byte to be programmed */
while(ebdat6_04WriteGpio(EEPROM_SELECT,1)!=FL_OK);
for(i=2;i<count;i+=2) { ebdat05_09delay(10);//microseconds while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK); send_byte(0xAD); send_byte(bfur[i]); /* send 1st byte to be programmed */ send_byte(bfur[i+1]); while(ebdat6_04WriteGpio(EEPROM_SELECT,1)!=FL_OK); } ebdat05_09delay(10);//microseconds while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK); /* enable device */ send_byte(0x04); /* send WRDI command */ while(ebdat6_04WriteGpio(EEPROM_SELECT,1)!=FL_OK); /* disable device */ ebdat05_09delay(10);//microseconds eeprom_ready(); init_ext_eeprom(); } //****************************************************************** void read_ext_eeprom(u32 address,u16 count,u8 *bfur) { u16 i;
while(ebdat6_04WriteGpio(EEPROM_SELECT,0)!=FL_OK); send_byte(0x03); send_byte(address>>16); send_byte(address>>8); send_byte(address);
for(i=0;i<count;i++)bfur[i]=read_byte(); while(ebdat6_04WriteGpio(EEPROM_SELECT,1)!=FL_OK); } //******************************************************************
Можно даже без ebdat05_09delay(10);
|
|
|
|
|
Oct 2 2012, 12:49
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 7-06-12
Из: Севастополь, Россия
Пользователь №: 72 202

|
Вот и мне пришлось вплотную использовать SPI начал на 25LC160 16K SPI™ Bus Serial EEPROM пришла в голову мысль использовать функции SPI из EAT, а под ChipSelect использовать GPIO11, все отлично работает. Появилась необходимость использовать АЦП adc084s021 SPI 4-chanel 8-bit, но там необходимо писать и читать одновременно после 4-го SLK, и стандартные функции ЕАТ уже не катят, как с EEPROM (там все просто начала запись потом чтение). Пришлось написать свои функции на основе предидущего сообщения.
Было бы хорошо иметь совмещенную во времени функцию SpiWriteReadByte() ,чтоб писала и читала одновременно (такой пользовались на Siemens TC-65).
Так как нет фунции SpiUnsubscribe() "освободить ноги", то пришлось делать две SPI-шины одна для SPI-аппаратная, вторая SPI-программная.
Пример с использованием альтернативнго SC.
void WR_SPI_D(u16 addr, u8 data_SPI) /*WRITE BYTE 25LC160 SC->GPIO11*/ { /*Set the write enable latch (enable write operations)*/ ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x06); ebdat6_04WriteGpio(FL_PIN_67, 1);
ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x02); ebdat5_02SpiWriteByte(addr>>8); ebdat5_02SpiWriteByte(addr & 0xFF); ebdat5_02SpiWriteByte(data_SPI); ebdat6_04WriteGpio(FL_PIN_67, 1); } /*-----------------------------------------------------------*/ u8 RD_SPI_D(u16 addr) /*READ BYTE 25LC160 SC->GPIO11*/ { u8 data_r=0; ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x03); ebdat5_02SpiWriteByte(addr>>8); ebdat5_02SpiWriteByte(addr & 0xFF); data_r = ebdat5_03SpiReadByte(); ebdat6_04WriteGpio(FL_PIN_67, 1); return data_r; } /*-----------------------------------------------------------*/ void WR_SPI_SR( u8 data_SPI) /*WRITE STATUS REGISTER 25LC160 SC->GPIO11*/ { /*Set the write enable latch (enable write operations)*/ ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x06); ebdat6_04WriteGpio(FL_PIN_67, 1);
ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x01); ebdat5_02SpiWriteByte(data_SPI); ebdat6_04WriteGpio(FL_PIN_67, 1); } /*-----------------------------------------------------------*/ u8 RD_SPI_SR(u16 addr) /*READ STATUS REGISTER 25LC160 SC->GPIO11*/ { u8 data_r=0;
ebdat6_04WriteGpio(FL_PIN_67, 0); ebdat5_02SpiWriteByte(0x05); data_r = ebdat5_03SpiReadByte(); ebdat6_04WriteGpio(FL_PIN_67, 1); return data_r; } /*-----------------------------------------------------------*/ /* Initialization SPI*/ ebdat5_01SpiConfigure( SSI_4WIRE, SSI_ACTIVE_LOW, FL_PIN_14, SSI_SYSTEM_DIV_512, SSI_FALLING_EDGE, SSI_MSBFIRST); if (ebdat6_08pinConfigureToUnused(FL_PIN_67) == FL_OK) if (ebdat6_02GpioSubscribe(FL_PIN_67,FL_GPIO_OUTPUT,1) == FL_OK) ebdat7_01DebugTrace("INIT PIN_67 OK \r\n");
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|