Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
PIC18F4620 протеус видит только 256 байт EEPROM
Володимир Дата: Ср, 21.10.2015, 10:11  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Столкнулся с такой проблемой, пишу програму для PIC18F4620, к коде програмы заполняю данные памяти EEPROM, Протон компилирует прошивку без ошибок, програма для записи прошивки в контролер ВинПик видит все даные памяти, а когда запускаю проэкт в протеусе, то он выдает предупреждение что данные EEPROM выходять за границы пам"яти. Если через порт USART читать-писать данные с адресов больше 256, то работа идет с первым банком памяти.

Можно ли как то заставить Протеус работать с полным обьемом памяти EEPROM?
ЯНДЕКС Дата: 21.10.2015
ADMIN Дата: Чт, 22.10.2015, 11:32  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Модель PIC18F4620 в Протеусе, скорей всего, недопилена, я так думаю...
Володимир Дата: Чт, 22.10.2015, 11:44  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Протэус вещает.
Прикрепления: 2928616.jpg (76.7 Kb)
DAlexV Дата: Пт, 23.10.2015, 10:42  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Цитата Володимир ()
Можно ли как то заставить Протеус работать с полным обьемом памяти EEPROM
Странно. Но все читает-пишет. Все внутри архива.
Судя по скриншоту это горчичник за перелет адресного пространства. Возможно используется некорректная команда чтения EEPROM.

Успехов  wink
Прикрепления: EEPROM.zip (46.1 Kb)


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал DAlexV - Пт, 23.10.2015, 10:47
vladh Дата: Пт, 23.10.2015, 11:16  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата DAlexV ()
Странно. Но все читает-пишет.
Я тоже так думаю. Разговор ни о чем или обо всем. Исходного(обсуждаемого) кода нет! Можно изобретать все что вздумается.
Володимир Дата: Пт, 23.10.2015, 11:27  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Цитата DAlexV ()
Странно. Но все читает-пишет. Все внутри архива.Судя по скриншоту это горчичник за перелет адресного пространства. Возможно используется некорректная команда чтения EEPROM.

А вы уверенены что все читает и пишет, у меня тоже все програма читает и пишет, но когда адрес ячейки переходит отметку 255, работа начинается с адресами от нуля, тоесть старший байт переменной типа Word читается как ноль.

Если загрузить прошивку в програму WinPic, то память ЕЕПРОМ отображается коректно.

Пробовал в протеус подключать не Hex-файл, а Bas-файл, тоже ругается на несуществуючий адрес. Тут мне товарищ подсказал, что протеус грузит ЕЕПРОМ не по тем адресам (картинка в 3-ем сообщении), диапазон ЕЕПРОМ 780000-780400, а протеус ругается на адрес F00100.

Добавлено (23.10.2015, 11:27)
---------------------------------------------

Цитата vladh ()
Я тоже так думаю. Разговор ни о чем или обо всем. Исходного(обсуждаемого) кода нет! Можно изобретать все что вздумается.
Пожалуста,  комадной EData заполняется память ЕЕПРОМ, при запуске проэкта, протеус грузит только первые 256 байт, и дальше работает только с ними..

EData 25,37,77,28,10,$0,$6,$0,$6,$0,$6,$0,$6,$41,$0,$0,$2,$0,$2,$5,$64,$0,$64,$0,$4,$10,$32,$2,$0,$0,$0,$0,$0,$0,$0,25,153,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
EData $96, $04, $8D, $04, $83, $04, $7A, $04, $71, $04, $67, $04, $5E, $04, $54, $04, $4B, $04, $42, $04, $38, $04, $2F, $04, $25, $04, $1C, $04, $13, $04, $09, $04
EData $00, $04, $F7, $03, $ED, $03, $E4, $03, $DA, $03, $D1, $03, $C8, $03, $BE, $03, $B5, $03, $AB, $03, $A2, $03, $99, $03, $8F, $03, $86, $03, $7D, $03, $73, $03
EData $AE, $02, $D3, $02, $F9, $02, $1E, $03, $44, $03, $69, $03, $8F, $03, $B4, $03, $DA, $03, $00, $04, $25, $04, $4B, $04, $70, $04, $96, $04, $BB, $04, $E1, $04
EData $91, $91, $91, $7C, $72, $6A, $64, $5F, $5A, $56, $52, $4F, $4B, $48, $44, $41, $3E, $3C, $39, $37, $34, $31, $2E, $2B, $29, $26, $23, $20, $1C, $16, $0C, $00
EData $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
EData $C3, $A0, $87, $78, $6B, $61, $58, $52, $4D, $4D, $4D, $4D, $4D, $4D, $4D, $4D
EData $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00, $32, $00
EData $91, $91, $91, $7C, $72, $6A, $64, $5F, $5A, $56, $52, $4F, $4B, $48, $44, $41, $3E, $3C, $39, $37, $34, $31, $2E, $2B, $29, $26, $23, $20, $1C, $16, $0C, $00
Прикрепления: 1570529.jpg (171.9 Kb)
ADMIN Дата: Пт, 23.10.2015, 11:49  |                                                                                                                Сообщение # 7
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Если в реальности нет проблем, то в чем проблема? wink
Володимир Дата: Сб, 24.10.2015, 21:03  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Цитата ADMIN ()
Если в реальности нет проблем, то в чем проблема?
Програму то нужно дописать на столе. Пока решил проблему перестановкой местами графиков, в конец перенес данные которые пока не использую.

