Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 26.07.2017, 17:15  
Vladislav
Прохожий
 
Регистрация: 18.07.2017
Сообщений: 2
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vladislav на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от Prototup Посмотреть сообщение
Так трудно что-либо сказать. Симульни в Протеусе пошагово с просмотром содержания соответствующих (буферов) регистров на приём и передачу.
Нашел, все проще, плохая пайка на линии входа данных, код рабочий.
Реклама:
Vladislav вне форума  
Непрочитано 29.07.2017, 01:19  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Прошёл третий день, а я не могу разгадать загадку:Пытаюсь подружить два процессора 18F46K22 (Master) и 16F1823(Slave), интерфейс SPI, конфигурации настроек:
setup_spi(SPI_MASTER | SPI_CLK_DIV_64 | SPI_L_TO_H | SPI_XMIT_L_TO_H);
setup_spi (SPI_SLAVE | SPI_H_TO_L | SPI_XMIT_L_TO_H);
Мастер передаёт и... странный эффект - эхом принимает от slave (почему-то?) свои-же переданные данные , бедный slave великолепно читает, но похоже лишён права голоса вообще...
Обращения к функциям стандартные: spi_write(); и spi_read(); соответственно. Кто сталкивался с похожей проблемой? Как мне заставить Slave передать что-то своё хозяину?

Видимо не происходит загрузки данных, готовых к передаче, в регистр SSPBUF в Slave.
Если прибегнуть к "насилию" и занести в этот буфер данные: в препрцессоре #byte SSPBUF = 0x211, а
в программе: SSPBUF=digit; , то Мастеру деваться конечно некуда и он слышит своего раба и выдаёт переданную ему digit .
Чё за хрень?

Последний раз редактировалось Prototup; 29.07.2017 в 01:41.
Prototup вне форума  
Непрочитано 29.07.2017, 22:42  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

SPI - интерфейс, в котором источником тактового сигнала является ведущее устройство, поэтому перед подачей тактовой частоты от мастера в регистре данных ведомого уже должны находится данные для отправки мастеру. Как это обеспечить - Ваша забота. Как вариант:
-мастер передает команду чтения ведомому
-ведомый записывает требуемые данные через spi_write()
-мастер через spi_read() читает данные из ведомого
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 30.07.2017, 15:16  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

MisterDi Куда только не присовывал spi_write(), нихрена! Помогает только прямая запись в регистр SSPBUF у слейва. Мож чего не понимаю?
Рабочая частота разных процессоров разная, но в конфигах MSSP, она подобрана таким образом, что обмен данными идёт без сбоев и ошибок.
Запись не производится именно с шины данных.https://kazus.ru/forums/attachment.p...1&d=1501413281
Миниатюры:
Нажмите на изображение для увеличения
Название: MSSP.jpg
Просмотров: 0
Размер:	214.5 Кб
ID:	116979  
Prototup вне форума  
Непрочитано 30.07.2017, 20:44  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Заремил всю основную программу слейва, оставил только функцию передачи мастеру, т.е. "насмерть" прописал передаваемые мастеру данные в SSPBUF. В отладчике SPI, в передаваемых данных так ничего и не изменилось!

void main()
{
int8 Stop = 9;
setup_spi (SPI_SLAVE | SPI_L_TO_H | SPI_XMIT_L_TO_H);

while(TRUE)
{
spi_write(Stop);
}}
девятка так и никак не передаётся!
https://kazus.ru/forums/attachment.p...1&d=1501433085
Ну просто
Миниатюры:
Нажмите на изображение для увеличения
Название: SSBUF.PNG
Просмотров: 0
Размер:	50.5 Кб
ID:	116994  

Последний раз редактировалось Prototup; 30.07.2017 в 20:48.
Prototup вне форума  
Непрочитано 30.07.2017, 22:18  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Мля! Всё благополучно разрешилось! Всё передаётся туды и обратно! Всё дело было в таймингах. Надо было давать покурить мастеру!
Короче вот так работает без замечаний:
spi_write(Numbe_Pulse_hibyte); //передача старшего байта Numbe_Pulse
spi_write(Numbe_Pulse_lobyte); //передача младшего байта Numbe_Pulse
spi_write(Duty_hibyte); //передача старшего байта Duty
spi_write(Duty_lobyte); //передача старшего байта Duty
spi_write(Cycle_hibyte); //передача старшего байта Cycle
spi_write(Cycle_lobyte); //передача старшего байта Cycle
spi_write(0); //передача холостого байта до заполнения буфера
spi_write(0); //передача холостого байта до заполнения буфера

