Не работает AN8-AN12 на pic18f4550 - помогите
|
|
Monolith |
Дата: Чт, 07.11.2013, 03:23 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
30
Замечания:
±
На сайте с 04.08.2013
Статус:
Offline
|
Вообщем сделал HID easy USB используя видео http://www.picbasic.ru/publ....-1-0-41 Все заработало сразу. Затем захотелось расширить так сказать возможности устройства: - разобрался с преобразованиями полученных данных по USB от контроллера - своего рода сделал выборку согласно кода по каждому отдельному каналу - пока что корректно работают только AN0-AN7
Теперь сама проблема при подключении AN8 и работы с ней - Proteus судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15 - there is no such channel on the PIC18F4550 device@. При этом данные касательно AN8 отправляет верно и программа на компьютере показывает значение. При подключении всех портов AN8-AN12, замечено что что AN7 и AN8 начинают врать так скажем ....
Добавлено (07.11.2013, 03:23) --------------------------------------------- Вообщем сам себе и отвечаю: Покурив даташит увидел одну деталь а именно CONFIG3H .... а его нет в языке протона ... но покурив еще протоновский даташит нахожу то что мне нужно а именно функция PBADEN = On/Off. Она влияет на работу портов PORTB0-PORTB4 и настройки соответственно ADCON0 и ADCON1... и еще так на всяк случай перенесите блок ССР в ССРмх.
|
|
|
|
anatol |
Дата: Чт, 07.11.2013, 12:57 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
CONFIG3H и не должен быть в Протоне. Это просто третья область настроек контроллера. В простых контроллерах она всего одна. Замечательно что вы "покурив еще протоновский даташит" и вдобавок даташит контроллера нашли этот предохранитель. На будушее есть плагин к протону http://click-server.com/forumfiles/FuseConfiguratorVer2Install.zip установите - облегчит мучения, да и вообще познавательно.
Сообщение отредактировал
anatol - Чт, 07.11.2013, 12:59
|
|
|
|
Monolith |
Дата: Чт, 07.11.2013, 14:09 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
30
Замечания:
±
На сайте с 04.08.2013
Статус:
Offline
|
За плагин спасибо большое - будем разбираться ... Схема заработала но Proteus продолжает судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15 - there is no such channel on the PIC18F4550 device@. Отключив в коде вызов AN8-AN12 все четко ... думаю что издержки симуляции - буду заказывать живой камень и паять макетку.
|
|
|
|
mikhail09p |
Дата: Чт, 07.11.2013, 22:43 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
anatol, а как скачать этот чудесный плагин? Нельзя ли выложить на какой-то адекватный файлообменник. Н яндекс, к примеру. Буду очень признателен.
|
|
|
|
brown |
Дата: Чт, 07.11.2013, 23:54 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
В архиве лежит какая -то версия http://www.picbasic.ru/load/novyj_fuse_configurator/3-1-0-185
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
|
|
|
|
anatol |
Дата: Пт, 08.11.2013, 01:47 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
mikhail09p, а когда требуется ввести логин и пароль, в окне запроса они приведены. Но на всякий случай «UserName:protonuser Password:forumfiles» По ссылке FuseConfiguratorVer2Install от 06.06.13
Сообщение отредактировал
anatol - Пт, 08.11.2013, 01:49
|
|
|
|
mikhail09p |
Дата: Пт, 08.11.2013, 20:57 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
481
Замечания:
±
На сайте с 04.05.2010
Статус:
Offline
|
Цитата anatol ( ) mikhail09p, а когда требуется ввести логин и пароль, в окне запроса они приведены. Точно! Спасибо!
|
|
|
|
Monolith |
Дата: Вс, 10.11.2013, 19:05 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
30
Замечания:
±
На сайте с 04.08.2013
Статус:
Offline
|
И снова тупик ... не могу моргнуть диодом используя интерфейс - вообще не представляю как это сделать: а именно - что должно быть в delphi - что должно быть protone ide
|
|
|
|
DAlexV |
Дата: Пн, 11.11.2013, 23:59 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
b]Monolith[/b], приветствую, попробую помочь. Цитата Proteus судорожно выкидывает ошибку @[PIC18 ADC] PC=0x007e Write to ADCON0 register select ADC channel 15 Ну все правильно, откуда в 4550 15 каналов АЦП ? Там их вроде бы от 0 до 12. Нумного подправил код, попробуйте так. Код Device = 18F4550 Xtal = 20 Declare Adin_Res 10 Declare Adin_Tad FRC Declare Adin_Stime 100 '0all_digital = 1 ' descriptor file, located in \inc\usb_18 - a copy ' is located in the same folder as this file USB_Descriptor = "TempDataDESC.inc"
' USB Buffer... Symbol USBBufferSizeMax = 8 Symbol USBBufferSizeTX = 8 Symbol USBBufferSizeRX = 8 Dim USBBuffer[USBBufferSizeMax] As Byte
' some useful flags... Dim PP0 As Byte System ' USBPOLL status return Symbol CARRY_FLAG = STATUS.0 ' high if microcontroller does not have control over the buffer Symbol ATTACHED_STATE = 6 ' is USB attached 'Настройка портов 'ADCON0 = %00100100 ' советую заремить данную строчку. Протон по идее сам должен все настраивать ' 76543210
'ADCON1 = %10000101 ' в таком варианте аналоговые порты будут с 0 по 9 ADCON1 = %00000000 ' в таком варианте аналоговые порты будут с 0 по 12 ' 76543210 'ADCON2 = %10000000 ' так же ремим, так как уже укзывали настройки в начале (Declare Adin_Res 10, Declare Adin_Tad FRC, Declare Adin_Stime 100) ' 76543210
TRISA = %00101111 ' Ну и правильно конфигурируем поты ' 76543210 PORTA = %00000000
'TRISB = %00001000 TRISB = %00001111 ' 76543210 PORTB = %00000000
TRISE = %00000111 ' 76543210 PORTE = %00000000
Так же советую в пошаговом режиме что говорит Прот (регистр ADCON0). Если больше чем %ХХ1100ХХ, то возможно и глюк Протона. Тогда можно поробовать прописать выбор канала руками.
Ввести переменную № канала АЦП (Chsel as byte) и дописать еще одну подпрограмму: Код ADRead: ADCON0=CHsel<<2 ' смещаем на 2 разряда ADCON0.0=1 ' вкл. АЦП ADCON0.1=1 ' вкл. преобразование
EndADCread: if ADCON0.1=1 then goto EndADCread ' ждем результата
TempIn=0 ' очистили TempIn=ADRESH ' записали старший байт TempIn=TempIn<<8 and ADRESL ' записали младший
Return
Вот где то так. Успехов
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
demanik |
Дата: Вт, 12.11.2013, 00:21 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
448
Замечания:
±
На сайте с 11.12.2007
Статус:
Offline
|
Цитата DAlexV ( ) Если больше чем %ХХ1100ХХ, то возможно и глюк Протона. Тогда можно поробовать прописать выбор канала руками Был когда-то такой глюк, я его заметил при работе с 18F2620 спасла тогда только прямая запись в регистр номера нужного канала. Сейчас как ситуация не заю. Наверное глюк не исправили.
Попробуй всё и вся... может быть пол...
|
|
|
|
Monolith |
Дата: Вт, 12.11.2013, 01:07 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
30
Замечания:
±
На сайте с 04.08.2013
Статус:
Offline
|
DAlexV
Скажем так в процессе добавки канала №9 (AN8) я и настраивал 'ADCON1 = %10000101 ' в таком варианте аналоговые порты будут с 0 по 9 'TRISB = %00001000
насчет глюкавости Proteus'а более чем уверен так как на макетке с 4550 в DIP40 корпусе все ожило ( как по мне то все что связано с RB0-RB4 стороной много буков в мануале надо шерстить) и все 12 каналов работаю верно и 1 врет безбожно.
Сейчас уже на финишной прямой готовый софт на ПК и прошивка микроконтроллера с двухсторонним обменом данными в реальном времени (убежал от RB0-RB4, даже просто управлять диодами не могут то моргают то вообще не включаются, при этом перенося просто код на другой порт вуаля все ожило).
Сообщение отредактировал
Monolith - Вт, 12.11.2013, 01:13
|
|
|
|
Monolith |
Дата: Вт, 12.11.2013, 11:33 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
30
Замечания:
±
На сайте с 04.08.2013
Статус:
Offline
|
Проект рабочий, пока только в симуляции и на макетке, умеет: - считывать данные с 1-го до 8-ой каналы независимо - управлять нагрузкой с 1-го до 8-ой каналы независимо - определять включена/выключена программа на ПК и идет двухсторонний обменн, если контроллер подключен к порту USB - определять подключение/отключение контроллера к порту USB и его готовность в программе на ПК - ведение лог журнала, каждые 10 с формируется запись в файл с текущей датой в формате HH:MM:SS CH1 CH2 CH3 CH3 CH4 CH5 CH6 CH7 CH8 (в будущем если руки дойдут рисовать графики будет).
Кому надо разбирайтесь, если что пишите предложения и вопросы. Нужна информация по практике настройки портов RB0-RB7, мануалы вещь хорошая - практика лучше. Ушел рисовать, травить и паять плату.
|
|
|
|
MiXaS |
Дата: Вт, 12.11.2013, 15:53 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Как раз актуально! Пишу софт для часов домашних, которые имеют модули разные, температура, влаж, давление и т.д. В качестве индикатора матрицы. Использую PIC18f2550, у которого есть на борту USB. Так вот думаю чтобы кнопки не делать (лень) сделать настройку часов по usb? что-то вроде синхронизация времени с компом. + выводить все измеренное (только непонятно зачем). Осталось вспомнить как писать софт на VB6. Последний раз писал на нем в 2003 году. Нифига уже не помню, да и наработок уже не осталось.
Либо на делфи писать. На работе есть знакомый вроде что-то пишет на делфи, но с usb не работал говорит.
Спасибо! думаю поможет
|
|
|
|
xaker-sss |
Дата: Вт, 12.11.2013, 16:07 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
208
Замечания:
±
На сайте с 26.04.2009
Статус:
Offline
|
Цитата MiXaS ( ) температура, влаж, давление и т.д. А какой датчик давления используете, давно хочу барометр собрать, но с датчиком не определюсь.
ПРОТОН ЭТО ВЕЩЬ.
|
|
|
|
MiXaS |
Дата: Вт, 12.11.2013, 17:38 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
549
Замечания:
±
На сайте с 02.10.2010
Статус:
Offline
|
Я заказал BMP085 от Bosch-a, но я пока не знаю на сколько он точен и удобен. В сети его коллеги хвалят. вот и я решил попробовать, стоимость у него подходящая.
|
|
|
|