Добавлено (24.10.2015, 21:03)
---------------------------------------------
Загрузил прошивку в контролер, таки глюк протеуса.

vladh Дата: Вс, 25.10.2015, 08:03  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Володимир ()
таки глюк протеуса.
Да что же Вы все замечательный инструмент обвиняете? Вам же уже говорил DAlexV, о том что с протеусом все хорошо! Вы со своим кодом разбирайтесь  Вот я выкладываю несколько переделанный код DAlexV. Смотрите!

Добавлено (25.10.2015, 08:03)
---------------------------------------------
Цитата Володимир ()
Пожалуста,  комадной EData заполняется память ЕЕПРОМ, при запуске проэкта, протеус грузит только первые 256 байт, и дальше работает только с ними..
Прежде чем говорить о том, что в проекте работает что то не так, надо ПОКАЗАТЬ проект. Я Вам об этом уже писал. Иначе можно говорить много но это будет решение конкретной Вашей(!) проблемы.
Прикрепления: EEPROM.rar (47.9 Kb)

Сообщение отредактировал vladh - Вс, 25.10.2015, 08:04
Володимир Дата: Вс, 25.10.2015, 12:46  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Цитата vladh ()
Прежде чем говорить о том, что в проекте работает что то не так, надо ПОКАЗАТЬ проект. Я Вам об этом уже писал. Иначе можно говорить много но это будет решение конкретной Вашей(!) проблемы.Прикрепления: EEPROM.rar(48Kb)
Я позволил себе сделать некоторые изменения в Вашем коде, как видим програма заполняет первые 256 байт ЕЕПРОМ, загрузите код в протеус, и ответьте на простой вопрос, кто заполнил остальные 768 байт. Правильно никто, так как сарший байт адреса ячейки не учитывается.

Если лень грузить в протеус, то внизу картинка.

Сейчас просто нет возможности сделать скриншоты работы своего проекта, так как ПИК установлен на автомобиль, но на днях постараюсь прикрепить картинки как выглядит один и тот же график загруженый с протеуса и с ПИКа.

Device=18F4620
Xtal 10
Declare Hserial_Baud = 9600
Dim Var1 As Word
Dim Wrd1 As Word
Dim Address As Word
Var1 = $FF
Wrd1= 0
Address = 0 ' Point to address 0 within the eeprom
For Address=0 To 127
EWrite (Address*2), [Address]' Write a  8-bit value
Next Address
For Address=0 To 511
Wrd1 = ERead (Address*2)
HSerOut [Dec (Address*2)," = ",Dec Wrd1, 10,13]
Next Address
loop:
GoTo loop

Прикрепления: 9746967.jpg (36.5 Kb)
vladh Дата: Вс, 25.10.2015, 14:13  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Володимир ()
Если лень грузить в протеус, то внизу картинка.
Если бы было лень то и говорить здесь не было бы смысла.
В приведенном Вами куске кода мне непонятно для чего Вы работаете только с четными адресами. Ну да ладно. Это в общем Ваше дело. Прикладываю скрин Вашего варианта в Протеусе. Вы можете видеть, что по четным адресам у Вас нули, как Вы и просили. И все адреса ЕЕПРОМ присутствуют
Прикрепления: 6727846.jpg (150.5 Kb)

Сообщение отредактировал vladh - Вс, 25.10.2015, 14:14
ЯНДЕКС Дата: 25.10.2015
Володимир Дата: Вс, 25.10.2015, 21:23  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 69
Репутация: 3   ±
Замечания:   ±
На сайте с 22.04.2010

Статус: Offline

Цитата vladh ()
В приведенном Вами куске кода мне непонятно для чего Вы работаете только с четными адресами.
Работал только с четными, потому что хотел заполнить сначала все 1024 байт памяти, а так как  однобайтовая пемеменная может принять значение в диапазоне 0..255, то взял двобайтовую переменную типа Word. Когда  записал в память 512 двобайтовых значений, то получилось что значения в первых адресах искажены.

Цитата vladh ()
Вы можете видеть, что по четным адресам у Вас нули, как Вы и просили. И все адреса ЕЕПРОМ присутствуют
Нули, потому что в память писалось значение переменной типа word. Размер памяти ЕЕПРОМ контролера 1024 байт, на вашей картинке я вижу только 255, даже поле адреса ячейки на вашей картинке однобайтовое, а должно быть два байта.
vladh Дата: Пн, 26.10.2015, 04:49  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Володимир, прошу меня извинить. Сегодня более внимательно посмотрел на то, что отображает Протеус и увидел, да, он действительно работает только с 256 байтами этого МК. Если вместо 18F4620 установить другой, аналогичный(18F46K20 или 18F4680) то все отображается правильно.
anatol Дата: Чт, 29.10.2015, 10:17  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Написал в поддержку
Цитата
Пользователи http://www.picbasic.ru/ обнаружили что в модели PIC18F4620 адресуется только 256 байт памяти из
1024. Аналогично из этого семейства и в PIC18F2620, но в PIC18F2525 и
PIC18F4525 все нормально. И в 7 и 8 версиях.

ответ
Цитата
Спасибо за сообщение об ошибке. Я посмотрю, не исправлено ли это в текущей версии, и отдам на исправление разработчику, если нет.


vladh Дата: Пт, 30.10.2015, 04:13  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата anatol ()
Написал в поддержку
А Вы, Anatol, лицензионный пользователь Протеуса?

Сообщение отредактировал vladh - Пт, 30.10.2015, 04:27
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: