Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Сб апр 22, 2017 23:27:51

Albert_V писал(а):Переводной документацией не пользуюсь.
Ваш пример - это, похоже, работа в режиме Slave.
Прочтите программатором вашу 25AA040 и выложите что там сейчас прописано.

у меня нет железа, я в протеусе работаю
Изображение

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Сб апр 22, 2017 23:40:23

kotbaris1 писал(а):у меня нет железа, я в протеусе работаю.

По протезу я не советчик.
Если даже в MPLAB встречаются ошибки симуляции, я хз что творится в протезе.

Добавлено after 9 minutes 54 seconds:
БЛ@@@@@@!!!!!
Ошибка протеза!!!!
Числа 45h и A2h - это одно и тоже число, только "наоборот"!
Разложите в bin оба числа и поймёте....

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Сб апр 22, 2017 23:49:11

Albert_V писал(а):
kotbaris1 писал(а):у меня нет железа, я в протеусе работаю.

По протезу я не советчик.
Если даже в MPLAB встречаются ошибки симуляции, я хз что творится в протезе.

Добавлено after 9 minutes 54 seconds:
БЛ@@@@@@!!!!!
Ошибка протеза!!!!
Числа 45h и A2h - это одно и тоже число, только "наоборот"!
Разложите в bin оба числа и поймёте....

10100010
1000101
мда, действительно) аххаха.... сколько я долбился с этим. Спасибо) Цистерну валерьянки вам)

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Сб апр 22, 2017 23:59:43

И ещё:
Конкретно с вашим PIC18F242 я не работал, но те из серии PIC18F которые у меня были, не выставляли флаг прерывания если прерывание не разрешено.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 01:32:31

Albert_V писал(а):И ещё:
Конкретно с вашим PIC18F242 я не работал, но те из серии PIC18F которые у меня были, не выставляли флаг прерывания если прерывание не разрешено.

Окей. Спасибо

Добавлено after 1 hour 23 minutes 48 seconds:
Albert_V писал(а):И ещё:
Конкретно с вашим PIC18F242 я не работал, но те из серии PIC18F которые у меня были, не выставляли флаг прерывания если прерывание не разрешено.

Он там искажает данные как может... ощущение что биты где-то теряются.
Ибо выдает C8, вместо 0x90... A0 место 0x40

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 01:58:31

Мой вам совет: Переходите от симуляции к реальному железу.
Железо, в отличии от симулятора, не врёт.

Добавлено after 22 minutes 14 seconds:
Чую, скоро модератор обратит внимание на то, что вы в свои посты вставляете полные цитаты.
За это реально можно получить предупреждение или бан.
Постарайтесь не вставлять цитаты, без которых будет понятен ваш пост.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 04:53:22

Albert_V писал(а):И ещё:
Конкретно с вашим PIC18F242 я не работал, но те из серии PIC18F которые у меня были, не выставляли флаг прерывания если прерывание не разрешено.

Вы о чем? :shock:
Флаги не имеют к разрешениям прерываний никакого отношения. Если уж на то пошло, то флаги формируются в самом периферийном модуле, а разрешения в контроллере прерываний. Нафига таскать сигналы туда-обратно?
Да и схема логики формирования прерываний у всех 18-х ПИКов идентична. Раздел даташита с этой схемой тупо копипастится из одного даташита в другой.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 12:31:14

КРАМ писал(а):Вы о чем?

О том что, к примеру, в PIC18F26K22 модуль MSSP2 не поднимет флаг SSP2IF если у него не разрешено прерывание. Проверено в железе!
Что касается <Нафига таскать сигналы туда-обратно?> - ответ простой: Мне была нужна работа с SPI с низшим приоритетом (в фоновом режиме).

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 14:07:22

Уверяю Вас, - Вы ошибаетесь.
"Проверка в железе" очень часто дает ложные представления. Все зависит от обстоятельств. У Вас по каким то неизвестным Вам обстоятельствам не взводился флаг(а может Вы его не смогли корректно продетектировать), и Вы дали такое объяснение....
По существу. На стр.114 даташита есть схема вентилей формирования прерываний. И там есть, в том числе, регистр PIR3, который всеми 8 своими разрядами участвует в генерации прерываний как один из аргументов функции И. Другими двумя аргументами являются регистры разрешения и приоритета PIE3 и IRP3. То есть нет никакой необходимости в том, о чем Вы излагаете. Мало того, я достаточно часто употреблял флаг SPI как способ ожидания следующей транзакции в буфер при передаче. Без всяких прерываний. Именно на этом контроллере. Например у меня есть прибор, где инициализация модуля передатчика RFM (HopeRF) как раз происходит по флагам. А дальнейший обмен уже в прерываниях.
Последний раз редактировалось КРАМ Вс апр 23, 2017 14:11:46, всего редактировалось 1 раз.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 14:11:20

Уверяю Вас что проверка внутрисхемным Debugger-ом (ICD3) позволяет точно понять где и почему ошибка.
Последний раз редактировалось Albert_V Вс апр 23, 2017 14:16:13, всего редактировалось 1 раз.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 14:14:23

Положим, у меня такой же ICD3... :)
И результаты прямо противоположные. Например, при определенных настройках среды на брекпойнте может не происходить апдейта данных и требуется сделать еще один шаг вручную. Это чисто как пример.

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вс апр 23, 2017 14:41:21

Эти тонкости я знаю. :)

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Пн апр 24, 2017 08:56:37

Position number one:

Изображение

Position number two:

Изображение

Как я и говорил, Вы ошибаетесь.
Контроллер PIC18F25K22
Дебаг через ICD3
Программа слегка модифицирована, чтобы продемонстрировать искомое.
:)

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Пн апр 24, 2017 22:12:06

Если и на приём данных уверенно работает - пусть будет так.
Сколько авторов программ - столько и решений...

Re: Проблемы со SPIMEM. Запись во внешнюю EEPROM

Вт апр 25, 2017 03:10:52

В каком смысле "на прием"? В слейве?
В SPI нет понятия "на прием". Чтобы что либо принять, нужно что либо передать. Поэтому продемонстрирован режим "мастер". Подъем флага BF по завершении передачи как раз говорит о том, что буфер ЗАПОЛНЕН. Имеется ввиду буфер приема, конечно.
И все это не зависит ни от меня, ни от Вас. :)
Ответить