output_low(SPI_SS);
delay_cycles(16);//Покурить обязательно, не менее 15 циклов!!! 14 ещё дают сбой!

output_high(SPI_SS);//

Stop_PWM = spi_read();
output_low(SPI_SS);//начало передачи мастера выбранному кристаллу

Последний раз редактировалось Prototup; 30.07.2017 в 22:22.
Prototup вне форума  
Непрочитано 30.07.2017, 22:24  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Цитата:
Надо было давать покурить мастеру!
настоящий мастер без перекуров не работает
Если быть точным, то пауза после передачи мастером нужна ведомому, чтобы отработать полученную команду и успеть подготовить данные к передаче. ИМХО так.
__________________
misterdi<@>i.ua

Последний раз редактировалось MisterDi; 30.07.2017 в 22:28.
MisterDi вне форума  
Непрочитано 30.07.2017, 22:49  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от MisterDi Посмотреть сообщение
настоящий мастер без перекуров не работает
Хорошо сказано! Да, я не настоящий мастер, что этого я не знал, да и курить бросил уже лет 6 назад, но час назад уже был близок к этому!
Чё раньше-то нихто не сказал и не направил идущего к свету?

Последний раз редактировалось Prototup; 30.07.2017 в 22:51.
Prototup вне форума  
Непрочитано 04.08.2017, 14:52  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Небольшая проблемка с неясной причиной по перетягиванию одеяла:
Пытаюсь уравновесить по скорости приёма-передачи 2 процессора. Работоспособность по SPI интерфейсу возможна лишь в случае когда:
Мастер:
setup_spi(SPI_MASTER | SPI_CLK_DIV_64 | SPI_L_TO_H | SPI_XMIT_L_TO_H); - имеет кварц (OSC) 1MHz.
Слейв:
setup_spi (SPI_SLAVE | SPI_H_TO_L | SPI_XMIT_L_TO_H); - имеет (OSC) 500kHz.

Согласно даташиту, скорость обмена FCLOCK=FOSC/((SSPxADD + 1)(4)),
тогда: у Мастера 1000000/((64+1)*4)=15384,615
у Слейва 500000/((1+1)*4)=62500,
т.е видно явное преимущество Слейва (с запасом),
Но при увеличении OSС мастера до 4MHz (скорость 61536) - вся идиллия пропадает, наблюдается искажение читаемых данных из SSPxBUF в следствии циклического их сдвига.
Чё за засада? Ведь Мастер(61536)‹Слейв(62500) ?????

Кто-то пиzдит, либо Протеус либо даташит(что вряд-ли).

Никто не встречался с данной проблемой Как их заставить дружно работать?

Последний раз редактировалось Prototup; 04.08.2017 в 15:01.
Prototup вне форума  
Непрочитано 24.08.2017, 20:25  
Prototup
Прописка
 
Аватар для Prototup
 
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
Prototup на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Решил перейти на другой проц, Pic24 и неожиданно обнаружил, что текущая версия компилятора их не обслуживает.
С горя стал переходить на ХС16 с Мплабом, но понял одно - на это нужно время и его нужно много, т.к. русскоязычный материал к изучению очень скуп и не систематизирован, да и философия IDE совсем другая.
Промучившись несколько дней с Хс8 бросил это занятие.
А где-то лежит полновесный, долгожданный PIC C Compiler (CCS PCWHD) 5.074
Prototup вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
PIC BASIC PRO Compiler 2.47 dosikus Proteus, KiCAD и другие ECAD 27 05.12.2009 05:48
изучение IAR AVR C compiler granel Микроконтроллеры, АЦП, память и т.д 0 10.10.2008 20:45
PIC C Compiler PCWH458 sergxxx Микроконтроллеры, АЦП, память и т.д 9 23.09.2008 18:25
Не включается дебаггер в CCS C Compiler BigMazzi Микроконтроллеры, АЦП, память и т.д 4 19.09.2008 13:34


Часовой пояс GMT +4, время: 08:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot