1 :
B電池 :
2012/08/21(火) 17:18:02.17 ID:Ew7c3Wcy
マイクロコントローラ歴史
ttp://www.cqpub.co.jp/hanbai/books/37/37291/37291-intro.pdf 最初のPIC, PIC1650 GeneralInstrument社('89に1事業部門が独立して現在のMicrochip社へ)
ttp://www.rhoent.com/pic16xx.pdf (命令セットはBaseline Architecture 命令長12bit品とほぼ同じ)
マークの意味
◎お勧め、用途決まっていないならこれ買っとけ
○内蔵モジュール減ってるけど、その分値段も安くなってるから、まあまあ
△内蔵モジュール大幅に減ってる、\10でも安くしたいなら、どうぞ
×ソースを変更できない等の理由がないなら、選択する必要なし
自分で、プラグラムもハードも作れる人のためのリスト。
そもそも、教科書に載ってるのとか他の方の作品とかを作るだけなら
指名買いするしかないのだから お勧め度は意味がない
以下秋月DIP品
;-------------------------------------------------------------------------------
【PIC32】32bitMIPSアーキテクチャ 最適化されたアーキテクチャで1.65DMIPS/MHzを叩きだす高性能
ただ完全なRISCで単純命令しか持たない為16bit以下の演算では命令効率,速度とも
同MIPS値のPIC24/dsPICに劣る。32bitマイコンのDIP版は貴重,MIPS値はクロックと同じ('12/08版)
28ピン
-◎PIC32MX220F032B \220 FLASH32+3KB RAM8KB ●USB
-○PIC32MX210F016B \200 FLASH16+3KB RAM4KB ●USB
-○PIC32MX120F032B \200 FLASH32+3KB RAM8KB
-△PIC32MX110F016B \190 FLASH16+3KB RAM4KB
共通
Vdd2.3-3.6V,Max40MIPS(40MHz),UARTx2,I2Cx2,(SPI/I2S)x2,RTCC,10bitADC,DMA,I/Oリマップ
;-------------------------------------------------------------------------------
【PIC24/dsPIC】16bitマイコン 16/18F等の8bitマイコンとは全く別物な洗練されたアーキテクチャ
同MIPS値のPIC18F以前と比べて数倍高性能。高めの価格とPIC32の安価での登場で厳しい
70MIPS版PIC24E/dsPIC33Eも存在するが秋月未。MIPS値とクロック関係は下記参照('12/08版)
40ピン
-○dsPIC30F4013 \480 16Kw/2KB/1KB ADC12bit TMR5 UART2 SPI1 I2C1 PWM2 CAN
-×dsPIC30F3014 \500 8Kw/2KB/1KB ADC12bit TMR3 UART2 SPI1 I2C1 PWM2
28ピン
-◎24FJ64GA002 \330 21Kw/8KB/--- ADC10bit TMR5 UART2 SPI2 I2C2 PWM5
-◎24HJ12GP202 \260 4Kw/1KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
-○dsPIC30F4012 \460 16Kw/2KB/1KB ADC10bit TMR5 UART1 SPI1 I2C1 PWM3x2 CAN
-×dsPIC30F2020 \500 4Kw/512B/-- ADC10bit TMR3 UART1 SPI1 I2C1 PWM4x2
-△dsPIC30F2012 \350 4Kw/1KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
-◎33FJ32GP202 \320 11Kw/2KB/--- ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
18ピン
-○dsPIC30F3012 \400 8kw/2KB/1KB ADC12bit TMR3 UART1 SPI1 I2C1 PWM2
共通
24Fシリーズ Vdd2.0-3.6V Max16MIPS(32MHz) (一部ピン5V入力可),I/Oリマップ
24Hシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) (一部ピン5V入力可),I/Oリマップ
30Fシリーズ Vdd2.5-5.5V Max30MIPS(120MHz) DSP命令有,(5V動作可)
33Fシリーズ Vdd3.0-3.6V Max40MIPS(80MHz) DSP命令有,(一部ピン5V入力可),I/Oリマップ
【PIC18】8bitマイコン。5V動作可(J除)で比較的高速(10〜MIPS) 新型のKシリーズは多機能で 高速(16MIPS),USB機能付きもラインナップ,命令系は16F(Mid-Range)から+αレベル MIPS値はクロックの1/4('12/08版) 40ピン 新ラインナップ45K20(注3.6V)か旧だけどUSB&12bitADの4553。不要なら4525もありかな -◎18F45K20 \180 16Kw/1536/256 Max64MHz(31k-64MHz),4xPLL,CCP1/1,▲3.6V -◎18F4553 \430 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP1/1 -○18F4550 \370 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,CCP1/1,SPP -△18F4520 \340 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP1/1 -○18F4525 \380 24Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1 -△18F4585 \500 24Kw/3328/1024 Max40MHz(31k-32MHz),4xPLL,CCP1/1,CAN -×18F452 \500 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/1 28ピン 新ラインナップが強力。3.6V可ナラ大容量・多機能27J53,高速ナラ多機能の26K22か12bitADCの25K80 -×18F258 \530 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP1/0,CAN -×18F248 \500 8Kw/768/256 ↑258のメモリ縮小版 -×18F252 \450 16Kw/1536/256 Max40MHz(内蔵CLK無し),4xPLL,CCP2/0 -×18F242 \420 8Kw/768/256 ↑252のメモリ縮小版 -×18F2580 \430 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL.CCP1/0,CAN -×18F2480 \390 8Kw/768/256 ↑2580のメモリ縮小版 -×18F2620 \420 32Kw/3968/1024 Max40MHz(31k-32MHz),4xPLL,CCP2/0 -×18F2420 \280 8Kw/768/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0 -×18F2320 \420 4Kw/512/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0 -△18F2553 \420 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,12bitADC,CCP2/0 -×18F2550 \350 16Kw/2048/256 ●USB,Max48MHz(31k-8MHz),PLL,CCP2/0 -×18F2455 \340 12Kw/2048/256 ●USB,↑2550のメモリ縮小版 -×18F2450 \260 8Kw/768/0 ●USB,Max48MHz(31kHz),PLL,CCP1/0,MSSP無,TMR0/2 -×18F2523 \390 16Kw/1536/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0,12bitADC -○18F2431 \340 8Kw/768/256 Max40MHz(31k-8MHz),4xPLL,CCP2/0.14bitPWMx6 -×18F2321 \240 4Kw/512/256 Max40MHz(31k-32MHz),4xPLL,CCP2/0 -×18F2221 \220 2Kw/512/256 ↑2321のメモリ縮小版 -◎18F26K22 \220 32Kw/3896/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2.TMR3/4,MSSP2,CCP2/3,SRLatch -○18F25K22 \170 16Kw/1536/256 ↑26K22のメモリ縮小版 -△18F23K22 \160 4Kw/512/256 ↑25K22のさらにメモリ縮小版 -◎18F25K80 \220 16Kw/3648/1024 Max64MHz(31k-64MHz),4xPLL,eUSART2,TMR2/3,CCP4/1,12bitADC.ECAN -○18F26K20 \190 32Kw/3936/1024 Max64MHz(31k-64MHz),4xPLL,CCP1/1 -○18F23K20 \150 4Kw/512/256 ↑26K20のメモリ縮小版 -◎18F27J53 \300 64Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR4/4,MSSP2,CCP7/3,12bitADC,リマップ,▲3.6V -○18F26J50 \260 32Kw/3776/0 ●USB,Max48MHz(31k-48MHz),PLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.6V -○18F25J50 \230 16Kw/3776/0 ●USB.↑25J50のメモリ縮小版,▲3.6V -△18F26J11 \240 32Kw/3776/0 Max48MHz(31k-32MHz),4xPLL,eUSART2,TMR2/3,MSSP2,CCP0/2,リマップ,▲3.6V -△18F25J11 \210 16Kw/3776/0 ↑26J11のメモリ縮小版,▲3.6V 20ピン USBの有無でK50かK22を -◎18F14K50 \170 8Kw/768/256 ●USB,Max48MHz(31k〜32MHz),4xPLL,CCP0/1 -×18F13K50 \170 4Kw/512/256 ●USB,↑14K50のメモリ縮小版 -◎18F14K22 \160 8Kw/512/256 Max64MHz(31k-64MHz),4xPLL,CCP0/1,SRLatch -△18F13K22 \150 4Kw/256/256 ↑14K22のメモリ縮小版 18ピン 20ピンから選択すべき、14bitPWMx6に魅力あれば1230を -×18F1320 \220 4Kw/256/256 Max40MHz(31k〜8MHz),4xPLL,CCP0/1,MSSP無 -×18F1220 \210 2Kw/256/256 ↑1320のメモリ縮小版 -△18F1230 \220 2Kw/256/128 Max40MHz(31k-32MHz),4xPLL,TMR0/2,MSSP無,CCP無,14bitPWMx6 PIC18F共通 VDD 〜5.5V,10bitADC,eUSART,TMR8bitx1/16bitx3,MSSP 追加表記 CCPx/y x=CCP数/y=eCCP , TMRx/y x=8bit/y=16bit
【Enhanced Mid-Range】8bitマイコン 新シリーズのPIC12F/16F1xxx,旧シリーズ(Mid-Range)より 機能が大幅UPしていて値段も安い、新規に組むならこちらから 秋月に入荷未品も参考のため表記(未),MIPS値はクロックの1/4,エラッタ注意('12/06版) [40pin] 16Kwハ必要ナイカモシレナイケド10円差ナラ -◎16F1939 \170 16Kw 1024 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 -○16F1937 \160 08Kw 0512 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 -未16F1934 ---- 04Kw 0256 I/O36 ADC14 CapS16 Comp2 Timer4/1 MSSP1 ECCP2/1 CCP2 LCD24 [28pin] こちらも10円差なら -◎16F1938 \150 16Kw 1024 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 -○16F1936 \140 08Kw 0512 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 -×16F1933 \140 04Kw 0256 I/O25 ADC11 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/2 CCP2 LCD16 [20pin] こちらは秋月に無し -未16F1829 ---- 08Kw 1024 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 -未16F1828 ---- 04Kw 0256 I/O18 ADC12 CapS12 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 [18pin] 18ピンの割にMSSPが2コ,ADC入力ピン多,タイマーx5,CCPx4と多機能 -未16F1847 ---- 08Kw 1024 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 -◎16F1827 \110 04Kw 0384 I/O16 ADC12 CapS12 Comp2 Timer4/1 MSSP2 ECCP1/1 CCP2 -未16F1826 ---- 02Kw 0256 I/O16 ADC12 CapS12 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP- [14pin] 下位のチップしかなく機能的に8ピンとあまり変わらないのは残念 -未16F1825 ---- 08Kw 1024 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 -未16F1824 ---- 04Kw 0256 I/O12 ADC-8 CapS-8 Comp2 Timer4/1 MSSP1 ECCP1/1 CCP2 -◎16F1823 \090 02Kw 0128 I/O12 ADC-8 CapS-8 Comp2 Timer2/1 MSSP1 ECCP1/0 CCP- [8pin] 8ピンでUSARTもI2Cも使えるってのは大きいね -未12F1840 ---- 04Kw 0256 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP- -◎12F1822 \080 02Kw 0128 I/O-6 ADC-4 CapS-4 Comp1 Timer2/1 MSSP1 ECCP0/1 CCP- 表記 Timer[8bit]/[16bit],ECCP[Full]/[Half],CapS=CapSense,Comp=Comparator 共通 EEPROM256byte,EUSART,SRLatch(555相当?),10bitADC,5bitDAC,1.024V基準電圧,温度計 VDD1.8〜5,5V,Max32MHz(Vdd2.5V以上),4xPLL有,内蔵OSCでも32MHz可(8MIPS) プログラム面で新命令追加,bankは32マデ拡張,スタック16レベル,LATが追加,割込時のレジスタ自動保存 16bit幅で2本になったFSRデ別アドレスに連続配置RAM(0x2000〜)やプログラム領域(0x8000〜)アクセス可能 追加命令群 ADDWFC,SUBWFB : キャリー,ボローを含んだ加減算 ASRF,LSLF,LSRF : シフト命令 BRA : PCLATHやページ境界に関係なく相対ジャンプ [9bit幅] PC+255〜PC-256へ BRW : PCLATHやページ境界に関係なく前方へのみ相対ジャンプ PC+W(0〜255) ADDWF PCL,f ヨリ便利 CALLW : 上位はPCLATH,下位はWのアドレスにサブルーチンコール MOVLB,MOVLP :バンクセレクト,PCLATHに直接定数入れる TRIS,OPTION :TRIS(A〜C),OPTION_REGにWの値入れる(12bit幅品互換?) RESET : ソフトウェアリセト ADDFSR : FSRに定数(-32〜+31)加減算 MOVIW,MOVWI : INDFガツカイヤスク FSRに対して[PRE/POST][+1/-1]や定数(-32〜+31)offset可能
【Mid-Range】8bitマイコン PIC16F84から連なる旧シリーズ,性能&コスト的に新シリーズへの移行推奨 評価は旧シリーズ内の相対比較 新シリーズが使えない場合のみ有効,MIPS値はクロックの1/4('12/08版) 40ピンは決まり -◎16F887 \180 40ピン600mil幅が許せるなら 旧シリーズ最強 28ピンはフラッシュとSRAMの差をどうとるか -◎16F886 \170 887よりピン数減ってスリム(400mil幅) -○16F883 \150 886との違い8Kw→4Kw,SRAM368Byte→256Byte ADC有,eCCP/CCP有,mSSP有,USART有,8Kw,内蔵31k-8MHとフルサポート 新しめのチップで内蔵モジュールも多,大きささえ許せば20,18ピンよりこちらを 20ピンはF690のバリエーション多,価格差小なのでF690か,OPアンプF785,ポート割りがチョットカオス -◎16F690 \140 ADC有,eCCP有,eUSART有,SSP有,4Kw,内蔵31k-8MHzとバッチリ -○16F689 \130 F690からeCCP機能削られた -△16F687 \120 さらにF689を2Kwと半分に -×16F677 \120 さらにF687からeUSARTも削られた -×16F685 \150 F690からSSP&eUSART機能が削られたのに値段高いとは -◎16F785 \130 ADC有,CCP有,2Kw,内蔵31k-8MHz,OPアンプ搭載が異色(新シリーズにも無) 18ピンは種類は多いけど選択の幅は狭い。値段でF716いっそ20pinにするか -×16F84A \250 機能無,1Kw,新規では不要だけど作例参照用or互換用に -×16F648A \160 CCP有,USART有,4Kw,内蔵4MHz,ADC無同士でF87に軍配 -△16F628A \140 F648Aの2Kw版,売りが値段だけだと厳しいかな -△16F627A \120 F648Aの1Kw版,上に同じ -×16F627 \180 F627Aの改良前Ver,なぜこんな物が・・・ -○16F88 \200 ADC有,CCP有,SSP有,USART有,4Kw,内蔵31k-8MHzと旧18ピンの王者ダガ高い -○16F87 \150 F88のADC無Ver,ADC無が問題なければ -○16F819 \170 ADC有,CCP有,SSP有,2Kw,内蔵31k-8MHz,F88とはROM,USARTの差 -○16F818 \150 F819の1Kw版,多機能なだけに1Kwに不安を感じる -◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意 14ピンは10円差ならF688 -◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31k-8MHz,CCP無が残念 -△16F676 \100 ADC有,1Kw,内蔵4MHz -×16F630 \100 F676のADC無し 無機能で影薄い 8ピンは多機能のF683かEEPROM無くても良いならF615,本来はデバッグ用ダガF322も -◎12F683 \100 ADC有,CCP有,2Kw,内蔵31k-8MHz,8ピンとしては多機能 -△12F675 \80/90 ADC有,1Kw,内蔵4MHz ,EEPROM必要なら,環境によってはE/P版 -△12F629 \70 675のADC無(機能無しってこと),EEPROM必要で安いの求めるなら -△12F635 \90/100 機能無し,1Kw,内蔵31k-8MHz,31kHz〜必要なら,環境によってはE/P版 -◎12F615 \60 ADC有,eCCP有,1kw,内蔵4Mor8MHz,EEPROM無さえ問題なければ -×12F609 \60 F615からADC,eCCP機能省かれてる -◎10F322 \45 8bitADC,PWM,0.5Kw,内蔵31k-16MHz,I/O4コダガFVR,温度計,CLC,NCO,CWG ;---------------------------------------------------------------------------------- 【Baseline】8bitマイコン 初代PIC1650(1978年)からホボそのまま,あまりに古い設計の為 制限多 新シリーズへの移行推奨 -△16F57 \70 28ピン,2Kw,内蔵CLK無,安くて多くのI/O欲しいなら -△16F54 \60 18ピン,0.5Kw,内蔵CLK無,安いI/O欲しいなら -×12F510 \60 8ピン,ADC有(8bit),1kw,内蔵4Mor8MHz -△12F509 \50 8ピン,機能無し,1Kw,内蔵4M -△10F222 \45 DIP8ピン,1/2Kw,内蔵4Mor8MHz,米粒PICのデバッグ用 -△10F200 \35 DIP8ピン,1/4Kw,内蔵4MHz,米粒PICのデバッグ用 共通 機能無,EEPROM無,命令セット12bit幅 プログラム組む上で制限多し(割込無イヨ
秋月じゃ売ってないけど面白しろそうなDIP品群 MicrochipDirect単価 32bitメモリ多→ PIC32MX250F128B (DIP28,40MIPS,USB,128KB-FLASH,32KB-RAM) $4.09 驚70MIPS! → dsPIC33EP128GP502 (DIP28,70MIPS,128KB-FLASH,16KB-RAM) $4.14 5V入出力! → PIC24FV32KA301 (DIP20,16MIPS,32KB-FLASH,2KB-RAM,512B-EEPROM) $3.09 18p40MIPS → dsPIC33FJ12GP201 (DIP18,40MIPS,12KB-FLASH,1KB-RAM) $2.97 14p 16bit → PIC24F08KL200 (DIP14,16MIPS,8KB-FLASH,512B-RAM) $1.80 アナログ色々 → PIC16F1783 (DIP28,8MIPS,2kW-FLASH,512B-RAM,256B-EEPROM,OpAmp,12bitADC,8bitDAC) $2.02 テンプレはここまでだよ。
8 :
AAA :2012/08/22(水) 14:24:11.54 ID:0RcUhWkF
わからん!!!!!!!!!!!! PIC16F688とMCP4822をつかってD/Aをしたいのだが電圧がでない。。 PICにSPIがないので汎用IOで通信。接続は RA0<->SCK RA1<->SDI RA2<->CS 俺のスペック PIC:初めて触る C言語:文法は知ってる。 電子回路:よく知らん。 今回、「キホンからはじめるPICマイコン」で勉強してる。 その他最低限必要な知識は頭に入れてるところ。 DAのところのソースは、、
9 :
AAA :2012/08/22(水) 14:25:28.69 ID:0RcUhWkF
// DA(VoutA)出力 void OutputDaA() { unsigned long cycle = 1; unsigned char buf_da1_msb = da1_msb; unsigned char buf_da1_lsb = da1_lsb; PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); /* 通信開始 */ PORTAbits.RA2 = 0; // CS端子 -> Low __delay_ms(DELAY0); /* 設定bit出力 */ PORTAbits.RA1 = 0; // SDI端子 -> チャンネル選択(L:ch=A, H:ch=B) __delay_ms(DELAY0); PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); PORTAbits.RA1 = 0; // SDI端子 -> dumy(Low) __delay_ms(DELAY0); PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); PORTAbits.RA1 = 1; // SDI端子 -> ゲイン選択(L:G=2, H:G=1) __delay_ms(DELAY0); PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); PORTAbits.RA1 = 0; // SDI端子 -> シャットダウン設定(L:シャットダウン, H:出力イネイブル) __delay_ms(DELAY0); PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0);
10 :
AAA :2012/08/22(水) 14:26:29.06 ID:0RcUhWkF
/* DACインプットコード転送 */ // 送信データをMSBから順次1ビットずつ出力する int i = 0; for(i = 0; i < 4; i++) { if((buf_da1_msb & 0b00001000) == 0) { PORTAbits.RA1 = 0; // SDI端子 -> Low __delay_ms(DELAY0); } else { PORTAbits.RA1 = 1; // SDI端子 -> High __delay_ms(DELAY0); } PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); buf_da1_msb = buf_da1_msb << 1; // 1bit左へシフト } for(i = 0; i < 8; i++) { if((buf_da1_lsb & 0b10000000) == 0) { PORTAbits.RA1 = 0; // SDI端子 -> Low __delay_ms(DELAY0); } else { PORTAbits.RA1 = 1; // SDI端子 -> High __delay_ms(DELAY0); } PORTAbits.RA0 = 1; // SCK端子 -> High __delay_ms(DELAY0); PORTAbits.RA0 = 0; // SCK端子 -> Low __delay_ms(DELAY0); buf_da1_lsb = buf_da1_lsb<<1; // 1bit左へシフト } PORTAbits.RA2 = 1; // CS端子 -> High __delay_ms(DELAY0); }
11 :
AAA :2012/08/22(水) 14:28:26.15 ID:0RcUhWkF
インデントがなくなって見にくくなったな。。 ポートの設定は // Register: CMCON0 CMCON0bits.CM = 7; // (RA0,RA1,RC0,RC1) -> IO // Register: ANSEL ANSEL = 0; // (RA0,RA1,RA2,RA4,RC0,RC1,RC2,RC3) -> IO // Register: TRISA TRISAbits.TRISA0 = 0; // RA0:出力->DAC TRISAbits.TRISA1 = 0; // RA1:出力->DAC TRISAbits.TRISA2 = 0; // RA2:出力->DAC TRISAbits.TRISA3 = 1; // MCLR TRISAbits.TRISA4 = 1; // OSC1 TRISAbits.TRISA5 = 1; // OSC2 // Register: TRISC TRISCbits.TRISC0 = 0; // RC0:出力->リレーON/OFF TRISCbits.TRISC1 = 0; // RC1:出力->トランジスタON/OFF TRISCbits.TRISC2 = 1; // RC2:入力<-SW TRISCbits.TRISC3 = 1; // RC3:入力<-センサー TRISCbits.TRISC4 = 0; // シリアル通信(TX) TRISCbits.TRISC5 = 1; // シリアル通信(RX) だ。
12 :
AAA :2012/08/22(水) 14:31:42.73 ID:0RcUhWkF
PCとシリアル通信してるから PORTAレジスタをLOGって見ると、プログラム通りに 動いてる感じ。。 da1_msbとda1_lsbはPCから送られてくる。。
> 電子回路:よく知らん。 ダメジャン
14 :
AAA :2012/08/22(水) 14:58:08.01 ID:0RcUhWkF
> ダメジャン だけど、コンデンサ、トランジスタ、抵抗、リレーくらいはしってる。 ブレッドボードで、そこそこやった。
>>12 MCP4822のLDACはGNDに接続してる?
16 :
AAA :2012/08/22(水) 15:15:11.67 ID:0RcUhWkF
>>15 接続してる。よーわからんから5Vに接続してみたりもした。
こわれたかなw
17 :
AAA :2012/08/22(水) 15:20:14.07 ID:0RcUhWkF
予備のでやってみたけどやっぱだめだ。。
>>17 シャットダウン設定が逆じゃね?
>PORTAbits.RA1 = 0; // SDI端子 -> シャットダウン設定(L:シャットダウン, H:出力イネイブル)
解決しました
21 :
AAA :2012/08/22(水) 19:18:33.35 ID:0RcUhWkF
完全に詰んだ。。。。。 タイミングチャートの通りに、(SDI,SCK)一つ一つ電圧レベルを 確認しながらやったけどDAが出ない。。
22 :
AAA :2012/08/22(水) 19:19:57.72 ID:0RcUhWkF
あ、スレがのびてた。。。。
>>20 やってみる。
23 :
AAA :2012/08/22(水) 19:30:48.19 ID:0RcUhWkF
>>20 できた!すごい!
シャットダウン設定の意味がよーわからんがw
PICって何?てとこからはじまってたから、ハードル
たかかったわ。サンクス。
俺に言われても困る
AAAは一体何と会話してるんだ。。
MikorCの試用版でPIC32MXの簡単なプログラムを試してるんですが、凄く遅いです 同じコードでdsPIC33で動かすと、それと比較して半分以下になっています ネットで調べると、純正コンパイラはsystemconfigperformance()という関数があり waitstatesやキャッシュ有効などの最適化をして最高速度を出すみたいなんですが もしMikroCでPIC32いじってる方いましたら、どうすれば最高速度を出せるか教えて下さい よろしくお願いします。
人のスレだけど個人的に参考になったので勝手に貼り 843 :774ワット発電中さん:2012/08/13(月) 20:07:21.20 ID:d9vIhKnq だったらいっそBANKなど無い PIC24/dsPICのほうが PIC16Fのアセンブラやる根性あるならPIC24のアセンブラの方がずっと楽、レジスタも増えてるし、SPもある。 演算もベース、ソース、デストネーションを別に指定できる(同じでも可)、こんな命令も1命令で可 ADD W2, [W3++] , [W4++] ; W2の値を、W3が指すメモリ内容と足して、W4が指すメモリへ & W3,W4はそれぞれ+2 PICらしさの W0のみだけど即値で指定したメモリとの直演算も可能 PIC24/dsPICはすごく使いやすい命令セットになってるのに、アセンブラがほとんど使われないのはとても残念。 PIC32は・・・これはコンパイラ必須だなと思った。定数ロード命令はなく、ゼロレジスタとの足し算って・・・なんか違う。 847 :774ワット発電中さん:2012/08/13(月) 22:11:47.43 ID:d9vIhKnq PIC32はぜんぜんちがう。例えば サブルーチン呼び出したらリターンアドレスはレジスタR31(ra)に保管される。 更に呼び出す場合どうするんだろう? と調べたらサブルーチン先頭で 自前でスタックに積む必要がある、さらにPUSHなんて便利な命令は無く spレジスタをマイナスした後,そこにR31(ra)をストア リターンするときもR31を取り出して、sp動かして R31のアドレスにジャンプ 普通ならCALL〜RETですむのに。 もしこれをアセンブラで書かないといけないとかなるとPIC16Fと同じくらいきついかも 849 :774ワット発電中さん:2012/08/13(月) 22:40:28.37 ID:d9vIhKnq まだ命令ながめてる段階だから。多分PIC32でアセンブラ使うことは無いだろうし ただ知識としては入れておきたい。 で一番の疑問は、このアーキテクチャって速いの? 同MIPS値のCISC的なPIC24と比べたら、RISCなPIC32はできることが限られる分 遅くなるわけで、その分を高クロックで補うかといわれるとラインナップもMax80MHz(80MIPS) PIC24E/dsPIC33EのMax70MIPSとあまり変わらない。 超高性能を期待したのだけど32bit以上の演算を行わないとPIC24とたいして変わらないor以下 なのかなと
>>847 もともとMIPSアーキはCコンパイラの吐くコードを速く走らせる目的で
設計されてる。
内部で関数呼び出ししないleafな関数は、r31を積まないので速い。
分岐命令の後ろの遅延スロットとか、load命令直後のレジスタ参照ペナルティ
とかあるんで、そもそもアセンブラで書くもんじゃないと思っている。
30 :
843〜 :2012/08/23(木) 21:58:26.49 ID:TV5TckO4
MIPSであと驚いたのが、フラグが無いこと。 桁上り(キャリー)どうするのとおもったら addu v0 , a0, a2 ; v0=a0+a2 sltu t0 , v0 , a0 ; if v0<a0 then t0=1 else t0=0 1命令と32bitレジスタ1個潰してキャリーフラグ相当作るのかよ・・・ まあ32bitあれば桁上りする数値扱うことも少ないだろうから 合理的なんだろうけどね
キャリー付加減算がないおかげで多倍長演算 が遅いって、うちのばあちゃんが言ってた。
まあトータルで考えて、ソフト的には重荷になるけど(コンパイラでしのげるし)ハードウェハを出来るだけ
簡素かしてトランジスタを減らすのが効率がいいという結論なんだろうな>MIPS
前スレで計算したMIPSあたりの消費電力も32bitで不利なはずなのに 3.3Vで 1.7mW/MIPSと
他の16bitPICより低消費だし(低消費が売りのPIC24F08KL200には負けるけど)
(参考)データシートから消費電力とMIPS辺りの消費電力出してみた、電圧上限側と下限側(あるものだけ)
[PIC10F222] 【4mW ,2mW/MIPS】0.8mA@5V,2MIPS , 【0.5mW ,0.3mW/MIPS】0.25mA@2V,2MIPS
[PIC12F683] 【14mW ,2.8mW/MIPS】2.8mA@5V,5MIPS , 【0.8mW ,0.4mW/MIPS】0.41mA@2V,2MIPS
[PIC16F84A] 【17mW ,3.4mW/MIPS】3.4mA@5V,5MIPS
[PIC16F887] 【14mW ,2.8mW/MIPS】2.8mA@5V,5MIPS , 【0.8mW ,0.4mW/MIPS】0.41mA@2V,2MIPS
[PIC16F690] 【20mW ,4mW/MIPS】4mA@5V,5MIPS , 【0.8mW ,0.4mW/MIPS】0.41mA@2V,2MIPS
[PIC12F1822] 【11.5mW ,1.4mW/MIPS】2.3mA@5V,8MIPS , 【1.4mW ,0.4mW/MIPS】
[email protected] ,4MIPS
[PIC16F1827] 【15mW ,1.9mW/MIPS】3mA@5V,8MIPS , 【3.1mW ,0.8mW/MIPS】
[email protected] ,4MIPS
[PIC18F2550] 【125mW ,10.4mW/MIPS】25mA@5V,12MIPS
[PIC18F14K50] 【65mW ,5.4mW/MIPS】13mA@5V,12MIPS , 【3.6mW ,0.9mW/MIPS】
[email protected] ,4MIPS
[PIC18F26K22] 【39.5mW ,2.5mW/MIPS】7.9mA@5V,16MIPS , 【2.2mW ,0.5mW/MIPS】
[email protected] ,4MIPS
[PIC24FJ64GA002] 【49.5mW ,3.1mW/MIPS】
[email protected] ,16MIPS , 【5.2mW ,1.3mW/MIPS】2.6mA@2V,4MIPS
[PIC24F32KA301] 【65mW ,4.1mW/MIPS】13mA@5V,16MIPS , 【4mW ,1mW/MIPS】2mA@2V,4MIPS
[PIC24F08KL200] 【25.6mW ,1.6mW/MIPS】
[email protected] ,16MIPS , 【2.6mW ,0.6mW/MIPS】
[email protected] ,4MIPS
[dsPIC30F4012] 【620mW ,20.7mW/MIPS】124mA@5V,30MIPS , 【99mW ,5mW/MIPS】
[email protected] ,20MIPS
[dsPIC33FJ32GP202] 【178.2mW ,4.5mW/MIPS】
[email protected] ,40MIPS
[dsPIC33EP64GP502] 【135.3mW ,1.9mW/MIPS】
[email protected] ,70MIPS
[PIC32MX1xx/2xx] 【66mW ,1.7mW/MIPS】
[email protected] ,40MIPS
>>6 > 5V入出力! → PIC24FV32KA301 (DIP20,16MIPS,32KB-FLASH,2KB-RAM,512B-EEPROM) $3.09
5V動作も可、と書くべきでは。
5Vトレラントなピンを持つ3Vデバイスもあるし。
PICkit 2 ProgrammeでRevisionを表示してくれないかな。Device IDを読み取って デバイスを表示してるんだからRevisionも同時に読み取っているはず。
35 :
774ワット発電中さん :2012/08/24(金) 20:44:04.27 ID:TAR70o6D
dsPIC30F4012でEEPROMに書き込みたいのだが何故か書けない。 __asm__ volatile ("TBLWTL W1,[W0]"); ここでPICkit3 が PK3Err0031: Failed to get PC と表示されて止まってしまう。何故?
おまえら、ライター何使ってるんですか?
PICkit3
>>36 自作
適当な古いPCのDOS環境で、シリアルーパラレル変換するだけの、極めて単純なプログラムを作る。
いまさらDOSのプログラムをデバッグしたくないから、とにかくバグが出ないようシンプルに作る。
↓
Windows環境で、↑のためのPICライタのプログラムを書く。
Windowsなのでプログラム書きやすいし、なんといってもデバッグが簡単。
↓
パラレルポート用のPICライタとしてはAN589(だっけ?)があるが、
LVP専用ってことなら適当な抵抗を介して繋ぐだけでOK。
↓
とりあえず最低限の機能のPICライタをゲットしたことに
↓
単なるシリパラ変換でPC1台使うのもアホらしいので、
早々にPICマイコンに置き換える。
このとき、シリアルを別のPICマイコンにスルーするシカケを入れておく。
↓
書き込み速度が遅いので、単なるシリパラ変換ではなく、
コマンドを送ると一定の処理して結果を返すものを作る。
接続は
PC→シリアルケーブル→レベル変換→前段のPIC(シリパラ変換だけのPICライタ)→後段のPIC(高速版のPICライタ)→書き込み対象のPIC
こんな感じでテストやデバッグとかやり、満足したら後段のPICをソケットから抜いて前段の位置にさしかえる。
↓
使える速度のPICライタをゲットしたことに。
こんな車輪の再発明なんか、やるだけ無駄っていう気もするんだが、自作の強みが1つある。
それは、pickit等が未対応の最新のPICでもデータシートさえあれば書き込めるってこと。
>>38 >それは、pickit等が未対応の最新のPICでもデータシートさえあれば書き込めるってこと。
今までそういう機会ってどんだけあった?
いや、あったぞ。 PIC16C84が秋月で売られはじめた直後、 AKI-PICなんちゃらが非対応だったし、 AN589ライタを使おうにもAT互換機なくて。 AN589ライタの回路を9801のプリンタポート用に変更して、 ライタのソフトもデータシートとAT互換機用のサンプルコードを元に書いた。 ・・・いまどき、そんな機会はもうないか。
趣味なんだから、楽しんだ(苦しんだ)者勝ちじゃね。
>>35 MPLABのデバッガでflashメモリをデバッグしようとしたら動かなかったよ。
デバッガがターゲットのreservedメモリエリアに何か置いてるっぽいんだけど、それがTBLWTを嫌がるのかもね。
プログラマで書き込んでデバッグするしかない。
10MHzの水晶を使ってトリマコンデンサで微調整して出来るだけ10MHzにして時計を作ったら1年でどのくらいずれますか? 20MHzにするとどのくらい改善するでしょうか?
>>44 比較とする10MHzとピッタリ合わせた場合、比較元の10MHzの誤差を元に計算すればOK
温度は…例えば一年中25度、ズレは0.1度以内で。とかになる
>44 具体的な数値が無いのに、どうしろと・・・ 無調整の水晶振動子で±50ppm位か、調整したら±5ppm程度にできるのかな さらに温度特性で10ppm位上乗せで±15ppmくらいか(年間±473秒) 市販の時計レベルの月差±15秒(±5.8ppm)を通年で達成するのは簡単じゃないよ。
47 :
774ワット発電中さん :2012/08/25(土) 16:38:28.16 ID:zWoP2lO1
そこでデムパ時計ですよ
>>44 水晶という素子の特性だから絶対確度そのものは、周波数に依存しないんじゃないかなぁ・・
製造工程や、雰囲気温度に左右されると思うよ
117に1時間おきにダイヤルすれば問題ないあるよ
OCXOなら年に1秒以内とか楽勝だな。
AC100Vの波数を数えるとかいうネタもあったね。 周波数の変動はあるけど、1日当たりの波数は最後に微調整してあるとか何とか。
>>51 最大一日30秒くらい。年間では数秒かな。遅れたり進んだりしながらトータルでは合ってるよ。
オレ電源同期の時計を現役で使っている。停電で点滅になっちまうが・・・
53 :
774ワット発電中さん :2012/08/25(土) 18:11:13.41 ID:+esEVtOG
電話の発信音も原子時計に同期してるらしいが ムダな精度だよな
その昔、セイコーだったかが、32.768kHzで低消費電力(μAオーダーだったな) の精度0.5ppmなんていう水晶発信器を作っていたんだがな。 製造中止になってしまった。
昔売ってた腕時計は、月差の微調整をアップダウンで設定できて便利だったんだがなぁ
>>52 > 最大一日30秒くらい。
ときには一日で戻しきれないのか・・・
どのぐらいで戻るもんなの?
>>53 発信音の精度のために原子時計を使っているのではなく、
交換機どうしがマスタークロックに同期して動いているので、
発信音などもマスタークロックに由来してるってだけだよ。
58 :
774ワット発電中さん :2012/08/27(月) 16:14:40.41 ID:fUqA90I8
TWI=I2Cの理解でOK?
59 :
774ワット発電中さん :2012/08/27(月) 17:00:12.76 ID:tuy6x4gD
最も昔から問題視されたクロックスキューの1つか
>58 それはAVRのスレで聞いたほうがいいよ。TWIと書いてるのはatmelくらいかも TWIが Two Wire Interface の略なら TWIの中にI2Cが含まれるってのが正しいのかな? 3線のSPI (SSは置いといて) 2線のI2C 1線の1-Wire あたりがメジャーか(1-Wireはそうでもないかw)
1wireつこーてみたけど、やっぱプロトコルがそれなりに複雑やなぁ
AVRマイコンのTWIはクロックストレッチにも完全対応の 完璧なI2CだよI2Cの機能以外の機能は何もない
>61 温度計のDS18B20なんか高精度で電源含めて2ピンだけで複数個接続できて便利だけど 変換に1秒近くかかるのと、プロトコルの複雑なのは使いづらいね。特に複数接続時の ID検索とか
>>63 昨年の計画停電のときに商用電源をモニタしてた人達は面白かっただろうなー。
普段では見られないくらい周波数が下がりっぱなしになったり、
深夜に一気に遅れを取り戻したりと・・・
30秒ずれた人は、何かやばいときに動作させてたんだろうか・・・
質問です。 pic24fファミリリファレンスマニュアルとpic24fj64ga004のデータシートにおいての SPI通信のマスターモードのクロック周波数の所で、 「Tcy=Tosc/2に基づく。ダズモードとPLLは無効とする。」 「Based on Tcy=Tcy/2; Doze mode and PLL are disabled.」 という記述があるのですが、これはPLL回路を使った命令サイクル周波数が無効になるということなのでしょうか? この記述が示すところが何なのかさっぱりわかりません。orz
68 :
774ワット発電中さん :2012/08/28(火) 23:18:58.18 ID:86tWS8uT
今USBの無線LANアダプタものすごく小さいものが出回っているんですね。(LAN-W150N/U2BK) こういうのUSB PICで使えたら楽しいだろうなぁ、と。
>67 全く自信ないけど TCY=2*TOSC , ただし Doze mode と PLL が無効の場合のみ左式は成り立つ TCYは1命令サイクル データシートのTABLE 27-13: EXTERNAL CLOCK TIMING REQUIREMENTSを見ると TOSC=1/FOSC とのこと,でFOSCってのが 4xPLL通す前のクロックらしい(PLL有設定の上限が8MHz、無なら32MHzなので) Doze mode は 周辺回路のクロックを1とした場合のCPUのクロックを1/1〜1/128まで 遅くする機能(CLKDIV) Doze mode と PLL があると式が複雑になるので、省きたかったのでは
>>68 USBホスト対応のPICなら、使えるんじゃね?
>>69 なるほど、それでは内臓発振8MHzを4xPLLしていた場合、
SPI通信の最大のクロック周波数は4MHzになるということですかね。
自分はPIC間の通信に使うつもりなので、たぶん同じ値にしておけば問題はないのですが、
気になったので質問させてもらいました。
今度、通信が成功した後、どうにかして計ってみようと思います。
返信ありがとうございました。
72 :
69 :2012/08/29(水) 07:33:04.52 ID:CpHGWpKZ
>71 周辺回路へ供給されるクロックは4xPLL後だから16MHzじゃないかな。 あの表現は、実はたいした意味が無いのかも
>>70 ハード的には出来るかもと思わせますがね・・・
>>74 よくわかってませんが、以下のような困難な作業があるのではないかと思います。
1)Wifi子機のUSBのIF仕様の入手
2)Wifiプロトコルの実装
3)TCP/IPプロトコルの実装
4)Wiifi子機ドライバの実装
どこかから一式DLできるのならいいのですけどね。
自分はWiport使ってチマチマやっていますが、
値段とサイズで圧倒的する市販のUSB無線LANアダプタを使いたいな、と。
なるほど・・・けっこう工数かかりそうだな・・・
USBメモリにログが取れるだけでいろいろ便利なのに
>どこかから一式DLできるのならいいのですけどね。 まっ、今の日本じゃ”自作=コピペ”だからな。
>>75 まじレスすると
USBのプロトコルとWiFiプロトコルに関する規格は各メーカまかせで
決まりがほとんどない
だから、あっちのUSBドングルでは動くけれど
こっちのドングルでは動かない
PCのUSBスニファソフト使えば、作れないことも無いだろうけれど
Linuxでの対応デバイスの状態を見れば明らかで、
この上なく面倒くせぇ
ついでに書くと、Bluetoothはそこら辺りの規格が無線大前提で統一されているから
ドライバ書くのも楽だしPICでの創作例は多々ある
もっとついでに書くと
USBドングルつかう場合は、Bluetooth含め電波法に接触する可能性がある
USBドングルメーカは技適を取得する際ドライバ込み(ソフトウェア)で取得している
(数社のUSBドングルで技適認証機関に問い合わせたら、ドライバ改変は対象外と云われた)
(そうでは無いメーカもあるかもしれないけれど、、、)
結論としては、
Xbee使えって事だな
wifiのドングルをOSなしのマイコンに繋げた例はまだ見たことないな 暗号化の壁かな
82 :
774ワット発電中さん :2012/08/30(木) 11:02:02.44 ID:6VT+yt9o
PICで、バンク切り替えがなくなったという話を聞きました。 本当でしょうか? クロックの1/4は、まだありますか?
秋月は一向にPIC10F322のSOT32を仕入れないな 200や222を売り捌くつもりなのか
75です。
>>79 さんのマジレスに大感謝です。ありがとうございます。
これは凄いと思って買ったWiportを1〜2年放置し、最近使い始めたのですが、
Xbeeを始め各種無線商品が出揃っていて、更に無線LANアダプタも凄くコンパクトに・・・
また誰かがこれを使って揚々と遊んでんだろうなぁと思うと、激しくやる気が削がれていました。
買ってしまえばWiport使うのはタダなので、これでじっくり遊ばしてもらいます。
>>81 さん、情報ありがとうございます。金ができたら家のテレビに繋げたいと思います。
>85 そうかもね。 10F222(SOT-23)3000個(12万円)の在庫がAAAって事は相当持っているだろうから ただ3000個も欲しい人はmicrochipDirectから買うだろうなw 3000個なら単価$0.38 1$=80円で計算しても9万1200円 送料や税金入れても10万円程度だろうし
最近18F26K22をいじり始めたんだけど、TIMER1の外部非同期入力の周期が最大 60ns(16.7MHz)なのでTIMER1そのものが16.7MHzまでしかカウントできないのかと 思ったら、システムクロックを64MHzにして内部で供給したらちゃんと64MHzで カウントするんだよな。 入力バッファかセレクタが遅くて外部クロック16.7MHzまでしか使えないとしたら、 なんかもったいないな。
>88 クロック内部入力は実質 同期入力だからかな。非同期だと内部動作といろいろかち合いそう プレスケーラを使うか、もっと速いの使うか(dsPICやPIC32は40,20nsと高速化されてるみたい) ちょっとめんどくさいけど、プリスケーラ値を読み出すテクニックもあったはず ”プリスケーラ読み出し PIC”で検索
>>89 レスどうもです。
今は10MHzで使う予定なので良いのですが、ちょっともったいないと思ったもので。
そういえば、同期入力でプリスケーラ使うと50MHz(20ns)までいけるのに、
非同期入力でプリスケーラ使っても16.7MHz止まりっていうのも何か変だな。
試しに非同期入力で50MHz入れてみようかな。
クロックを内部FOSCにするとゲートがFOSC/4に同期させられて下2ビットが
意味なくなるというエラッタ(Rev A5でも直ってない。直せない?)もあるし、
入力周波数範囲がDC〜50kHzなんて書いてあっていまいち信用できない。
直ってないならエラッタではない
MPLABX IDE v1.30 PicKit3 (0Ω抵抗実装済み) ファーム01.27.20 OS win7-64bit 上記にてPIC16F1823は正常に読み書きできるが、12F1822では読み書きできない。 書き込み時のエラーメッセージは Target Device ID (0x0) does not match expected Device ID (0x2700). デバイスIDが読めていないみたい。 なんで? ちなみに古いほうのPC(WinXP、MPLAB IDE v8.66)では12F1822の読み書き可。
ターゲットマイコンへの給電設定とかだいじょぶっすか?
だいじょうぶっす
12F1822のターゲットの基板の電源の消費電流が大きいんじゃない?
ブレッドボードに組んでるので、プルアップの10kΩと電源の0.1uF以外何も無い状態で、PicKit3から電源供給してるんで消費電流は問題無しです。 ちょうど今、Win7PCにMPLAB IDEv8.87もインストール(Xと共存するか不安だったので今までやってなかった)して確認すると、 v8.87ではやっぱり12F1822の読み書き可です。 MPLAB X のバグとしか考えられない・・・ MPLAB X とPicKit3の組み合わせで12F1822の読み書きできてる人いるんですかね?
ブレッドボードで単独書き込みのできる環境を作って試してみるとか。
あっ、やってたのね。すまぬ。。
まえも、v8.87とXじゃなかったけど、ソフトが競合しててダメだった人いたなぁ 両方ソフト終了して、PicKit3抜き差しして、Xだけ立ち上げ直してもだめかねぇ
前スレ744が12F1822で同じような状態になって解決したみたいだから参考にしたら
マイコンかじりかけの初心者です IDEを使わずに、linux+使いなれたエディタ使用+ターミナルで操作して開発したい場合、 どんな方法がオススメですか?
>>101 IDEを使わずに、linux+使いなれたエディタ使用+ターミナルで操作して開発するのがオススメだよ。
そいえばPICkit2をコントロールするコマンドがソースコード付きで公開されてたな。
だが考えを改めてIDEで開発する方が
>>101 にはお勧めだ。
IDEはコンパイルと書き込みの時にしか使わないな
え? コンパイルも書き込みもコマンドラインで可能でしょう。
し、しーっ!
107 :
96 :2012/09/02(日) 01:07:50.16 ID:lml249x4
暫定対応 12F1822だけはMPLAB Xでビルド後にPicKit2プログラマで書き込む。 それ以外はMPLAB X + PicKit3で快適に使う。 次回ファームアップで直ることを期待。
>>107 MPLAB X1.30でやってみたけど12F1822認識したよ
オプションとかもウィザードで生成されたものから特にいじらなかった
回路はPickit3と1822直結で周辺部品なし
110 :
96 :2012/09/02(日) 09:21:21.17 ID:lml249x4
>>109 情報ありがとう!
できてる人がいるならどうにかなるハズなんで、別のPCとかで試してみます。
111 :
96 :2012/09/02(日) 17:29:32.28 ID:lml249x4
解決! くやしいが細い原因はわからず、MPLAB X の再インストールで読み書きできるようになりました。
Windowsは勝手に偽ディレクトリや偽レジストリにアクセスしてウソつくから 最新版にしてダメなら古い環境に戻すか捨てるのが早い
秋月八潮店で1822と1823買ってきたが、どっちもリビジョン6だった。 秋葉と通販はどうだろう。
A6か、それは残念だ。 買う前にチップの表面の刻印の製造年週を見ようぜ。
115 :
774ワット発電中さん :2012/09/03(月) 13:08:33.44 ID:s+OdiZzn
>>101 マイクロチップ社のページでcuiの書き込みソフトを配布してる
名前は忘れた
pickit2で書き込み出来る
俺も途中までやってたのだがcコンパイラがいいのがなくて
結局諦めたけど
PICKIT2で書き込もうとしたらジャンパ線代わりに作ったベル線ジャンパ線(単線の銅だと思う)が錆びてて通信不能だったでござる。 何でこういうときに限って紙やすりが無いんだ…。 しょうがない、ユニバーサルに作ったスパゲッティ書き込みボードを修繕して、どうにか使えるようにしよう…。
豆ちしき: 紙やすりがないときにはサメ皮が代用になる
確かにまめかもしれんが、もっとないだろサメ皮。。。。。。
台所にクリームクレンザーとかないのか。
…カッターかなんかで表面削ればいいだけだろ。
家が蕎麦屋の人は大抵さめ皮くらいあるぞ
家が蕎麦屋でPICやってるヤツか…
>>117-122 書き込みありがとうございます。
カッターでショート状態の導通チェックまで可能なところまで行きましたが、Pickit2から書き込めませんでした。
またPickit2を書き込み用基板(
>>116 で書いた基板)につないで別PICを読み込んだところデバイスまで読み込みが出来たので、
ケーブルの接触不良かブレットボードの調子が悪いのではないかと疑っています。
同じPICは無いのでPIC自体が壊れている可能性もあるのですが、
ともかく半田付けで書き込みコネクタを自作してもう一度試して見ようと思います。
ありがとうございました。
接点復活剤なんて、交換部品が無かったり手直しが効かない時の最後の手段だろ。 常用するもんじゃないよ。
>>116 カッターナイフでカリカリすればいいよ。
>-◎16F716 \80 ADC有,eCCP有,2Kw,内蔵CLK無,EEPROM無だけど値段安い,ADC8bit注意 内臓クロック無かった……。 CCSの#Fuseでおかしいなと思い、データーシート読んでからまさかと思い、ここを開いて気が付いたorz しかしやはり部屋の中を探さねばならぬのか…なぜか出てこないセラロックのダンボールのリールを。
>>127 リール・・・。見つかったとしても使い切れるか悩ましいね。
>>127 大丈夫格安で買ったので使い切る必要が無い。というか変なことをして壊しても痛くないし。
が、ウチには16F54,57,59とクロック無しがそろっている位だから少しは減るでしょう。
それよりも見つけたら紙のテープを50個単位ぐらいで切り刻んでデジキーのダンボールにでも入れて手に届くところにおいておかないとw
マイクロチップの日本法人って対応が悪すぎると思いませんか? 私は、業務質問として送ったメール、3通、もう無視されています。 日本法人は、-65535からやり直したほうがいい。どうせ天下り?
その前にクレーマーフラグをリセットしなきゃ
電話で聞いてみたら?
fuseなので無理
>>130 お急ぎなら英語で本家にって書いてないか? microchip.co.jpのウェブサイトに
この際、クレーマー扱いされてもいいよ、とにかくサポートが最悪だよ。
仕事なら代理店を経由して本家・・・
代理店って技術サポートもできるの?
いや、、もうどうでもいい話なんだが・・・ 代理店が秋月・・・・・・orz
>>137 代理店が日本語→英語に翻訳して本家に問い合わせて、
その回答を英語→日本語に翻訳してくれたりするんだよ。
ちゃんとした代理店と、代理店がサポートする気になるような客なら、ね。
そうか、マイクロチップってサポートが最悪なのか 某氏にAVRに移行する11番目の理由にされてしまうのか
>130 こんな所で仕事の愚痴書き込むような奴の話が信用できるわけ無いだろ。 業務じゃそのメール内容も公開できないだろ お前 > マイクロチップの日本法人のサポート最悪だよ ほか > 直接電話 や microchip.co.jp お前 > サポート最悪だよ ほか > 代理店経由しろよ お前 > もうどうでもいい。秋月で買ったし ほか > ・・・
今、SMSC買収でごたごたしてんじゃねーの?
PICのポートのディジタル出力のゲートのON抵抗は、けっこう大きいな。 データシートみると V_OL = max 0.6V @ I_OH=6mA、Vdd = 3.3V V_OH = min Vdd-0.7V @ I_OH=3mA、Vdd = 3.3V とあるし。 V_IL = max 0.15*Vdd @ 1.8V <= Vdd <= 4.5V つまり、max 0.5V @ Vdd=3.3V 絶対定格の25mAを流したときに自己の閾値を満たせとは言わないが、 もちっと頑張って欲しいなり。 寿命が縮むことを承知でLEDを直に20mAくらいでドライブしたかったんだが、 電流制限抵抗の両端にかかる電圧が低くて、嫌な感じだ。 トランジスタを外付けすりゃいいんだろうが、面倒くさいよ。
×V_OL = max 0.6V @ I_OH=6mA、Vdd = 3.3V ○V_OL = max 0.6V @ I_OL=6mA、Vdd = 3.3V
ON抵抗100ohmか。 抵抗高い方がノイズは小さいのかな。 >寿命が縮むことを承知でLEDを直に20mAくらいでドライブしたかったんだが、 絶対定格に電力が書いてあるヤツは電力越えなけりゃいいんじゃないの?
「トランジスタを外付けすりゃいいんだろうが、面倒くさいよ」 って工作に向いてないよキミ
>>145 絶対定格ってのは、ふつう一瞬でも越えたら壊れるかもしれないよっていうラインだと思う。
信頼性(含む寿命)が低下するラインなら、定格として示すと思うのだが・・・。
>>146 そ、そうなのか。
その程度なら2SC1815とか適当なNPNと、ベースに1kΩくらい、コレクタに流したい電流になるような抵抗1本。 3個の部品を足すだけだよ。 基板にスペース無いなら別だが、面倒くさいって理由はどうかと思う。
ポート複数個パラっとけ。 どうせ遊びなんだからかまわんだろ。
とりあえずソース・シンクともにLEDと直列の抵抗をいくつか変えて、流れる電流を調べてみたわ。 やっぱしソースはON抵抗がデカい。約140Ω@Vdd=3.3V、Iout=7.3mA シンクはON抵抗が低め。約45Ω@Vdd=3.3V、Iin=13.9mA もっと電流制限の抵抗を下げれば20mAいけるだろうけど、試す気がしない。 LEDが温度↑でVf↓、PICが温度↑でON抵抗↑、 さらにADCで電流を監視してデューティ駆動するとしても、乗り気がしない。 トランジスタ外付けしたら、いとも容易いんだけどねー。 今回はLEDを複数個(5〜10個)並べて個別に点灯・消灯できるようにしたいので、 それぞれにトランジスタとベース抵抗の2個ずつのパーツ増加は、めんどくさい。 実装容積が限られていて、14pinのICを内側に折り曲げたもの+αくらいの空間しかない。 トランジスタ使うとなると面実装をフィルム基板でICの裏側に押し込まないといけない。 ポートは余ってないので、複数ポートをパラにするってわけにもいかないし・・・。 いっそ超手抜きで、電源電圧を下げてON抵抗頼りで抵抗なしで行くのもアリか? さすがにないよね。
マイクロチップダイレクトで初注文。 ドキドキしてたら、受注メールが2通届いてますますドキドキでござる。
>>150 スペースに余裕ないってことはLEDはチップサイズを使用ですか?
以前、5oの円筒型LEDでなら、根元にチップFETを仕込んで省スペース…という荒技をやった事はある。
あとダイナミック点灯にして電流制限抵抗も一つにまとめたりもした。
お前、口で吸え!
>>152 関取税 取られたりしないですか? に見えた
逝ってくる
>>153 あ、それに気が付かなかった。
5mm砲弾型で、それは基板に乗っているので、その基板の裏面ならチップ部品を乗せられる。
さらに、基板の表側にも若干の空間がある。
>>152 「Import VAT/Duty」いうのが5%乗せられてる。
160 :
774ワット発電中さん :2012/09/08(土) 14:42:23.42 ID:NRHWNeSF
PIC16F1824に内蔵されているSRラッチのQ出力って内部レジスタから読み出しできないの?
XC8ってヘッダからコンフィグビットの定義が消えてるけど、 使うべきトークンを知るには何処を調べればいいだろう?
初めてPICでLEDをチカチカした時にお前らどんな気持ちだった? 「おおおお!俺って天才!」とか「ふふふふ、これで自作電動オナホールを開発しよう」 とか何でもいいから言え
次、LCD
連投ですまぬが 次、タイマ 次、USART、あっと割込み版も 次、PWM 次・・・とpdf眺めつつ、石の持てる機能を順番に試した
>>162 XC8のバージョン1.01使ってるけど、ヘッダファイルに定義されてたよー。
>>163 夕方にしつこくナイトライダーを放映していた時代に育ったので(以下略
テケテテトテテテテケテテトケテテ…
169 :
774ワット発電中さん :2012/09/09(日) 18:56:53.88 ID:ZGZGccEg
「PICで」だと、「おk、で次は・・・」だな LED を 006P に直結したり、HC05 に正論理でつないだり、そーゆー時代は終わってた
>初めてPICでLEDをチカチカした時にお前らどんな気持ちだった? まっ、こんなもんだな。って程度かな? ハンドアセンブルして、ユニバーサルプログラマのバイナリエディタで 書き込んだんだけどね。
>>163 「よし、これでとりあえず使えるぞ」
が正解だろ、そのためのLチカなんだから。
>163 遠い昔の記憶だが 「やっと出来た・・・・。Z80の方が簡単じゃん・・・。」 って感じだったな。 CのJWで30年ぐらい昔の話。 ナイトライダーはまだ日本に来ていなかったはず。 でも2進カウンタ動作のLチカだった。
>>166 まじか。
v1.1のヘッダには見当たらないんだが、よかったらどのファイルか具体的に教えてくれまいか。
ちなみにオレが調べたのはこんな感じ。
pic12f683.h
pic12f1822.h
pic16f84a.h
pic16f648a.h
pic16f877a.h
pic16f1823.h
pic16f1939.h
どのファイルもレジスタとビットアクセス用のマクロしかなかった。
174 :
774ワット発電中さん :2012/09/10(月) 17:15:15.38 ID:QCPLoCLx
>>161 ありがとうございます。
やっぱりポートに出力してそのまま読むしかないですよね。
Qと^QをOFFにして使おうと思ってたので思惑が外れました
マイクロチップダイレクトに登録したんだが、届いたメールがなぜ?の嵐だった。 日本で、8859-1って読めるのけ? ソースからして化けちゃってたんだけど。
>>173 pic16f1823.hの先頭のほうで
Configuration Mask Definitions
っていうコメントのところで定義されてるよ。
インストール先なんて人それぞれだろうに…。
>>176 のとおりで簡単に見つかったオレにはなぜ見つからないか理解できない
>>88 ですが、TIMER1非同期外部入力プリスケーラ1:1で67.108864MHzをカウント
できますね。
TIMER1フリーランで割り込ませてポートを反転さる方法で512Hzでてる。
データシートがおかしいのかな。
>>179 X v1.1
○ v1.10
すまんかった orz
182 :
774ワット発電中さん :2012/09/13(木) 06:27:41.28 ID:zgybTT1p
すいません、質問させてください。 24FJ64GA002のAD変換がうまくいかず困っています。 //ADコンバータの設定 AD1CON1bits.ADON = 1;//AD変換器をオンに AD1PCFG = 0b1110000111000000;//すべてのチャンネルをアナログ入力に AD1CSSL = 0b0001111000111111;//すべての入力をスキャン対象に AD1CHS = 0x0000; AD1CON1 = 0x00e0;//0000 0000 1110 0000 AD1CON3 = 0x0f00;//0000 1111 0000 0000 AD1CON2 = 0x0424;//0000 0100 0010 1000 10回ごとに割り込み IEC0bits.AD1IE = 1;//AD変換の割り込みを許可 while(1){ IFS0bits.AD1IF = 0; AD1CON1bits.ASAM = 1;//AD変換スタート while(!IFS0bits.AD1IF); AD1CON1bits.ASAM = 0;//AD変換停止 duty = ADC1BUF8;//AN11を読み込む } IFS0bits.AD1IFがのwhile文で引っかかったまま抜けません。他に許可しないといけない割り込みとかあったりしますか?
>>182 pic16系の知識しかないので違うかもしれんが、
割込みを使うなら割込みフラグは割込み処理ルーチンの中でクリアするよな?
なら通常ルーチンの中でフラグを監視しても意味ないと思う。
もし割込み処理ルーチン内でフラグをクリアしていないなら割込みルーチンを抜けられんから、そもそもwhile文は実行されてないと思う。
とりあえずIEC0bits.AD1IE = 1;をコメントアウトしてみろ。
>>182 俺も初心者なんでよくわからんが、
割り込みを許可しているんだから
void _ISR _ADC1Interrupt(void)
みたいに、割り込み関数つくって、割り込み処理させないといけないんじゃなかろうか?
フラグが立って割り込み処理に入ろうとするけど、割り込み処理関数自体がないから、
処理が終わらずそこで止まってしまうとか?
割り込み処理関数を使わないなら、割り込みを許可しないでいいのでは?
たしか、割り込みを許可しないでもフラグは立ったと思うし。
フラグをクリアせずに割り込み処理ルーチンから抜けると、再び割り込み処理ルーチンが呼び出される。
アセンブラしかやらないから読めてないかもしれないけどね、まさかね。 Global Interrupt Enable、割り込み自体が開始されてないんじゃないかね。 GIEビットがsetされてないとADCその他周辺機器自体が動作しないと思うよ。 割り込みアドレスにも飛ばず、while()から一切抜けないのなら多分そうだと思うけどね。
つか182は割込みのつもりで書いたの?ポーリングするつもりだったの?
188 :
182 :2012/09/13(木) 20:35:31.41 ID:zgybTT1p
>>183-187 返レスありがとうございます
ADONを初期化部分の最後でセットすると正常に動きました
質問です。 PIC18F2550でAD変換 & 結果をUSB転送(シリアル通信互換)をやっています。 Vref+に基準電圧ICで4.10Vを与えていますので、1刻み0.004Vです。 実際に得られる数字が規則的にふらついて困っています。 現象は、AN0に1Vを与えた時、正しく250前後が帰ってきたとおもいきや 突然30〜50ぐらい高くなる現象です、 正しい値と間違った値が2〜3秒おきにひたすら繰り返されます。 電源はUSBバスパワー、基準電圧もそこから作っていますが、 4.8Vぐらいで全くふらついていません(オシロで確認済み) アナログ入力も1.000Vまで正確で、全く要因がわかりません。 源発信は20MHzセラロック、PLLDIV = 5,USBDIV=2 ADCS2:0=110 ACQT2:0=100 です。config WDT= OFFになってますし、 ADCON0bits.GO_DONE = 1; while(ADCON0bits.GO_DONE == 1){} の間、GIE=0にし、割込みはありません。。 原因として何が考えられるでしょうか。
セラロックの発振がふらついてAD変換のタイミングマージンを食いつぶしてないかな。 Tackだっけ? データシート読んでもう一段余裕のある値にしてみろ。
電圧計じゃノイズはわからん コンデンサと抵抗通してクリスタルイヤホンか適当なアンプにつないで 電源ラインや入力端子の音でも聞いてみれ
なぜ可聴帯域だと決めつけるの?
>>190 ACQT2:0を100(8Tad)から111(20Tad)にしたら、安定しました。
フルスピードで動かしていたので、やっぱり溜め時間が短すぎたようです。
ありがとうございました。
PIC32は性能いまいちかなと思ってたけど(>28-32) ARM Cortex-M0 LPC1114 , 1.62 CoreMark/MHz , 0.9 DMIPS/MHz (Max50MHz) PIC32MX220F032B , 2.29 CoreMark/MHz , 1.65 DMIPS/MHz (Max40MHz) 最下位のCortex-M0とは言えARMより高性能なんだな。 インストラクション的にはARMの方が使いやすそうに見えたけど、ロード&ストア命令が 2サイクルなのが足を引っ張っているのか? まあ、コンパイラが頑張る時代だから(人が)使いにくそうに思うアーキテクチャでも 問題無いんだな
マイクロチップの提供する開発ツールは無償のは最適化がオフだったりしないか? そしたら・・・
使わずして語る必要はないよ。このスレでは。
pickitが壊れたっぽいんだけどここで質問okなの?
おk 買い換えよう
うちに送ってくれればタダで直して使ってあげるよ
使ってるのはpickit3 OSはXPと7 64Bit 両方で確認 MPLAB8でつなげようとすると、 PK3Err0033とでる 何回繋げなおしても同じ 一度落としたのが原因な気がするけど、これって直せるかね
>>200 文面から推測すると、直せる腕じゃない。
PK3Err0033でぐぐるとケーブル変えろってでるけど試した?
直せる人は精々結果報告するだけだな。 ジャンクとしてオクに置いとけば誰かが買うかもね。
ライタの中枢部から見たケーブルだから、コネクタとかその周辺のパターンなども含まれると思われ。
どうでもいいんだけど、なんか最近ミニUSBのケーブルが増えて仕方ない。
207 :
774ワット発電中さん :2012/09/18(火) 02:04:42.28 ID:sfR8/JXG
すげー
いつかゲーム機つくってみたい・・・
PIC24FのUSBホスト機能を勉強しているけど、ややこしすぎて頭爆発しそう。 PS3コントローラをマイコンに繋ぎたいだけなんだけどなぁ。
すいません、 いまPIC18F14K50を買って試してみてるのですが RBのほうにGNDを流すとちゃんと1から0になるのに RCだと途切れ途切れというか押してないときも変わってるような? そんな感じになってるんです やってることは単純にボタンを2つRB7、RC1につけてもう片方をGNDにつなげてるだけなんです 壊れてるのかな?と思って買いなおしても同様の現象が発生してるのですが これって何かの仕様なんでしょうか?
プルアップしてないのでは
213 :
774ワット発電中さん :2012/09/19(水) 06:38:00.71 ID:byY6LaDp
>>211 RBは内部プルアップが有効になっており
RCには内部プルアップが無いので
プログラムの仕方でそういった状態になる
仕様なのか?と言う問題はCMOS入力を浮かした状態で使うとそうなる
だから使わないCMOS入力ピンは浮かすな、嫌なら出力に設定しておけ
という暗黙のルールになる
なんでCMOSはそうなのか?
というと、インピーダンスがデカいから
デカいと微弱電流でも駆動が出来るので小電力等モロモロ便利な反面
静電気等の発生ですぐ壊れる
貴方の壊れた判断90%以上は、プログラムミスか知識不足の回路ミスと
思っておいた方がよい
説明ありがとうございます やっぱりわたしの不備だったんですね まだ始めたばかりで書いて頂いたこともわけわかめなので ググりながら直してみます
211です つまりのところ 入力とボタンの間に3kΩの抵抗をつけてVCCへ繋いであげて 使用しないRCはすべて出力に設定してあげればいいというわけですね さっそく秋月に抵抗を注文します いろいろ勉強になりました
周りに詳しい人がいたら、すぐに解決できたりするけど、居ないとなかなか分からんよね。 独学の人はすごいと思うわ。
複雑化するだけして敷居下げっぱなしってのも困るな。
> 入力とボタンの間に3kΩの抵抗をつけて この世界には、E6とかE12とかいう「しきたり」があってだな・・・
オレはPICのプルアップなら10kΩがデフォだな。特別な理由が無い限り。
10kΩの抵抗はプルアップ用などに醤油のごとく常備しておくものです。
1kや100kだと不安があるから10kだな それ以上細かい値にする根拠が無い
一番初めに覚えた抵抗のカラーコードは10kΩでした
MCLRのプルアップは強めに1kとかにすることあるかな。 ほかは大体10k。
>>220 その10kΩの抵抗袋の残りが少なくなって、うーんここは4.7kΩでもいいかな、といって節約している俺。
消費電力を抑えようと思うと、プルアップ抵抗を大きくしたくなるよね。
相手がモーメンタリのボタンならいいけど、トグルSWだったりすると電流ながれ続けるし。
まぁスキャンする時だけプルアップ抵抗に電源入れてやるっていう手もあるけど、とりあえずは100kΩにしちゃう。
225 :
774ワット発電中さん :2012/09/20(木) 05:13:16.16 ID:QN6xyKmh
>>224 消費電力抑えるなら
そりゃプルダウンだろ
226 :
774ワット発電中さん :2012/09/20(木) 07:36:56.21 ID:cMIBezVt
10kΩは1608を1リール買って置けば、当分間に合う。
227 :
774ワット発電中さん :2012/09/20(木) 10:08:53.22 ID:2YsgHKN3
昔のTTLレベルのロジックICはプルアップで使ったほうがが待機電流減らせたんだっけ。 CMOSだとどっちでもいいのかな。
回路の構造を見れば判る
>>229 見た感じCMOSだと、どっちでも良さそうだったけど合っている?
鉛筆でおk
232 :
774ワット発電中さん :2012/09/20(木) 17:10:39.51 ID:QN6xyKmh
CMOS入力への電流が 気になる位の小電力なら プルダウンだろ 電池駆動回路では常識
233 :
774ワット発電中さん :2012/09/20(木) 17:32:57.84 ID:qS9IWV/O
未使用 CMOS 入力のプルアップ/プルダウンはただ抵抗が入ってりゃいいだけで値はほとんど関係ない 静電気や寄生容量を逃がせないほどの超高抵抗や短絡と変わらないほどの超低抵抗だけを避ければよい わざとやらなきゃそんなことにはならない
みんな、データシートを、読もう。
消費電流だけでプルダウンに拘る理由は無いよね。 省電力回路ならオープンコレクタの出力を受けることも多いし、 プルアップで統一したほうが面倒臭くない。
個人的には、スイッチを押した時に1になってる方が気分が良い
省電力狙うとき気遣うのは光りモノと電源周り
> 省電力回路ならオープンコレクタの出力を受けることも多いし、 省電力回路で?
>>238 あれ、違ってる?
オレも自分で知ってたり使ったことある素子でしか判断できないから、
省電力ならローアクティブの出力が常識だと思っていた。
今時のデバイスのように、複数の電源系のあることが多いときは プルダウンの方が安全だけどね。
>>238 3ステート持ってないとかじゃね
それでもよくわからんけど色々省略されてるみたい
そこで完結の話なのかどっかからとか
と書いてたけどなんか来たからいいや
安価だったからスル―よろ 「出力段」に限って切り取る この出力をプルアップすると40Kと並列になる 電圧出るからゲート出力に見える 直接マイコン・ICで受けられるようにしてくれてる 電流いらない40K、VCC=VIO プルダウンするとどうなるの
そろそろ結論でた? 未接続は出力でプルアップ?プルダウン?
使わないものはそのままでいいに決まってる バカなの
マイコンじゃないICで入力にしか使えないピンは放置禁止 PICは出力にも設定できるんだから、出力にしとけば何も不定なことは起きない
なんで放置禁止なの
え?
>>248 パワーONリセットから復帰するまでの期間を心配しちゃうんだよね。
でも、
>>247 みたいな使い方してもまず壊れないPICは凄いってことになるんかな。
>>251 入力がHi-Zだから凄いって事もないかと
上の方のネタな流れは急に終わったのね
入力モード放置しても壊れることはないけど、待機電流増える。 消費電力を気にするものを扱うときは出力モードかA/DついているポートならA/Dモードに切り 変えて使えばいいってMicrochipの参考資料に書いてあったかな。
壊れはしなくても動作がおかしくなったらアウトだろ RBなんかすごい勢いでポート変化割り込み発生するぞ
>>255 こう書いてあって、どうやらキミの主張とは異なるようだよ。
「24.0 パワーダウン モード ( スリープ)」
「このモードで消費電流を最小限にする場合は、
I/Oピンから電流が流れる外部回路を使用せずに、
すべての I/O ピンを VDD または VSS へ接続します。
ハイインピーダンス入力の I/O ピンは、
外部で Highまたは Low にプルして、
フローティング入力によるスイッチング電流が生じないようにしてください。
消費電流を最小限にするには、T0CKI 入力も
VDDまたは VSS としてください。
また、PORTB のオンチップ プルアップの消費電流も考慮する必要があ
ります。」
要するに、省電力的には入力に設定してプルアップかプルダウンってこと。
内部プルアップがあることを考えれば、外部からはプルアップするもんだと考えれば間違いも無い。
海外ではコンデンサ入れとけみたいな風潮もあったような
>>257 おもいっきり間違えてたw スマソ
ちゃんと見直さないとといけんな。気をつけよう。
いまどきのPICは全ポート内部プルアップ付いてるっしょ。
今日はろくに確認もせずテキトーな発言するヤツが多いな。
今日も、な気がしないでもない。
>>251 > パワーONリセットから復帰するまでの期間を心配しちゃうんだよね。
そんなもん気にする必要は無い
それで壊れるぐらいなら、出力ポートとして使うピンだって壊れるわ
リセットからセットアップ完了までHi-Zになるというのは同条件
本来使うつもりのピンが破損する可能性を考慮しないのに
同条件の使わないピンが破損する可能性だけ考慮するのは無意味
>>256 >RBなんかすごい勢いでポート変化割り込み発生するぞ
禁止にすればいいだけだよ
一部だけ禁止、という訳に行かない機種があるんだよ
ピン単位で設定できない古いPICは窓から捨てろ
捨てるくらいなら俺にちょうだい!
窓から投げ捨てられたPICを、両手に持ったソケットで受け止めるゲーム をPICで作ろうぜ
フラットかもしれない
DFNらしいから、俺は要らん
Ubuntu上でMPLABX 1.41文字化けしてね? なんかコンフィグ変えたな? Netbeans7.2と同じくフォントコピーしたら治ったけど。
272 :
774ワット発電中さん :2012/09/25(火) 21:36:19.56 ID:PySZq6ft
秋月のグラフィック液晶128x64でゲームを作るのは厳しい? 解像度低いし、残像があるし…
16F1823とかで内蔵コンパレーター入力の+と-をショートしたら 出力が1だったり0だったりチップによって違うのがデフォ?
ゲーム内容次第
>>273 ヒステリシスONなら、ショートする前の状態を保持ってるのかもな。
ダイナミック・マイクを直接つけて音がしたら反応するようにしたかったんだが、 ヒステリシス入れると感度が低すぎて無理だった。 少部品でやりたかったが外にアンプ付けなきゃダメか〜。
>276 OPアンプ内蔵品使うのはどう? >-◎16F785 \130 ADC有,CCP有,2Kw,内蔵31k-8MHz,OPアンプ搭載が異色(新シリーズにも無)
積分回路を通したらどうだろう
今思ったんだが、ヒステリシスONにしても電源ON直後どっちになるかは確定しないっぽい気がする。 1だったり0だったりするのはそういうもんだと思って使わなきゃダメなんだろうね。 もうCxOUTで判断せず、エッジで割り込みかけるようソフトを作り直そうと思う。 それならハードは今のままでいいし。
コンパレータの-入力にマイクのピーク電圧の80%程度の電圧をかけておくべき。 それで解決出来ないならアンプ通さないと根本的な解決はない。
PIC初心者ですが、先輩方に教えて頂きたい事があります。 環境を整えて、勉強を始めたところですが、使い方が悪かったのか、 幾つかのピンが動作不良かと思われるPICが有ります。 動作確認、良、不良の確認など出来るのでしょうか? 用意している環境は、 秋月のAKI−PIC2プログラマボード(PICkit2互換)と ソフト面では、書き込み用にPICkit 2 v2.61 統合環境はmikroC PRO for PICとMPLAB IDE v8.84をインストールしています。 これらにPICの確認など出来る機能などあるのでしょうか? よろしくお願いいたします
もしかしてダイナミックマイクの出力を直にポートに食わせてないだろうか。 適当にカップリング・コンデンサ入れてDCバイアスかけて、GND付近から引き離してはどうか。
そもそも、コイルをマイコンに直で繋いで大丈夫なんだろう
か
>>280 ,282
コンパレータの+と-にマイクの両極をつないでいる。
マイクの起電力で状態変化させる簡単で高感度な方法だと思うけど?
書き忘れたけどさっきソフト書き直して無事動作してます。 ダンシングフラワーみたいに使えるし、無音時はスリープなので電源スイッチも付けない。 12F1822でよかったかもしれない。
高感度過ぎて遊びがゼロなのでは
>>287 以前単体のコンパレータICで似たような使い方した時は高感度過ぎて+-間に抵抗をつけたけど、
PICのはそんなに性能良く無いみたいで丁度いいよ。
入力オフセット…
>>281 まずはデフォルトで有効になっているADコンバータやコンパレータを切っているかどうか確認
PIC自体が壊れているかどうかは、ほかのPICに換えてみて動くかどうか確認。
>>276 スレチだけど、そういう用途だとPSoCが便利なんだよね。
PIC関連でテクニカルライターをしていた後田便という人って この頃、見ないけど死んじゃただろうか?
armに乗り換えた
PIC関連本とかは旬を過ぎたからなー。
296 :
774ワット発電中さん :2012/09/28(金) 16:20:07.81 ID:qCylkl6B
こんにちは. 今までwindowsでSDCCとGPUtilsを用いてpic開発をしていたのですが, 最近,mac (Mac OS X 10.7.5)に乗り換えまして, macにSDCCとGPUtilsをググりながらインストールしました. しかし,いざC言語ファイルをコンパイルすると「ヘッダファイルが 見つからない」とエラーが出てしまい,コンパイルできませんでした. ググってみたら/sdcc/share/sdcc/non-free/includeのヘッダを /sdcc/includeに移すと読み込むと書いてあったのですが, 移動してからコンパイルしても同じエラーが出てしまいます. スレチだとは思いましたが, PIC開発をされている方々の中ならSDCCをお使いの方がいらっしゃると思い, 書き込ませて頂きました. ご教授お願い致します.
297 :
774ワット発電中さん :2012/09/28(金) 18:28:55.28 ID:qCylkl6B
296です. 質問の内容がはっきりしてませんでした. 失礼致しました. 状況としては,上記です. 質問は,どうすればヘッダファイルを#includeを使ってインクルードできるでしょうか.です. 環境としては,mac os x 10.7.5 sdcc 3.2.1 です. よろしくお願い致します.
PIC特有っちゅーか、C言語の初歩じゃないか? コンパイラのヘッダファイルのサーチパスが通ってないとか。 とりえあえずフルパスで指定したらいいんでね?
299 :
774ワット発電中さん :2012/09/28(金) 20:43:34.06 ID:qCylkl6B
298さん ありがとうございます. フルパスで指定したらできました. ただ,これってインクルードしたいファイルのあるディレクトリまでパスを通したら いいってわけじゃないんですか?
>>299 コンパイラの引数にインクルードファイルのサーチパスの指定があるだろうから、そこに追加。
#include < > と #include " " でも挙動が違う
PIC以前にC言語の基礎の話だなー
303 :
774ワット発電中さん :2012/09/29(土) 01:35:54.58 ID:BoCUgm5Q
レス遅くなってしまい失礼致しました. おっしゃる通りですね. 一通りのプログラムは書けるようになったので C言語は使いこなせると過信してました. もう少しC言語自体を勉強しないとですね.
PIC32MXのUSBホスト機能結構便利。USBメモリもUSBゲームパッドも使える!
秋月で買い物のついでにPIC32MX買ったみたのはいいけど 後からPICkit2じゃ書き込みできないことに気が付いて 現在放置状態になってるオレへのあてつけか〜!
PICkit3も買えばいいなじゃない。オレみたいに。
>305 PICKit2でも書き込みできるよ! pic32progっていうソフトがある。 デバッグはさすがに出来ないみたいだけど・・・
4550でUSBのホストにはなれない?
JC-U3312Sの解析結果を一応貼ってみる。 usb_host_generic.cのUSBHostGenericRead関数を使ってエンドポイント0x81からひたすら読み出したら良いみたい。 アナログモード時。 │ │ 内容 │ 7bit│......6bit │....5bit │....4bit │.. 3bit │....2bit │....1bit │.... 0bit│ │. 1│ 左スティック左右│.... ←:0x00,→:0xFF │ │. 2│ 左スティック上下│.... ↑:0x00,↓:0xFF │ │. 3│ 右スティック左右│.... ←:0x00,→:0xFF │ │. 4│ 右スティック上下│.... ↑:0x00,↓:0xFF │ │. 5│ ボタン@-Cと十字キー│ C│ B │ A │ @ │ . 十字キー │ │. 6│ 各種ボタン│. 右SW│ 左SW │ I │ H │ G │ F │ E │ D│ │. 7│ モードスイッチ│ │ │ │ │ │ │ │MODE│ │. 8│ 固定│ 0x14 │ │. 9│ 十字キー↑│..感圧(0x00〜0xFF) │ │10│ 十字キー→│.感圧(0x00〜0xFF) │ │11│ 十字キー↓│.感圧(0x00〜0xFF) │ │12│ 十字キー←│.感圧(0x00〜0xFF) │ │13│ Aボタン│.感圧(0x00〜0xFF) │ │14│ Cボタン│.感圧(0x00〜0xFF) │ │15│ Bボタン│.感圧(0x00〜0xFF) │ │16│ @ボタン│.感圧(0x00〜0xFF) │ │17│ Dボタン│.感圧(0x00〜0xFF) │ │18│ Eボタン│.感圧(0x00〜0xFF) │ │19│ Fボタン│.感圧(0x00〜0xFF) │ │20│ Gボタン│.感圧(0x00〜0xFF) │
>>305 『pic32prog』で検索したら、それらしいHPがあったんで、pic32prog.exeをダウンロードしたら、
ノートン先生に怒られて勝手に消されたんだが・・・・
ブログとか見ると、使ってみた記録があるんだが、どうなってんだろ?
とりあえず、今すぐ何かやる予定は無いんで慌ててないけどね。
312 :
774ワット発電中さん :2012/09/30(日) 19:56:11.68 ID:icvR199J
すいません。 モーターをPWMを使って回しているのですが、そのPWMを使いだんだんあげたりさげたりという制御をしたいのですがうまくいきません。 普通に1つだけスイッチを判断して、PWM値を目的までゆっくりあげたり下げたりすることはできるのですが、 3つのスイッチを判断し、3通りの制御を行うことができません。 PICは16F1938を使っています。 開発環境は、MPLABv8.70のHitech-C Lite9.81を使っています。
314 :
774ワット発電中さん :2012/09/30(日) 20:05:43.58 ID:icvR199J
>>312 うーん、そのくらいはインターネットのサンプルとかに転がっていない?
316 :
774ワット発電中さん :2012/09/30(日) 21:12:09.71 ID:icvR199J
>>315 うーん。。。
ノイズとかで誤動作するんですよねー。
チャタリング防止を__delay_ms(25);でしていて、そのせいでうまく動かないと思うんです。
スイッチとは言ったのですが、アナログ出力のセンサをPIC16f1823で入力してデジタル出力していて、
その部分がノイズが多いのか、一応チャタリング防止でノイズは防げているんですが
チャタリング防止でプログラムの処理に時間がかかってしまっていて・・・
Timer0割り込みを使用するにしてもTimer割り込みがうまく動いていなくてどうしようかなと悩んでいまして。
>>316 1つずつキッチリ動作確認していったほうが
>>316 押した回数で制御してるの?
押していると段々速度が変化するとか、そういう制御ならチャタリングの問題でなさそう
>ノイズとかで誤動作するんですよねー ・・・ >その部分がノイズが多いのか そもそも原因を正確に掴んでいない状態で対策を考えても無意味だと思うのね。
現象をちゃんと説明できないんじゃ こっちも原因推測しようがないしなぁ。
321 :
774ワット発電中さん :2012/09/30(日) 22:08:31.64 ID:icvR199J
>>317 そうですねぇ。
そうしてみます。
>>318 押した回数ではなく、このスイッチを押したらこの回転、このスイッチを押したらこの回転という風に3つのスイッチでそれぞれ動作が違うのです。
>>319 今オシロが手元に無いので、明日確認してみます。
322 :
774ワット発電中さん :2012/09/30(日) 22:11:42.92 ID:icvR199J
ちなみに今、delayではなく、カウントアップしてカウントが期待値ならスイッチが押されたという風に認識されるプログラムを書きました。 それがこれです。 if(RB5==1) Swcount1++; else { Swcount1 = 0; flag_sw1 = 0; } if(Swcount1>=500){ if(pwm>targ){ SetPWM5(800); LATA0=1; SetPWM4(800); LATA2=1; } } else{ if(RB5==0) Swcount2++; else { Swcount2 = 0; flag_sw2 = 0; } if(Swcount2>=500){ if(RB5==0){ SetPWM5(0x3ff); LATA0=1; SetPWM4(0x3ff); LATA2=1; } } }
323 :
774ワット発電中さん :2012/09/30(日) 22:15:49.43 ID:icvR199J
すいません。 if(pwm>targ) とありますが、それは間違いです。 わざわざ回答していただいてありがとうございます。
>316 入力は、機械式のスイッチの入力では無く アナログ入力を別のPIC経由でデジタル信号として メインのPICで受けていると読み取れるんだけど 機械式のスイッチ入力じゃなければチャタリングは関係ないし 出力インピーダンスの高いセンサーからならともかくPICから PICへのデジタル信号でノイズが乗るって、余程のノイズ環境か 配線がよほど長いのか・・・ 単に信号を取りこぼしてるだけのような
325 :
774ワット発電中さん :2012/09/30(日) 22:22:24.93 ID:icvR199J
ちなみにこのプログラムは、ただPWMをかけてポートをONOFFするだけです。 ちなみにこの動作は何もしていないときにPWMのLEDが不定期に点滅し、 スイッチを押したときには一定のPWMからだんだんあがり最後にいきなり消えるという動作を繰り返します。 それとelseのときのLATA0とLATA2=1になっていますが0の間違いです。 たびたび申し訳ありません。
326 :
774ワット発電中さん :2012/09/30(日) 22:23:39.15 ID:icvR199J
>>324 少し配線が長いかもしれません。
それでも50cmくらいです
>スイッチとは言ったのですが、アナログ出力のセンサをPIC16f1823で入力してデジタル出力していて、 >その部分がノイズが多いのか、 そう考えたなら、そっちを対策するのが筋だろ
>>326 モーター外して誤動作するならチャタリングだろう
チャタリングならCRフィルタ入れるのが一番手っ取り早いけど・・
500カウントまってオン、オフ判定か。なるほど。 オンなら PWM5 PWM4 が 800 になるのか。 オフを500カウントでオフ、そのときは 102399 って不思議な値だな。(笑) それともこの関数のパラメータはデューティーと無関係なのかな? もっとすっきり書けそうだけど、それはおいといて、これ意図していないのか?
おっと、電卓も叩けないほど耄碌したわ 102399誤り、1023だった。
331 :
774ワット発電中さん :2012/09/30(日) 22:40:55.20 ID:icvR199J
やはり回路的にノイズ対策をするべきですね・・・。 回路の知識があまり無かったので・・・。 ありがとうございます。 とりあえずは、それをやってみます。
モーターとPICが同じ電源を使っているとエスパー
333 :
774ワット発電中さん :2012/09/30(日) 22:45:44.17 ID:icvR199J
>>332 PICはeneloopでモーターはLipoです
まさかブレッドボード?
335 :
774ワット発電中さん :2012/09/30(日) 22:53:12.54 ID:icvR199J
>>334 基板加工機で作った基板の上に電源回路(ユニバーサル)があります。
>>335 あんまり回路に慣れてなさそうだから言うけど
DCモーターの突入電流(定格の5倍ぐらいだっけ?)で
電源電圧ブラウンアウトまで落ちていないか
後はモーターの逆起電力がPICの電源に流れ込まないように
CRフィルタ(10Ω、1〜100μF)しておくとか
両方オシロ無いと見えないけど、あるかね?
337 :
774ワット発電中さん :2012/09/30(日) 23:07:39.11 ID:icvR199J
今はモーターを回さず、PWMとポートの実験だけしているのでそれはないと思います。
それならば、今後の確認事項として考えてくれたらいいよ
339 :
774ワット発電中さん :2012/09/30(日) 23:12:32.85 ID:icvR199J
わかりました。 ありがとうございます。
もしかしてPICのポートを直にMOSFETのゲートに繋いでないか?
341 :
774ワット発電中さん :2012/09/30(日) 23:44:28.72 ID:icvR199J
恐らく繋いでいません。 スイッチが1つの時などはきちんと動くので。
回路図とプログラムをまるごとうpするのが一番早そう
「恐らく」ってのは、複数人で作業してるってこと?
入力側の心配としては、スイッチのプルアップorプルダウンができてなくて、ノイズの影響を極端に受けやすくなってるとか、抵抗が小さすぎて電圧降下してるとか
出力側では
>>340 の言うように、PICの出力に負荷がかかりすぎてるとか
電源では、電池やコネクタが接触不良だったりパスコンが無かったりとか
343 :
774ワット発電中さん :2012/10/01(月) 00:10:39.42 ID:BOrpYYrN
複数人というわけではないのですが、モータードライバは他の人が作ったものです。
344 :
774ワット発電中さん :2012/10/01(月) 00:12:24.40 ID:BOrpYYrN
回路側のノイズ対策等をしっかりしてからまた質問させて頂きたいと思います わざわざすいませんでした。 回答して下さった皆様ありがとうございました。 また質問させていただくかもしれませんのでその時はまたよろしくお願いします。 明日は自分でできるだけのことをやってみようと思います。
ビッグバンテストやめて、まずは、最小機能単位ごとにテストしようよ。
ポートのモード設定を間違えてる スイッチの配線を間違えてる
だからアナログ回路をだな…
322=312だよな? コーディングに慣れてないようだが、 もしかして単純にアルゴリズムの問題なんじゃね?
俺もソフト側の問題だと思う。 サブのPICからメインのPICへ送るデジタル信号にノイズやチャタリング等の 問題がでるとは思えない。 今までのやり取りを読んでも、何をしたいのかがわからない。 厳しい言い方だけど、何をしたいのかを文章にできないようでは ちゃんとしたアルゴリズムが書けるとは思えない。 人に伝えることが出来ないのに、どうして機械に伝えることができようか
>>344 電線を見たら抵抗と思え、ということでモーターに流れている
電流と PIC に流れている電流が同じ電線を通っていないか
チェック汁。
まず回路図、そしてソース それらに不備不足が無ければ、アナログな要因かな
ちゃんと質問できるレベルになると、だいたい自力でなんとかなるようになって質問することが少なくなるよね。
それでも判らないような微妙な質問になると、 答えを知ってる人が誰もいなくて、妙に荒れる
マイコンのエラッタが原因だったりしたら、もう荒れに荒れそう。
PICのF1シリーズをしばらく使ってきて、C言語にも多少は慣れたと思うんだ そこで、C言語について特に基礎的な部分を詳しく説明してる本か、ある程度特定の分野に進んだ(液晶とか無線とか)C言語の本を買うか迷ってる どちらを買えばいいと思います?
どっちもむいてないと思う。
>>356 わかったよ
ソースコードパクるしかできない糞ガキはパクりながら積み木でもしてるよ
では終了
>>355 どちらでもいいから興味あるほうをやってみればいいのでは
趣味なんだから
趣味でしゅみましぇん・・・・
スリープから割り込みで起こしたいのだけれど、 アナログ値がしきい値を超えたら起きるってのは、 コンパレータじゃなくA/Dでは無理でしょうか?
>>360 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>>355 > ある程度特定の分野に進んだ(液晶とか無線とか)C言語の本
そういう一石二鳥を狙ったような本は、たいてい屑。
>>364 回答ありがとうございます。
A/Dで割り込みがどうこうって書いてあったのでよく読まず期待してましたが、やっぱり無理ですか。
ネットに制作記事があれば、それを参考にしていろいろ作れる 制作記事が見つからなくて、自力では無理な時にその代用として本を探す 別に教科書的な役割は期待していない
367 :
774ワット発電中さん :2012/10/04(木) 00:05:57.50 ID:gBIBWd4J
>>312 です
いろいろ回答してくださってありがとうございました。
丸一日頭回して考えてみたらすっと動かすことができました。
回路系の問題はあまりなかったのですが、参考にさせていただき、一応対処はしておきました。
ありがとうございました。
連絡遅れてしまってすみませんでした。
これからは頼らないでもいけるよう努力いたします(`・ω・´)
>>365 SLEEP中にADCして、
ADC変換終了の割り込みでSLEEPから復帰し、
CPUでADCの結果をチェックして閾値を越えてなければ再びSLEEPに入る
ってのではダメなの?
ADC変換が終了する度にSLEEPから復帰しちゃうから消費電力が問題になるかな。
SLEEPに入る前に動作クロックを下げておいたら、どうだろうか。
ADC変換の頻度を下げたい場合は、WDTと組み合わせるのも手だよね。
>ネットに制作記事があれば、それを参考にしていろいろ作れる 参考じゃなくて、単なるコピペだろ?
基礎ができていれば誰でも思いつくようなアイデアが特許で囲み込まれていて困る〜って悩みには程遠いな
PIC32でSDカード制御してるんだけど マイクロチップのMMDファイルシステムで書き込んでる途中は タイマー割り込みでダイナミック点灯してる7SEGが消灯しちゃうんだけど これって解消する方法ない? 因みにタイマー割り込みを優先順位最高の7にしたらSDカードに書き込めなかった
DMAでも使ったら?と言っておく
DMAか・・ 使ったこと無いからチャレンジしてみるか
LEDのダイナミック点灯をDMAでやるのは面白いアイデアだな。 DMAをループにしとけばテーブルに点灯パターンを書き込むだけで済むし。 でもさー、 タイマー割り込みを長時間止めてくれるような占有っぷりからすると、 DMAも止められちゃうんじゃないかなー。
>>375 PWMでLEDのダイナミック点灯って、どうやるの?
>>374 DMAってコアや割り込みとかの動作に関係なく動くもんじゃないの?
>>377 メモリ、バス、ポートなどが競合しなければ、ね。
でも、メモリやバスは競合するでしょう。
割り込みが止められるってことはさ、
ソフトウェアでタイミングにシビアな処理してるってことで、
DMAもタイミングを狂わす要因になりうるから、
止められてるかもしれないよー、っていう話。
>>376 ダイナミック点灯させる時普通は点灯させてる期間をPWMすればよいだけだと思う
PWMか ・・・ w
表示用にもう一個マイコンを持ってくるのが一番確実
ディスプレイコントローラーって呼ぼうや。
パソコンだってコア2つとか4つとか使うんだから マイコンなんか一つの仕事にプロセッサ一つ使ってやれ マルチタスクに成功しても自己満足にしかならん
385 :
774ワット発電中さん :2012/10/05(金) 23:18:41.28 ID:fnkpSxi9
だから PIC なんだってばさってばよー
PICを知らない通りすがりの意見かと
>>379 それはダイナミック点灯ではなくデューティ駆動だろ。
時々消えてる方がダイナミック点灯っぽくていい
> パソコンだってコア2つとか4つとか使うんだから > マイコンなんか一つの仕事にプロセッサ一つ使ってやれ マルチコア・ワンチップマイコンって、5年後ぐらいには常識になっていそう。 ・・・てか、なんか変なマイコンなかったっけ? 同じようなモジュールが複数入ってて、CPUにもペリフェラルにもいろいろ変更できるやつ。
プロペラだね
マルチコアならプロペラ、複数モジュールをモディファイできるならPSoCですね
>>389 CPU止めてDMA表示なんだよなTK-80も8001も8801も
テキストVRAMの読み出しがDMAで、 禁止すると高速化するしビープで鳴らす音が綺麗になった
お力を貸して下さい。 void InitializeSystem(void) { BYTE resp_data; ・・・ resp_data = EEPROM_Write(&resp_data,g_eeadr++,1); while(resp_data != 0x01) { Sleep2(10); PIN_LED0 = ~PIN_LED0; resp_data = MmcPolling(); EEPROM_Write(&resp_data,g_eeadr++,1); } PIN_LED0 = 1; //debug } void EEPROM_Write(BYTE* data,BYTE adr,BYTE length) { BYTE i; EECON1bits.EEPGD = 0; EECON1bits.CFGS = 0; EECON1bits.WREN = 1; INTCONbits.GIE = 0; for(i = 0;i < length;i++) { EEADR = adr + i; EEDATA = data[i]; EECON2 = 0x55; EECON2 = 0xAA; EECON1bits.WR = 1; while(EECON1bits.WR == 1){} } EECON1bits.WREN = 0; INTCONbits.GIE = 1; } というコードを書いております。PIC18F2550でSDカードの制御です。 InitializeSystem()のwhile文はMmcPolling()から0x01がこない限り抜け出さないはずですが、 そうではないのに何故か抜けてしまい、困っております。 実際のデータはEEPROM_WriteでEEPROMに書き込み知ることができますが、 帰ってきたデータは十数回の0x00の後に0xFFです。 こういうことが起きる可能性で考えられることがあれば教えて下さい。
すみません、InitializeSystem間違えました・・・ void InitializeSystem(void) { BYTE resp_data; ・・・ // CMD0送出 リセット resp_data = MmcCommand(0x40,0x00,0x00,0x00,0x00,0x95,FALSE); EEPROM_Write(&resp_data,g_eeadr++,1); while(resp_data != 0x01) { Sleep2(10); PIN_LED0 = ~PIN_LED0; resp_data = MmcPolling(); EEPROM_Write(&resp_data,g_eeadr++,1); } PIN_LED0 = 1; //debug } です、すみませんでした。MmcCommandやMmcPollingが0x01を返してないのに、 whileループを抜けます。
本当にwhileループを抜けてる? 途中でリセットされてInitializeSystemが再び呼び出されてる可能性ない?
>>397 PIN_LED0 = 1; //debug
が働くため、リセットの可能性は低いかと考えております。
秋月のオシロで調べたところ、たしかにI2CでSDカードから0x01が返っていることが確認できました。
http://uploda.cc/img/img5072d93184cc8.jpg I2Cの受信設定がおかしいことも疑いましたが、while文を抜けていることから
EEPROMへの書き込みがおかしい??割込みでメモリーが不意に書き換わる??
に原因があるのではないかと睨んでおります。
>>396 とりあえず、whileループを抜けた直後で、resp_dataの中身を
読んでみよう。話はそれから、
EUARTのピンは余ってないの? シリアルポートでprintfして、毎回の値をチェックしてみようよ。
シリアルで何でも書き出すデバッグは無敵だな
送信時、ダブルバッファとはいえ待ちが発生するから連続送信はほどほどに。かな。
スタック使いすぎてたりしてな。 試しにresp_dataなんかをグローバル領域に移してみたら?
EEPROM_Write()で復帰値が無いんじゃないの
>>404 396を見てなかった
気になる所としては、
EEDATA = data[i];の記載が変かな
いや、でも接触の問題で解決というのは明らかにおかしいですよね。 先はまだ長い・・・。はぁ・・
408 :
774ワット発電中さん :2012/10/09(火) 22:14:26.65 ID:ope1dmAK
アイテンドーが出してるpickit3互換機使ってる人いる?ちゃんと使える?
>>406 ですが、
手元にmicroSDカード(SDHCではない)が転がっていたので、
CMD0,CMD1,CMD16,CMD24のコンボで書き込みに成功しました。
やっぱりmicroSDHCカードは私にはレベルが高いようです・・。
物理レベルの読み書きが出来ても、 windowsで読めるようにファイルを書くのがまた大変で
ほう、良いことを聞いた。
>>406 ですが、SDHCもできてしまいました。。
CMD8で0x01を受けた後、4バイトの空読みで00,00,01,AAの受信が必要だと
いうことを知りませんでした。
これで解決しました。どうもお騒がせしました。
次はFATに挑戦します。
>>408 気にはなっているがまだ手に入れてないです。
ストラップでぶら下げられなそうなのがちょっと残念です。
書き込みに便乗して一つ質問なのですが、下記のスレットでDHT11(1-wire)についてPIC16F84Aで動かしている模様なのですが、
ttp://www.todopic.com.ar/foros/index.php?topic=35680.0 どうせなので、身近なPICで使おうと改造している最中に分からないことが出てきました。
下記は頭3行なのですが
#define dht11 PIN_B0
#bit dht_io = 0x86.0 // este es el bit 0 del tris b para ponerlo como entrada o salida
#byte puerto_b = 0x06
ここがよく分からないんです、
1行目はdht11と指定した場合のピンが何番になるかですよね?
ここまでは分かるのですが、これ以降の部分で悩んでいます。
2行目はDHT11とつながるピンの入出力を入れ替える為の命令文になるとおもうのですが、
PICを変えるたび、1行目で使用するピンを変えるたびにデータシートで該当命令のビットを探すのが面倒です…。
もう少し、融通の効く命令に書き換えられないのでしょうか?
また、3行目も何のためにアドレス指定しているのか分かりません。
どなたかお願いします。
命令文じゃなくてビット変数だな。 汎用性を持たせたいならTRIS_B0とかが使える記述にすればいいだけだろ。 具体的にどんな記述になるかはコンパイラとヘッダに依存するから知らん。 コンパイラのマニュアルでビット変数の使い方を調べてみろ。 3行目は使われてないぞ。
>>414 了解しました、わざわざ調べなくてもいい様な記述が出来るかどうか調べて見ます。
コンパイラはたぶん(コンパイル時に必要なヘッダファイルから)CCSCだと思いますので該当マニュアルで調べてみます。
三行目はコメントアウトして、様子を見ますね。
ありがとうございました。
ポート直のシリアルをPIC同士の送受信で20mほど伸ばしたいが可能だと思いますか? 速度は1200bps程度で充分。
やめたほうが幸せ。
>>416 せめてチャージポンプ内蔵のRS232ドライバ・レシーバICを介したほうがいいよ。
できればグラウンドを絶縁するためにフォトカプラ経由させたい。
12F1822とLEDを数十個作ってマスターからの指令で一灯毎に制御できるクリスマスツリーを 作ろうと思うのですがRS232Cドライバーとか入れると大きくなるのと値段が、、、
マスターの出力に全部ぶら下げて直結じゃなくて、 せめて、何箇所かリピーター(バッファ)を置くとか。 それをPIC自体にやらせてもいいけどソフト処理なので遅延が気になるね。
あ、勘違いしてたかも・・・? マスターのシリアルポートは各PIC用に1つずつあるのかな? でないと1灯ごとに制御できないよね だとしたらごめん
パラでもアドレス指定してコマンド送受信するようにすりゃ・・・ まぁ信頼性が求められないならディージーチェーンで。
送信側だけソフト処理にするとか細工して反転出力作ってツイストペア線で流せばいいよ
>>416 大丈夫じゃないかな? だめだったらフォトカプラ経由にすればいい。
425 :
774ワット発電中さん :2012/10/11(木) 11:28:31.09 ID:loTDOgrd
PIC12F1822達が受信onlyなら、2線に電源と信号を重畳するのはどうよ。 送信側は、シリアルの信号を(モーター駆動とかでおなじみの)Hブリッジに与えて、信号で電源をNRZ変調する。 受信側は、ダイオード1本で半波整流し適当なコンデンサに貯め、これを電源とする。 ダイオード1本で負電圧をカットし、適当なプルダウン抵抗をつけて、シリアル受信とする。 そして、電源の極性が反転している期間ではコンデンサの電荷だけで動かないといけないので、 その期間にはLEDを駆動しないとか、PICマイコンの消費電力を抑えるとか、ちょっと工夫が必要。 この方法だと、 信号ラインのインピーダンスは低いし、負極性まで引っ張るので閾値をしっかり越えるだろう。 問題は、 LEDたくさんぶら下げると、Hブリッジのドライブ能力が問われることや、ノイズ放出がヒドイことかな。
ダイオード4本つかって全波整流しちまえば楽だ。
ツリーが高さ20mあるということ?
>>428 20mは、ちょっと盛ってしまった。
点灯側は、部品も極力少なくしたいのでLEDの電流制限抵抗も無しでCPUへの供給電圧で調整とデューティ点灯で何とかなるかな?
と言うぐらいなのでタイオードもコンデンサーも出来れば入れたくない。
通信は受けるだけなので芋づる配線が理想。
送信方法は、全てのPICにIDを付けてコマンドの送信とブロードキャストコマンドで同期を取ろうかと考えています。
>>422 デイジーチェーンなら各距離が短いので大丈夫そうですね。同時点灯コマンドとかで送信の遅延の工夫が難しそう。
むしろ別々に組んで同期を考えずに 勝手に光らせたほうが自然じゃね?
>>430 それなら作らなくても買った方が安いかも。
電光表示の様な絵柄を出したり流れる点灯も出来たら良いなと思う。
1段の遅延時間が明らかなら、 最後尾にコマンドが届くタイミングまで待ってから、 コマンドで受けた内容をLED駆動に反映されたら、 一斉に動作しているように見えると思う。
人間のタイミングで操作しながら絵柄を出すならともかく、数パターンの繰り返しなら各パートごとの点灯パターン書いて 電源ONスタートのあとは自立点灯で進めてもなかなかズレないと思う。 もしズレたら一瞬電源入れなおせばいいし。それなら通信すら不要。
>>429 装置内の基板間通信(50センチほど)にバッファも付けずにSPIを使ったが
ビットレート最低にして、ソフトウエアでエラー処理入れて、シールド線使って
ようやく安定した。
PIC外の事をここで聞いてもろくな情報出てこないと思うぞ。
>>429 アマチュア的発想だが、終端のインピーダンスを下げて
送信側のドライブ電流をデカくしたらのノイズに強くなるんじゃ
ないかな。ケーブルの反射とか難しいことは知らんが、シリアル
データをソフト処理で受けるなら、ポートの状態を何度か見て
多数決をとってみるとか。
点灯制御だけなら、送信はマスタになってる1個だけで、 他の連中はハイインピーダンスで受信してるだけでいいだろうし。 端抵抗つけて10mAくらいのカレントループにでもしときゃ何とかなるだろ。
438 :
416 :2012/10/11(木) 23:25:40.22 ID:G41ZVFiR
みなさん色々なアイデアありがとうございました。 とにかく実験機を作ります。 1-Wireバスの通信は100mぐらい余裕みたいですね。 物理層だけでも同じように出来ないものかな?
>>438 去年から質問してるんだから、今年こそ完成させて報告しろよな
PICでUSBカメラ動かしている人とかいる? ゲームパッドとかマウスは何もせずにデータ読み取るだけで動いたけど、 カメラは初期化しないとダメみたいで、さっぱりわからん・・・。
441 :
416 :2012/10/12(金) 14:43:28.19 ID:xmaqEWq5
>>439 俺のこと言ってるのか?
知らないし、お前キモイ
まぁ似た様なテーマに取り組む人もいるだろうから、年をまたいで再登場ってのもありそうだけどね
態度の悪い質問者だということは分かった
>>441 別人か。去年も PIC でクリスマスツリーの LED 制御を
やりたいという殆ど同じテーマの質問があってだな、
結果報告すると書いてそれっきりだったので、また今年
も思い出したように質問から始めたのかと思っただよ。
>>440 カメラはちょっと前からマスストレージみたいに
ドライバレスのUSBビデオクラスだかに対応してるから
linuxのカーネルモジュールのソースでも見ればたぶん判る
それより古いのは一個一個ドライバが違ってて面倒
まあこれもlinuxのソースがあればそれで
12F1822ってスリープでも結構電流あるんだな。 ボタン電池駆動ならやっぱり12F629がいいのかなぁ。LFは簡単に買えないし。
PIC16F1823で試した範囲内で言うと、 TSEN=0 FVREN=0 ADON=0 あたりは試してみる価値あり。 DACを使っているなら、データシートにあるように設定して、抵抗に流れる電流を抑制するとか。
テスターで十分実験できる範囲だしな
情報ありがとう ボタン2つの赤外線リモコン送信機を作ったんだが、Sleep時30uAくらい流れていた(安物テスターなので多少誤差あり)。 作ったあとで知ったんだがカタログ値で22uA。 ご指摘の設定試してみます。 でも12F629は1nAらしいので2万倍長持ちするというか、電池の自己放電より小さいかも。 新しいチップのほうが全部優れてるというわけでは無いみたい。
>>447 測定誤差かもしれないけれど、3点変更したら24uAになった(6uAダウン)。
12F1822の仕様書だとVDD=3Vで0.03uAとなってる。 周辺で生きているのが有るんじゃない?
節子、それ12F1822やない。12LF1822や。
ほんまや、にいちゃん。 うち、視力ビチャビチャやねん。
横文字が苦手なんだがMPLAB X IDEの日本語化パッチってある?
縦書き化するのは難易度高い
すみません、よくわからないので教えてください。 PICの出力ピンと、他のICの入力ピンを接続します。(PICと他ICの電源は同一) このICの入力ピンは、内部でプルアップされているとのことです。 こういった場合、直に接続するのではなく、間に抵抗(470Ωくらい?)を入れるべきですか?
>>456 いらないよ
内部プルアップって数10kオーダでしょ
18F2550でUSBやってるんですが、USBRAMとして1Kbyte持っていかれてしまうんですか? 同時にSDカードの書き込みをする関係でその他にも1024byte必要で、 メモリが足りません。 DATABANK NAME=usb4 START=0x400 END=0x4FF PROTECTED DATABANK NAME=usb5 START=0x500 END=0x5FF PROTECTED DATABANK NAME=gpr6 START=0x600 END=0x7FF と、usb6,7を上書きしたのですが、問題ありませんでしょうか。
makeして変数の配置見て空いてるか確認するのが確実 実装するクラスによるけどマスストレージなら512byte以下にできるから SDカード用のバッファ512byteはusb6,7に配置できるはず
mapファイルに色々書かれるのですね。調べた結果 BDT 0x000400 SetupPkt 0x000430 CtrlTrfData 0x000438 cdc_notice 0x000500 cdc_data_rx 0x00050a cdc_data_tx 0x00052a line_coding 0x00054a usb4(0x400)より上はこれしか使われていませんでした。 どうやら使えそうです!ありがとうございました。
>>457 ありがとうございます。必要ないんですね。
抵抗入れようと思ってたので、部品点数も手数も減って助かった〜。
実験中は抵抗入れておくと便利だよ GNDに落として入力切ったり他の出力を強制的に入れたり出力にしてLED光らせたりできる
実験中なら抵抗の有無とかどうでもよくブレッドボードで好きなようにできる
ブレッドボードでミスって短絡させた時のために、とりあえず1kΩを介して繋ぐようにしてる。 ま、PICの出力インピーダンスはあまり低くないんで、電源電圧が3.3Vなら、 出力を短絡させたところで絶対定格を越える電流が流れないような気もするが。
ずいぶん臆病だな。データシートよく読めよ。
そこまで気にするなら、むしろ初期設定が終わるまで状態が不定になってるの を嫌うやつの方がいそうだな。俺は気にしないけど。
>>464 >ブレッドボードでミスって短絡させた時のために
そこまで言うぐらいだから抵抗の出力ポート側リードはごく短く切ってつないでるんだよね?
出力 -----R-------入力
↑
ココが短絡すれば抵抗入れない場合と同じ事だし
ってか、被服線でジャンパすれば
出力 -============- 入力
↑ ↑
両端のごくわずかな部分を除いて短絡する可能性は無いんだから
下手に抵抗使うより短絡の危険性は低いと思うが
468 :
416 :2012/10/15(月) 08:41:09.36 ID:e2wRGWi6
>>467 何か作ったことあるの?
局所的な短絡事故の予防にしかならない事を力説されてもなー。
ブレッドボードで作ろうとしているのはマイコンの出力を受ける装置であって配線ミスや設計ミスは装置側で起こるのだよ。マイコントとの接続部分の偶発的短絡なんか考えなくて良いしブレッドボードのピン付の線で裸線なんか有るのか?
469 :
774ワット発電中さん :2012/10/15(月) 10:59:42.36 ID:2honlHek
ブレッドボードなんて使ったことない。 LEDチカ程度のオモチャならともかく、あんな不安定な代物、基礎実験にも使いたくない。 部品の使い回ししたい貧乏人は知らん。
>>467 誤接続ね。
接近したリード同士が接触するなんてアホすぎる。
>>469 いちいち半田付けしてたら時間かかってしょうがないじゃん。
とりあえずブレッドボードで確認してから基板に組むほうがいい。
もちろんブレッドボードは微弱な電流しか流せないんで、
電流が流れる部分は初手から基板に組まざるをえないが。
確かに 使いこなせない人間にとっては不安定きわまりない厄介物だよな。 使いこなせない人間にとっては。
ブレッドボードなかったら電子工作なんてやってなかったかも
そういうレベルの人が増えてきたせいか、トラ技もターゲット層をそこまで落としてきたよな 今月のは中学の技術の教科書かと思ったわい
んー結局そういう閉鎖的なじじいどものメシ種だったんだよな ブレッドボード広まるそれまでは 崩壊してよかったよね
476 :
774ワット発電中さん :2012/10/15(月) 13:43:56.10 ID:2honlHek
>>471 ブレッドボードで組める程度のものなんて半田付けしたってたいした時間はかからない。
微弱な電流しか流せないんじゃなくて、微弱な電流も、だろ?
1mA以下、1A以上、1MHz以上、100ネット以上のどれもまともに使えない。
結局、中学生の工作以上には使えないってこと。
まぁ大学新卒の、電子工作できます!ってやつが昔の中学生程度だから仕方がない。
アセじじいはC言語もそういう調子でこき下ろしてたなあ まだ息してんのかな
こき下ろすし自慢するけど、具体例の一切でてこない人?
>>476 ブレッドボードだと数分なのに、基板だと何時間もかかるのは、俺が不器用だからか。
高周波とかシビアな回路には向かないかも知れないけど、部品を取っ替え引っ替え試すような実験にはすごく便利だよね。
高周波とかシビアな回路でもなきゃいちいち実験なんかしない。 初手から基板起こしてそれで終わりだけど。
>>476 1WLEDのテストは余裕でできたよ。約350mAかな。
もちろんPICで直接じゃないよ。FET駆動だよ。
>>482 そういうことすると接点がユルユルになったり酸化膜が付いたりしてだな・・・。
>>481 過去の回路を使いまわしてるだけの人ですねわかります。
道具なんだから目的に合わせて使えば良いだけの話。 「ブレッドボードなんか使い物にならない」「ブレッドボード万能」 どちらとも間違えだと思うがな。
「間違え」は間違いだと思うがな
>>479 そのとおり。
君に限らずね。
トラ技が、ブレッドボード使用で記事を組み、
ついに「半田付けに挑戦しよう」と書かれた日には、
驚いた。
初心者の人は、ブレッドボードが適してると思う
その程度か、つまらんな。
>>488 つまり、いつまでもブレッドボード使ってる人とか、ブレッドボード最強とか言ってる人は、
万 年 初 心 者
でOK?
今月のトラ技の内容がひどい。
そんなことよりPIC焼こうぜ。
494 :
440 :2012/10/15(月) 21:00:25.47 ID:2AYTNZvW
>>445 ありがとうございます。
LinuxのUVCドライバのソースとmbedで実装していた人のソースと本家の仕様書読んだら理解できました!
>>479 Arduino使ってシールド合体させれば、手間がかからなくて良いぞ
平成生まれのゆとりしか許されない晩年初心者の方法だけどw
昔、上司に頼まれてCPUと周辺とメモリを手配線してデバッグボード何回か作ったが、 半田付け嫌いじゃないけど、さすがにもう作りたくないなw
>>496 それ、ちょっとどっかの線が外れてデバッグボードをデバッグする羽目になりやすくて嫌だw
さくっとパターン書いてなじみの基板屋に出せばすぐに上がってくるからそのほうが結果的に楽だ
その点ワイヤーラッピングは信頼性があったな。 入社1ヶ月の新人に1Mバイトのメモリーボードやらせたけど、 その後量産試作があがるまでキチンと動いていた。
ワイヤーラッピング用のジュンフロン線で配線すると最悪だった ポリウレタン線のほうが10倍は優れている
ポリウレタン線の被膜が十分に剥がれず天ぷらになって以来・・・
ジュンフロン線のカントン包茎化現象に比べればかわいいものだよ!
下手自慢競争ですか
やっぱ剥いて使うのが安心
ワイヤラッピングはポスト側に工夫があって、 あれの角が尖ってるから、酸化膜を破ってコンタクトしてくれる
PICスレに必要な話題かな?
能書き自慢
>>499 ポリウレタンは、加水分解するから線の寿命は製造から3から5年
ぜんぜんちがうしw もうやめようよそのはなし
僕は、PIC16C84というやつで、PICを始めました。
私もです
俺も。 EEPROMという点でPIC16C84を選んでた。
最初に触れたPICは12C509だったかな まあ、mod-chipなんですけどね
オレは1822から始めました
84 877 887 AVRの王道の系譜を歩みました
どうせなら PIC1650で始めた人とかいないの? 現物の画像とか見てみたいけどネット探しても見つけられない
16C84からだな トラ技95年12月号の特集から周りで流行りだした。
今16F268Aの書き込みに成功した 大電流が必要でUSBをハブ無しにしてもダメで PICerFTは要らないって書いてあったが結局外部電源が必要だった
16F628AをPICerFTで使ってるけど、書き込み時の電源は、USBからしかとってない
トラ技で紹介され、秋月で売られたのがよかった。 あ〜、日本は、いい国だなぁ。
12F1822より12F615のほうがsleep電流が少ないらしいから移植してみたら、 コンパレータの消費が大きいので結局電流は増えてしまったよ。
>>518 あらそうなの
ジャンパの組み合わせを色々試してみたが全部ダメだった
PICerFTの組み間違いかPCのUSBがヘタレなんかどっちかかもね
PIC以外の回路が電力を消費しているとか、そういうオチは?
>>522 その可能性が無くなるようチップ単体に電源のみ繋いで測った
コンパレータを切れば1uA以下になる
>>521 GND以外はジャンパで切り離しにして書き込みしているけど、
何故かPGMをGNDにしないと、かけない事が何度かあった
殆どはしなくても書ける、あれだけが謎かな>16F6x8A
>>524 ご名答です
PGMを忘れてました
マニュアルに1ピン2ピンって書いてなかったから
別のサイトを参考にしてたのが間違いの始まりでした
>>525 一回でもコンフィギュレーションレジスタ書き換えるとかけたりするのよね〜。
理由が解らなくて「そういうもの?」で済ませてしまった。
どなたか理由をご存知の方、お教え願いますか?
EEPROM Memory Programming Specificationに書いてあるけど・・・
>>527 ありがとう、2ページ目にいきなり書いてあった。感謝多謝!
Low voltage ICSP programming input if LVP configuration bit equals 1
PIC16から始めて コンパイラが無くて、 アセンブラでゴリゴリやって C言語イラネーとか思って いつの間にかフリーのC言語が世に出ても AVRでC言語が使えても 今までの16Fで出来ない事は俺には出来ねぇとなって 24FやdsPICが出て、 C言語ワカラねえから16Fでアセンブラ使って PIC32とか格安で売り出しても 16Fのアセンブラしかワカラねえから 16bitや32bitのPIC質問がレスされても ほーーーん、、、、、なんかスゲエんやねぇと思ってスルーして 16Fの質問には、罵倒で書き込んで データシート嫁!と偉そうに書き込んで でも、世の流れは32bitに移行してて これじゃアカンと思って、コンパイラがIDE導入で同時にインストールされる ATMELに手を出そうとしている 俺様が通りますよー
早く通り過ぎて
そろそろ折り返す頃
できるだけハードが簡単で、できるだけ部品代が安く済む、 音が出るPICオモチャの製作記事を知りませんか?
オルゴールなかったっけ?
一瞬の閃光と乾いた破裂音を発する自爆君とかどうかな。
535 :
774ワット発電中さん :2012/10/21(日) 20:23:53.38 ID:S59A7zrX
部品代、安く済むか?
漏れも16F+232Cだけだ せめて18F+USBに昇格したい
RS232Cのドライバ・レシーバを内蔵したPICがあったら面白いのにね。
>>536 18F+USBがフリーのCで簡単にできるといいんだけど、
ちょっと面倒くさい。
1976年って事?相当昔だなあ と思うけどアップルコンピュータが設立されたのがその年と考えると そんなに古くもないと思えてくる 当時1個いくらしたんだろうな
541 :
774ワット発電中さん :2012/10/22(月) 00:57:45.24 ID:vBaJpfuV
未だにシミュレータも使わず、デバッガも使わず、 ROMに焼いて試して、RS232、LED、オシロでデバッグしてるのは、 この世に俺一人ってか。 あははははは。
少なくとももう1人いる
884 名前: 774ワット発電中さん [sage] 投稿日: 2012/10/21(日) 01:55:35.38 ID:XBmzawjr おじいちゃん、お眠の時間ですよ。 早く薬飲んで寝て下さいね。
544 :
539 :2012/10/22(月) 01:38:16.96 ID:ijTYmPjf
>540 値段はどうだったんでしょうね? 最初のPIC 1650は画像すら検索しても全然見つからない。 1970年代(>2参照)はマイコンの黎明期といった感じでしょうか 1971 4004 1974 8080 6800 1975 6502 1976 Z80 ●8048 ●PIC1650 1977 (AppleII) 1978 8086 1979 68000 1980 ●8051
Z80から8086までは2年しか無いんだな PC-9801にも4年後の1982年に乗ってる そのへんの数年間の各種パソコンの乱立期が面白かった
>>537 変換基板の方が汎用で何かと便利。接続も電源、GND、TX/RXだけだし。市販でUSB-TTL変換ケーブルなんてのもある。
変換基板を購入してもいいけど、DSUB9pin/25pin変換コネクタ用のケース(秋月)で自作するのも良いかと。
548 :
774ワット発電中さん :2012/10/22(月) 09:28:49.55 ID:lyxujYA1
俺はSORDのパソコンを買ったな。
549 :
774ワット発電中さん :2012/10/22(月) 09:58:47.29 ID:wd2eKB8i
>544 日立、三菱、NEC、松下、東芝・・・と日本の電機メーカーも オリジナルやセカンドソースのCPUを作っていた。 あの頃は夢も希望もあったのに。 日本の未来は前途洋々だと思っていたのに、ルネサスもどうなる事やら。
>>541 俺は LED 1 だけでデバッグしてるぜ。
LED の点滅の仕方でレジスタの値だって読み取れるんだぜ。
なあ、ワイルドだろ。
光だと細かいタイミングが読めないから俺はBeepデバッグ
指先でチップの温度で確認ダゼ
シリアルでデバッグ情報を出すのは嫌なの?
555
ロートルどもの石頭自慢かはたまたシリアルどころか全port使い切る変態技術者の集いかはわからんがまあ、めんどくさいだけだろ。
>>554 シリアルの速度に、実行速度が縛られるのが嫌だな。
>>557 通信速度とはき出すバイト数次第かな。
やるとすれば、俺なら9600bps/1ms/1byteのルールでやると思う。文字列はやらない。
僕は、230kbpsでターミナルに出力してる
ピン数は食うけど非同期ではなく同期にすれば速度あげられる?
すみません、教えてください。 PIC16F886ですけど、Vss端子が2つあります。 2つともVssに接続しないとダメですか? どちらか1つだけでよければ、配線の都合上スゴく楽なんですけど…。
>>560 同期の方が速度を上げるのは容易だけど相手装置がネック
PCでは無理だし、専用の装置を作ったとしてもスレーブ側になる方は処理時間の課題もあるよ
>>556 若いくせにロートルより発想が貧困なのがイパーイだけどな。
565 :
556 :2012/10/22(月) 22:54:44.16 ID:XxfxH9o1
>>561 PIC本体の8ピンと19ピンを適当な導線で繋いどきゃいいw
>>561 >>配線の都合上スゴく楽なんですけど…
Vssに接続する必要を考える前に、手動かせ
アタマはパープリンなんだから、考えても無駄
君の別にいいかなぁ?なんて考えは100%間違っていると思え
その程度の配線を面倒臭がるようだったら、やめちまえ。 その方が皆が迷惑しないで済む。
PICとは関係ないのですが、SDHCカードのライトやっておりまして、 CMD24で一度目は書き込みできるのですが、二回目の書き込み時の CMD24で失敗します。戻る値は0x09です。 書き込みサイズは512で、最後に適当なチェックサムの代わり2byteも しっかりおくってます。 0x00が帰ってくるまで待っているので、一度目は全く失敗していません。 一体何が原因かさっぱりわからずこまってます。 解決案お持ちの方教えていただけませんでしょうか。
>>561 >配線の都合上楽なのです
とはどんな都合なんだろうか?
手配線で電線一本の両端を半田する都合なのだろうか
それとも、PCBの配線パターンでの事だろうか
どっちにしても、一番重要な電源ラインを都合で
無くそうとする概念は
動けばOKという上から来る考えなのだろう
提出すれば完了みたいな、学生の宿題ぽい思考だな
趣味なら自分の作る創作物に時間を費やす事を惜しまないはず
仕事ならありえねえ
学生ならバカ息子に学費を払っている親が可哀相
ちゃんと教えてやれよ
可哀想だろよ
>>561 君の鼻には呼吸用の穴が二つあるだろ?
どちらか1つだけでよければ、生活の都合上スゴく楽なんですけど…。
ならば片方を塞いで生活すればいいんじゃねぇの?
っていうこと
ちゃんと教えようにも、ちゃんと知らないからむり
あんなもんは片方でいいんだよ ICの間を電源とGNDの2本を通して配線する流儀と、そうでない流儀の どちらにも対応できるように2箇所にしてある 電流量とかの都合で2箇所あるなら、電源も2箇所でないとおかしい
16F886データシートでコンパレータの項に「AVss」と書かれているのを見つけたら 無頓着ではいられないね。
575 :
774ワット発電中さん :2012/10/23(火) 10:27:18.62 ID:9F28ipZ7
二本あるGNDって、テスターで当たると、0Ωなんだろうか? それとも、シリコンチップ上の、「GNDにつないで欲しい異なる二点」なんだろうか。
GNDが1本しかないPICのADCは悲惨だぜ〜。
ADCの結果に周期的にオフセットが付くんで原因を調べたら、
シンクで点灯させてるLEDと同期しててさ、ソースに変えて済ませた。
>>573 んなこたーない。
2本つないだら変にループしたりすることあるんかね?
どうせ趣味なんだから好きにしろ。 それでトラブルが起きても自己責任。 以上
>>576 それは、取り回しが悪いだけじゃん。
GNDが2本あると、そうならないか? やっぱり起こるでしょ
>>579 それがGNDピンの電位は上がってないのよ。
ICのリードフレームとダイの間のワイヤか、ダイの中の配線だと思うが。
高精度を求めるならPICで直接LEDをドライブしたりしないだろ
慣例的にデジトラやバッファ入れてしまうな
>>581 ソースなら問題なし。
高精度もなにもPICのADCなんて10ビットだし、もともと大した精度はない。
ちなみに具体的な数字は忘れたが、LEDをシンクで点灯させると、かなりのオフセットが付いたよ。
マイコン内蔵のADCでそれなりに高精度に計測しようとすれば、 プログラムにも工夫が必要なのさ。
>>580 2本ある GND ピンの片方だけを GND に接続し、オープン側
の GND ピンと(AC成分も含めて)全く電位差が無いならオー
プンの側の GND ピンを GND に接続する必要はない筈だが。
>>587 最近は電位差が全く無いところに電線をつなぐと電流が流れるようになったのか?
>>588 その前提条件、電位差が無い、が間違っているって気付け。
1pin当たりに流せる電流容量に限りがあるんだよ。
随分ハイパワーなPICだな…
ところでPIC16F1823のデータシート
ttp://ww1.microchip.com/downloads/en/DeviceDoc/41413C.pdf EQUATION 16-1が変更されたっていうんだけど・・・いいのか? これで。
上にはTacq = 2us + TC + ・・・
ってあるのに、
Therefore:では5us + ・・・になってる。
データシートの前のリビジョンではそこは2usになってたので、5usが正しいのだろうな。
で、上のところのは変更し忘れた、と。
で、Choldの値が10pFから13.5pFに変更されているが、FIGURE 16-4では10pFのままだぞ、と。
>>591 シロートのオレにわかるように書いて欲しい
593 :
774ワット発電中さん :2012/10/24(水) 06:52:30.80 ID:LE5KBzn5
>>589 電位差ゼロと言ってることに、早く気付け
>>593 超伝導でもないんだから、それが成り立つのは消費電流がゼロの時だけ。
あぁ、電源が切れてるときか。そりゃあ大丈夫だわ。
1ピンでは電流量的にきついなら、 GNDだけじゃなくて電源側も増やさないと駄目だろ
電流容量だってよw しかも、ヒントとか言ってるしw なんだよヒントってwww ヒント「電流容量は間違いだ!アホ」
597 :
774ワット発電中さん :2012/10/24(水) 09:42:25.15 ID:LE5KBzn5
同感。 その通りだよね。 ポートのI/O電流も流れるから、という理屈だと思うけどね。 二本のGND端子が、チップ上の同じ点から、 まったくパラで出ているのか、異なる点から来るものかが、興味がある
ワイヤボンディングのパッドが隣同士なのか、離れてるのかという意味ならば、 ピン配置から考えて、ほぼ正反対のパッドを使ってる筈 パッド同士はそれなりに太いパターンで繋がってるだろうから、 インピーダンスを外部的に下げるような必要は無いし、回路の安定にも影響しない 互換性とか利便性とか余ってるからとか、そんな理由で二つあるだけで、 片方は放置で構わないと思う
ハズカシ
いくら論じても個人の予想でしょ
電源ピンが複数あるのは、利便性とか互換性とか余っているからだったのか。 「システムのノイズ耐性を少しでもあげたい」と常に考えている人には 「目からウロコ」が3枚くらい落ちる発想だな。
ルネサスなんかだと電源ピンは必ず全部接続する様に書いてあるね。 PICは繋がなくてもいいのか、なるほど勉強になった。
PIC16F88x Data Sheetから >Absolute Maximum Ratings >Maximum current out of VSS pin ... 95 mA 1ピンあたり10mAも吸い込むI/Oが10ピンもあれば、絶対最大定格を超えちゃいますよね? Vssが複数あれば多い日も安心。 他の理由もあるかも知れませんが、電流容量って言うのも一つの答でしょ。
誰一人として決定打を出せないまま憶測ばかり増えていく
教えてあげないよ、じゃん! ってことで終わりかな?
606 :
774ワット発電中さん :2012/10/25(木) 00:13:29.86 ID:NOa6Uay7
意地の悪いことせずに、 GNDと表記されたピンは、全部GNDにつないであげればいいと思う。
>>595 VILはVIHよりマージンが少ないけどね
608 :
774ワット発電中さん :2012/10/25(木) 10:05:34.72 ID:NOa6Uay7
いまだに、TTLを引きずってるのか?
そもそも、ピンに電流はかなり流せるぞ ワイヤーで制限されてるなら複数張ればいい 実際には内部の素子の問題で制限されていて、 それはピンを増やしたところでどうなるものでもない
なんか一般論や独自解釈ばかりで、 PIC16F886のVssがどうなのかを答えられる人間は皆無ということだね。
質問です。 MPLAB IDEを使っています。 ソースファイルの作成方法 Cコンパイル方法 PICへの書き込み方法 が全く分かりません・・・ 素人ではなくド素人なので コンパイラの名前すらよく分かりません・・・ たぶん「Microchip C18 Toolsuite」というのがコンパイラだとは思うのですが・・・ ネットでいろいろ調べたのですがさっぱり分かりません どうか教えてください
で、質問内容は?
質問内容は ・ソースファイルの作成方法(C言語は分かります) ・コンパイル方法 ・PICへの書き込み方法 です。 ド素人で申し訳ありません・・・
調べ足りないか脳味噌が足りないかのどっちか
618 :
774ワット発電中さん :2012/10/25(木) 13:05:34.48 ID:sDEK+AR+
>>615 ソースファイルの作成方法
MPLAB IDEを起動→ProjectメニューからProject Wizardを
選んで画面に従ってプロジェクトを作成。
ソースファイルはエディター等でxx.cを作成しておく。
Source Filesを右クリックし作成しておいたソースファイルを追加。
コンパイル方法
makeかBuild ALLのアイコンをクリック(メニューからでもOK)
PICへの書き込み
Pickit3等の書き込みツールを用意する。
ProgrammerメニューからPickit3を選択
Programアイコンで書き込み
*とりあえず書籍等を買って読んだ方がいいよ。
>>616 脳みそが足りないのは自覚してます
>>617 MPLAB X IDE
ではなくMPLAB IDEなのですが、操作方法は同じなのでしょうか?
>>618 ソースファイルは予め用意しておくということですが
MPLABでソースファイルは書けないのでしょうか?
書籍調べてみます。
これからはじめるのになぜ古いほうを使うのだろう 何かの本に沿って学習するならわかるけど
こういう掲示板で、手取り足取り教えてください、ってのは無理がある。
PICも古いのじゃなくて PIC24FとかPIC32MXと書かれる方から始めた方がいい PIC18F以下は今更覚える意味がない
「覚える」とかいう時点で向いてないよ。 PICなんて1日もありゃ使えるようになる。
CPUというかコンピューターの基本が判って、 ちゃんとマイコンの仕組みを理解していて、 トリッキーな事を考えなければ即使えるよ。 学習とか覚えるとかいうのはPICを使う前の段階だな。
「MPLAB IDE 使い方」で検索すれば即座に親切な解説ページが出て来るというのに…。
うるせーよ 課題に出たけど調べるのめんどくせえから おまえらキモオタにやらせて楽しようと思っただけだよ ガタガタうるせえ図に乗るんじゃねえ さっさと教えろ みたいな感じかな? 今の気持ち。
つい先日までアホな議論してた奴らが何言ってんだ…
Arduinoスレが平成生まれのゆとりで、 このスレが、引退寸前の老いぼれで埋まっていることだけはわかった。 ずっとPIC16F84や877使ってればよいじゃんw まぁ、24以降のが使えない輩のせいで、 「PIC=16Fのイメージ=複雑な処理が出来ない」 って言うレッテルが貼られているのだろうけどw
天然ボケじゃなくて、NXPの工作員が張り付いて稚拙な流れになっている可能性もあるけど。 やたらDIPのARMが騒がれているから、PIC32や24と対立するのはわからなく無い。
>>628 教わったことから一歩も踏み出せないのは、最近の傾向じゃね?
引退寸前の老いぼれは過去に色々なものを弄ってるから、むしろ柔軟かもな。
4004の誕生も、MIPSの登場もリアルタイムで見てきた世代だし、
資料もロクに無い中(ネットなんて無いし)、自分で回路設計して、
ハンドアセンブルでプログラム作ったり、アセンブラやコンパイラも
自作したりしたんだし。
猿真似日本 と言われた時代の人はそうかもな。 言い方変えれば、応用力がある 工夫が出来る とか言うし。 老若男女皆楽しめるPICだといいな
メーカーが古いCPUのサポートを打ち切った時、 老いぼれは自分で工夫して何とかするけど、 若造はこれ以上は不可能ですと客先に宣告する。 ま、もう10〜20年すれば、若造も今の小中学生に 「くたばれジジィ」とか言われるようになるだろし、 その頃は、今の老いぼれは若造が罵倒したようにくたばっているだろうし。 前略...諸行無常の響き有り...中略...ただ春の夢のごとし...後略 ってとこだな。
こんなに科学技術が進歩した時代はない 新しい技術が次々と生まれ社会が変革していく その様子を観察できた自分はなんてラッキーなんだろう と、それぞれの時代の人は思ってるんだろうか
産業革命以降の加速する発展のほどは、たしかにその時代の変移を楽しめるが、やはり「もっと先を見てみたい」と思うのも人の常。
死んだあとも、透明人間(?)のように、 ずっと見ていられるのではないだろうか?
>>630 スレチだが、漏れよりオッサンのソフト屋さんがZ80のマシン語のリストを
新聞でも読む様にスラスラ読んだのには感心したw
ハンドアセンブルとかそれに近い事をやったオブジェクトなら当然だろうな。 コンパイラソースのオブジェクトを解読出来たら神。
PIC18Fの拡張命令セット(Extended Instruction Set)の対応しているのってどの辺でしょうか? ざっと見たところ PIC18Fxxx → PIC18Fxxxx と数値が4桁に変わった以降のようですけど 18FになるとC言語で書くことが多いためか拡張命令セットの話題って少ないですよね。 FSR2でのリンクフレーム形成や定数PUSHなんかの便利な命令や FSR2限定とはいえディスプレイスメント付きレジスタ間接の演算ができるって凄く便利そう ディスプレイスメント付きレジスタ間接の移動はPIC24やAVRでもあるけど、演算はほとんど無いのでは?
16進状態で解読してた、という意味だと思ってた アセンブルリストなら読めるように書いてあるんだから、読めて当然のような エキスパートになると、紙テープでも読める
ウルトラ警備隊に入ると読めるようになるものだと思っていた事がありました<紙テープ
>>640 いいやインテルヘキサを読むんだよ。
ICEが使える環境なら逆アセンブルを見てラインアセンブラでデバッグとかは普通にやれるけど。
ROMライター一丁でデバッグする神が居たんだ。
当然コーディングした当人が、だけどね。
TK-80のIPLは丸暗記だよな
>>637 昔は、メモリーダンプやメモリーチェンジ、
ブレーク替わりのソフト割り込みルーチン
ぐらいしか機能の無いミニモニターでデバッグ
していたので自然にマシン語を覚えたらしい。
昔のシャープのポケコンのマシン語プログラム書くときは
アセンブラなんて物が無かったからハンドアセンブルでやってた。
慣れてくるとプログラム書く時、頭の中にではーモニックではなくHEXで考えてたな。
しばらくして有志が簡易アセンブラを作ったとはいえ、
ジャンプアドレスの計算のみでプログラムはHEX表記のみだった。
PICもハンドアセンブルで鍛えれば、
>>1 のようにHEX読めると思うよ。
俺はやらんけど。
>>642 俺はやってない世代だが、
先輩たちは、
ワンタイムPROMにパッチを当てる
という技術を持ってたそうな。
>>647 ワンタイムでもビットを落とすことは可能なのでNOPのコードがゼロのCPUなら何とかなる
>>639 Cコンパイラに任せて拡張命令を使ってます
XC8はまだ拡張命令に対応してないので、MPLABC18の使用継続中
OSの移植をしていた時、ディスク上のカーネルバイナリファイルを直接編集してデバッグした
加齢臭充満w
>>651 臭いという奴が一番臭い。
あなたがこのスレの最高齢かもな。
平成生まれのゆとりだと、少し優秀な学生でもわからない流れだな。
加齢臭と聞くとすぐ反応
アセンブラ使いなんて、ジジイしか連想しないw
日本の半導体メーカーで40歳以上の人なら、 任天堂には何か思い入れがあったりするかな。
74LS244
659 :
639 :2012/10/27(土) 01:44:19.85 ID:XI2st15T
>649 C18だと試用期間の60日過ぎると最適化が無効になってPIC18の拡張命令を 使わなくなると読んだけど、使えるんですか? 拡張命令使えると、FSR2にローカル変数作りやすくて便利。ループ用のカウンタなんか Wレジスタ破壊せずに作れるし PUSHL 100 LOOP1: PUSHL 200 LOOP2: DECFSZ [1],f ; GOTO LOOP2 ADDFSR 2,1 DECFSZ [1],f GOTO LOOP1 ADDFSR 2,1
>>659 たしかに、よく読んでみると使えないみたいだ。
…エミットされるコードを眺めていなかった俺が悪いんですね
>661 良い記事ありがと、PIC18FでGCCか。2009年11月 未完で更新途絶えたちゃったのは残念。 ディスプレイスメント付きレジスタ間接演算のオフセット値が0〜95の+側しかアクセス出来ない仕様で 定数PUSHのPUSHLがポストデクリメントな仕様を考えたら、FSR2のスタックはマイナス側に伸びていき 現在FSR2が示すアドレスは空というのが効率的と思うけどC18は違うとは、なんかもったいないな スタックの伸びる方向(-/+) , FSR2が示すアドレス(空/満) -/空 -/満 +/空 +/満 INDF ○ × × ○ PREDECが無いので ディスプレ ○ ○ × × オフセットが+側限定 PUSHL ○ × × × 動作がPOSTDEC FSR/LNK ○ ○ ○ ○ SUBFSR&ADDULNKとADDFSR&SUBULNKどっちもある
gccが無くても困らないから誰も作ってくれない、というだけなのでは
こういうのは必要だと思った人が作る、だからなー。 作るよりも商用コンパイラを買ってきたほうが楽だよね。 まぁRMSのように政治的な目的があれば話は別だが。
まさかgcc借りといて制限掛けるなんて思わなかったよ ひどいことするなあ
666 :
774ワット発電中さん :2012/10/27(土) 15:54:45.09 ID:1L5kdYjn
なんか PIC が 68k 化しないかなーって願望持ってるだけに見える
x68kって加齢臭ムンムンのキモヲタのおっさんの象徴だよね。 Xが付かない方の組み込み実務者でも、それだけしか使えないのであれば、 新しい物を使えず、憶える努力すらしない老人というイメージ
まぁ、自分でそんなイメージを持つのも自由だけど、 >667が新しい物だと思ってるものが、実はその方々の成果物だったりする ことも多々あるという現実をお忘れなく。
最先端の技術者がやってるのは、いちばん外側の薄皮一枚部分だけで、 中身は全部古い時代からのパクリだしな
2550は好きだけど、14K50はなんか嫌
今14K50 をUSB経由でPCと接続してるんだけど、 PC側のソフト開発でお勧めの物ってなんかない? フリーウェアでネットにつながなくても使えるやつがいいんだけど。 とりあえずHSPがお手軽みたいなので使ってみたけど、なんかビミョー。
Visual C# Expressでいいんじゃない ユーザー登録でネット接続必要だけど1回だけ(確か)だし MS製バカ向け言語と言われてるだけあって俺でもスイスイアプリ作れるし。
あえてのjava
>>673 スイスイアプリが組めない言語って言語仕様の欠陥かプラットホームとの相性が悪い。
ライブラリが充実してない、ってのもあるぜ。 部品からちまちま自作したり、集めてくるのは一苦労だ。
VBかVBAでちょこっとしたの組むだけだな
Visualである必要を感じないんだよな お絵描きソフトを作るならともかく、 入力して処理して結果を得るだけなら、 テキストベースの方が楽だし使い回しも効く どんな馬鹿でも使えるソフトを作る必要がある人だけ使えばいい
>どんな馬鹿でも使えるソフト「で」作る必要がある人だけ使えばいい ArduinoやProcessingは平成っ子が大好きなツール
VCはどこがVisualなのかいまだにわからん
>>680 .rcをテキスト直打ちではなく、GUIで作れるところとか。
なるほど、テキスト主体と言われるとそういうのを連想するのか linuxとか知らない? unixなら聞いたことくらいあるかも
>>684 読み返して恥ずかしくならないようなら、この板にいないほうがいいかも。
私が初心者のせいかもしれないけど、 確かに「CPUボードの動作をちょっと確認したいだけなのに GUIは大げさでタルイなぁ」と感じる時がある。
GUI使わなくても、CUIでも同じくらいの手間で作れるだろ。 WindowsだろうがLinuxだろうがMacだろうができる。 君は作れないのかな?
つか、動作確認くらいだったら、単なるターミナルでいい。 そういや、PC-9801のリモートBASICプロトコルなんていうのも 便利だったっけね。
たとえばキーボードから入力した任意の文字列を STXやETX、BCCコードやCRCコードを付加してCPUボードに送信したい時。 WindowsでGUIよりも簡単に実現できるならオイラ作れるようになりたいっス。 (同じぐらいの手間ならそうでもない)
大規模なソフトだと、GUI部分を作る手間は誤差になってくるから、どっちでも同じ ちょっとしたソフトである程、GUIで作ると無意味な手間ばかり増える 1分で作れるような数行の使い捨てスクリプト、みたいな奴が 数的にはいちばん多く作るのに、それをGUIで作る人がいたら頭がおかしい
>>689 送信だけなら、それこそコマンドラインからのほうがうんと簡単だろうに。
たしか、auxかなにかでリダイレクトつかえたんじゃね?
692 :
PIC32MXの質問 :2012/10/29(月) 20:18:56.83 ID:V0DNGuwM
PIC32MX460F512L(OLIMEX)ボードでUARTのテストを行っています。
後閑 哲也の本のプログラム(書きページの使用例1 PIC32MX340F256H)
http://www.picfun.com/PIC32MX/PIC32Peri2frame.html で行ったところ、問題なくうまくいきました。
ところが、このプログラムのUART2をUART1に変更
変更内容(関数)
@OpenUART2()関数⇒OpenUART1()関数
AConfigIntUART2()関数⇒ConfigIntUART1()関数
Bvoid __ISR(32, ipl4) U2RXHandler(void){}
⇒void __ISR(24, ipl4) U1RXHandler(void){}
ベクトル番号を32から24に変更
CmU2RXClearIntFlag()関数 ⇒ mU1RXClearIntFlag()関数
DgetcUART2()関数 ⇒ getcUART1()関数
EputcUART2()関数 ⇒ putcUART1()関数
変更内容(ピン)
TRISF = 0x0010;// UART 0000 0000 0000 0100 F4 RX F5 TX
⇒ TRISF = 0x0004;// UART 0000 0000 0000 0100 F2 RX F8 TX
外部機器との通信線はPICのUART2のF4 RX F5 TXピンからUART1のF2 RX F8 TX につなぎ
変えています。
これを実行しても、F8に出力がでていないようです。
何か設定を忘れていたり、違っていることはないでしょうか?
わかる方教えてください。
>>692 存在しないPINのポートの設定をしないように
TRISB = 0011&1111のようにマスクしたら動いたことがあった
何も変わってないはずなのに変だよね・・
原因不明、未検証だから動いたらよかったねぐらいでw
694 :
PIC32MXの質問 :2012/10/29(月) 20:57:02.44 ID:V0DNGuwM
>>693 ありがとう。やってみました。
TRISF=0x0004;を
TRISF |= 0x0004; 他を変えず2ビット目(F2)を1にする。 // UART 0000 0000 0000 0100 F2 RX F8 TX
TRISF &= 0xFEFF; 他を変えず8ビット目(F8)を0にする。
結果は変わらなかったです。
なんか、ピンファンクションだとか特殊な操作とかはないでしょうか?
に変更
>>694 後は通信速度のクロックの設定とかしか思いつかないなぁ
何も設定しないと20MHzの通信速度になってて
崩れた波形がRS-232から出力された事が在ったぐらい
>>694 config設定とかありそうな気もするけど、どうだろう(対象CPUは使った事無いので推測)
出力が出ていない事の確認を何でしたかが気になる。根本的に出ているのかいないのか
オシロがなければ目茶遅い速度で0x55を繰り返し出力するとLED光らせたりして確認できないかなと(点灯に見えちゃうかな)
実績のあるUART2を利用し、UART1で出力してUART2で受ける。その反対も。外部の機器と接続するのも手だけど、
自分自身で折り返しができなければ、外部との接続はまず無理と思われ。
697 :
PIC32MXの質問 :2012/10/29(月) 22:12:27.18 ID:V0DNGuwM
695,696>>ありがとう。 出力はパソコンのシリアル通信でデータが来ているかどうかをみただけです。 とりあえずオシロは(500MHzサンプリング)のもっているので見ようと思えば見れますが、 何等かON OFFがあれば、パソコンのシリアル通信に文字化けしてでもデータが来るはず だと思いますが、うんともすんとも言っていません。 ただ、後閑哲也の本みても、Microchip社のアプリケーションノートみても、 pic32mx460fでのUART1のプログラム例がありません。なぜか、UART2になっています。 だーれもやったのを見たことがありません。
698 :
PIC32MXの質問 :2012/10/29(月) 22:20:11.27 ID:V0DNGuwM
695,696>>ありがとう。 今、オシロで確認しましたが、やはりTX端子(マイコン側)は うんともスンともいっていません。 UART2の時は、自動的にTXから信号が送り続けられているので パソコンのシリアル通信のモニタにも文字がはいりますが、 今回のUART1では マイコンの出力ピンの段階で電圧の ON OFFのパルスはまったくでていません。
>だーれもやったのを見たことがありません。 ライブラリを使わないで直接叩いてみればええやんやないの? 16bitが出始めた当所も、C30のライブラリ周りが何かおかしくて 結局CONレジスタを関数使わないで、直接入れたら動いたよ あとは、送信レジスタにデータ入れて観察 UART位なら、Microchipのライブラリ使わないで初期化してみて
ビジーループでタイミング取りながら空いてる適当なGPIOピン上げ下げ するだけでも出るよ。(出力をUM232Hに食わせてPC側はUSB-CDC) 18F4550で安定して921600bps出せたりする。
ちょっと質問なんだが、今、16f468使ってちょっくらアセンブラでソース書いてるんだけど、 Wに対してBSFって使えないんだっけ? BSF W,00H とかやってもWの中身変わってくれないんだが…。
ふーん、、 それは困りましたね
>701 16f468が何者なのかは置いておくとして Wは0が定義されているのでその命令は BSF W,00H = BSF 00h,0 = BSF INDF,0 つまりFSRが指すアドレスのBit0が1になってる WのBit0を1にしたいなら IORLW 0b00000001
新しい奴16F1xxxとかなら bsf WREG,0 だね
>>703 IORLWは盲点だった。とりあえずそれで行くわ。ありがとう。
706 :
PIC32MXの質問 :2012/10/31(水) 01:50:31.56 ID:nyRCuAVd
699 700>> ありがとう。レジスタを直接01で設定してみましたが、 変わらないです。 ただ、新たに分かったことがあります。 レシーブの方は機能しています。パソコンから文字を送ると EポートのLEDがちゃんと反応します。 LEDの表示を見ていると、プログラム自体は動いていて、TXピンだけ 出力できていないような感じです。 だから、ピンファンクションの切り替えみたいなところがうまくいって いないようにみえます。
>>706 U1TXREGレジスタに直接書き込んでみた?
TRMTの状態は確認した?
シミュレータで初期化後、U1STA,U1BRG,U1MODEの値を確認した?
(CTS設定とかは大丈夫?)
ボーレート落として、TRMTのビットの状態をLEDデバックしてみ
708 :
PIC32MXの質問 :2012/10/31(水) 22:30:32.25 ID:nyRCuAVd
707>> ありがとうございます。確認しました。 @関数を使ってUART1を設定すると UART有効のところがENABLEに なっていないみたいです。 Aレジスタに直接設定した場合はENABLEになりますが、 プログラムのprintf("\r\nCounter = %05u", Counter);文でも TXREGにデータが置かれていないようです。 とりあえず何が原因かはわかりました。 ありがとうございます。
>>708 Microchipライブラリのprintf使ってるのか?
そうなら、ストリーム指定がC30の場合必要だったけれど
C32も必要なんじゃないのか?
__C32_UART = 1;
とか初期化の所に入れてみてみ
710 :
PIC32MXの質問 :2012/10/31(水) 23:46:01.18 ID:nyRCuAVd
709>> 今確認しました。 ありがとうございます!! __C32_UART = 1; で 無事 うまくいきました。
最初からMicroChipライブラリのprintf使っていると書け ちなみにprintfはChan氏の使うと中身も見やすいし軽いからお勧め
>>711 printfはメモリ領域少ないPICからしたら
一番最初に確実に動いて欲しい関数だよね
ヒープ領域使うライブラリより、スタティックなメモリ領域を自分で設定できる関数の方が安心だよね
そもそも初めて使う人向けに書籍出してるなら
printfの実行に関する完璧な文章を記載して欲しいと思う
ヒープ領域の設定が必要です。
で終わりだもん
初心者からしたら何か分からずに書籍通りにして
オーバフローする重い処理させて、バグって
PIC使い物になんねぇ〜とか、、、、
まぁ、凄く参考になる本を出している事には感謝しているけどさあ
よくわからんが、まず最初にマニュアルを一通り読め。
でました!マニュアル読め!! __C32_UART に関して、マニュアルの何処に書いてあるんだよw
けど、最初からprintf使うのか?1文字出力できてのprintfと思うぞ ライブラリの使い方なのか、レジスタの使い方なのか、問題の根源が前者だとは思わなかった
>>714 マニュアルは、知らないけれどインクルードしているヘッダーファイルぐらいは、
読もうぜ
p30xxxx.h
/*
* __C32_UART selects the default UART port that read() and write() will use.
* read() is called by fscanf and family, while write() is called by printf
* and family.
*/
そんなもんは、putc関数を取り替えたら勝手にやってくれると、 普通は思うわな そういう面倒な部分を隠す為のライブラリ化なんだし
どこかで誰かがうまいことやってくれている とは限らないのが世の中
コンパイラのプリプロセッサの結果とか、アセンブラ出力とか、見るのが早道だったな。
720 :
774ワット発電中さん :2012/11/01(木) 15:40:21.09 ID:ehSARaux
アセンブラ読まないやつに使えるのかそもそも
>>716 >ヘッダーファイルぐらいは、読もうぜ
なんでPIC32の話なのに「p30xxxx.h」を読むんだよw
>>721 その人のプログラムが明示的に「p30xxxx.h」をインクルードしているから。とエスパーしてみた
>>721 そこは手打ちでミs....
笑って済ましてくれ
マイコンのライブラリに付いてるprintfって大抵全文字送り終わるまで CPU独占して文字数変えるとタイミング変わるからあんま使ったことないな
MPLAB X のシミュレーター、いまいち使い方がわからない...
上に同じ
>>724 putcで
while(送信バッファ空) ;
送信バッファ = 文字
とかやるのではなく、
自前で用意したソフトウェアバッファに積んで即座にreturnしたらどうだろう。
で、ハードウェアの送信バッファへの書き込みは割り込みルーチンで。
>>724 それ、何処の糞ライブラリだよ
1.送信バッファと、バッファ内の未送信数カウンタを用意する
2.printfやputcでバッファに書き込むと同時に送信分カウンタ値を増加させる
3.送信割込みビットを強制ON(U1TXIF = 1)
4.割込みが走り、送信レジスタにバッファから一文字書き込む、未送信数カウンタ1減算
5.未送信分があれば、送信完了で再び勝手に割り込みが走る
送信割込みはプライオリティを低くしておくべし
2.の所の前に、送信割込禁止を入れるべし(勿論バッファ書込後は許可)
3.が味噌
他の割り込み中にputcやprintfを使うべからず(送信割込プライオリティが高ければ構わない)
最早printfでは無いと思うんだよな、なんにしても。
>>728 開発環境やコンパイラに標準で付いてるprintf(writ())は、割込み使わないのが多いよ。
割込み使ってると、ユーザプログラム次第で、いきなり暴走するから。
printfは使わなくても、そこから呼ばれてるputc部分で使うんじゃないの で、putcは自分で作れってなってたり
icspするつもりだったが,セラロックを半田付けしてしまった。 ジャンパ処理するには、2ピンとも切らないとダメ? それとも1ピン或いはグランド切るだけでも良かったりする?
PICKit3や改造秋月ライタからセラロック付けたPICにオンボードで 書き込みしてるし、実際できてるけどな。(ん?厳密には良くないのか?) 他のライタは知らん
フラッシュの書き込み時はクロック止まってたような・・
736 :
733 :2012/11/03(土) 00:16:58.19 ID:ZTPUA8tQ
どこかのWebに書かれていた気が。 確かにユーザーガイドには、クロックは不要ですとありますね。 とりあえず、そのままやってみます。ありがとうございます。
ARM、PIC32やdsPICを使って色々な事をしていた 7セグを表示させるノルマが舞い込んだ メンドクセーと思いながら基板設計をしていた ふと、PIC16Fを使えばエエヤンと思い立つ スゲー楽チン ごめんよ16Fたん
7セグLEDドライバなどとして周辺ICとして使うのがPICの本領かもな。 もちっとPICのデジタル出力段のon抵抗が低ければなぁ。 高速性を優先してるのか、昼間に屋外でも見える輝度を・・・
>>738 そう思う
逆に考えるとon抵抗が低く出来ないならば耐圧を大きくして欲しい
1PIN辺りの耐圧をオープンドレインで構わないから
40Vとか定格電流を50mAとか
対クロック高性能化ではARMとかには敵わない
ならば対環境や対高耐圧というワンチップCPUが有っても
ユーザーには受け入れられるのじゃないのだろうか
周辺ICの応答速度とかIO耐圧とかイチイチ考えずに
PICなら50VまでOKですよ。電流は100mAまで流せますよ
対環境は-20度〜120度まで対応しますよ
といったワンチップマイコンがあれば4MIPSだろうが別に構わない
16Fは世俗の高クロック大メモリ化とは別にそういった進化をして欲しい
>>739 ちょこっとしたものを簡単に作れるのがPICの良い所と思うしな。
速度だけなら ARM搭載のが小遣い程度で買える時代だし。
10Fだと\35で買えるのあるしね 開発ツールも¥5000切ってるし、良い時代になったね
今の性能と価格で充分使えるしそれ以上は望まない
MPLAB C18でプログラムしています。質問です。 メモリ上の文字列と、ROM上の文字列を比較するにはどうすればいいのでしょうか。 strncmp((char*)USB_In_Buffer,"MT",2) としましたが、同一の時に正しく結果が返りません。 おそらくMTがROMに書かれたデータだから? どうすればいいでしょうか?
strcmppgm2ram mcc18付属のMPLAB-C-18-Libraries_????.pdf読めば分かると思う
>>743 strcmpの引数によって、下記関数がある。
strcmp
strcmppgm
strcmppgm2ram
strcmpram2pgm
あなたの場合は,strcmppgm2ramかな。
ヘルプ見るべし。
ありがとうございます!説明書読んでおきます!
PICkit2の起動時やCheckCommunication時に PIC16F88のプログラムメモリの一部を消してしまうバグは PICkit3では直ってるの?
そういえば Hi-Tech C はポインタに ROM/RAM の区別がなかった。 Hi-Tech C18 -> MPLAB C18 変更時にめんどくさい思いをした。
>>741 趣味でやるなら開発ツールはタダじゃん。
PICライタなんて極めて単純な回路だからデータシート見て自分で作ればいい。
PICkitとかは多種多様な品種やHVP対応などで部品点数が多いけれども、
HVPをやらずにLVPのみで我慢すれば、かなり回路は単純になってくる。
どうせICSPするなら、PICライタ側と基板側の両方を見ないといけないんだし。
趣味だと時間が足りないしな つかライターぐらい買わせろw
ライタ自作バカはライタ作って終わりなんだよね
LPCはシリアル以外いらないよね ここの人は3.3Vとか気にするのかな
ここの人の一員です
>>750 PICライタ作るのは簡単だよ。
PICがサンプルコードまで提供してるんだし。
>>751 んなこたーない。
最低限のPICライタなんて8ピンのPICと適当な抵抗と、
心配性ならRS232Cドライバ・レシーバのICで済むんだよ。
だから、ターゲットの基板にヘッダピンを立てるのではなく、
PICライタを乗せちゃって直にDsub9ピンを生やすこともあるよ。
出ましたライターバカ 時々ライターを作った事に対する感動を伝えたいのか 「ライター自作のススメ」レスがつくよね ライターは簡単に作れる事なんて自慢しなくても皆知ってるってw 初心者に自作ライター作らせるのは昨今ではアホのする事
「初心者」って何の初心者なのかなー。
アスペがバレる前にケツ捲った方がいいぞ。
ま、確かにライター情報は数年前ならともかく、 今なら必要ないな ちなみにライター自慢する場とするなら 俺は秋月ライター1台 自作2台 PICkit2 2台 PICkit3 1台 一番使ってるのは、PICkit2だな 自作と秋月は、一年以上使ってないな
自作するなら、他人が作ったハード、ソフトのデッドコピィではなくて 何かしらオリジナリティを出して欲しいな。 「高速化しました」程度でもいいからさ。
761 :
774ワット発電中さん :2012/11/04(日) 08:00:21.85 ID:vona2kAd
デッドコピー以上のことができるわけ無いじゃん。 「参考になる」を「コピペできる」 という意味で使う世代なんだから
デッドコピーのススメ
コピペねぇ。 「この前の設計変更、その後進んでる?」 「ネットで探してるんですけどサンプルが見つからないんですよね」 とか返事されるとガックリする。 (お前さんの頭は枕に乗せるためにくっついてるのか)と聞きたくなる。
>>755 自作だと簡易デバッガが使えないじゃないの?
それと、自作のライタに乗っているPICは、どうやって書くの?
もちろん鶏が卵を産むんだよ
>>761 Arduinoで精一杯の平成生まれだからしょうがない
日本語のテキストがなければ、ゆとりはそこであきらめる
PICは後閑哲也氏の「ゆとり向けテキスト」があるからのさばっているようなもの
>>759 ライター情報って・・・
んなもんマイクロチップ社のデータシート見れば作れるじゃん。
>>760 他人が作った設計図やソフトをネットで探すのが面倒なんで、自分で考えましたよ。
AN589はパラレルポート用なのと部品点数が多いんで、そのまま作る気がしないし。
>>764 > 自作だと簡易デバッガが使えないじゃないの?
ICDは使えないけど、まぁそれは我慢。
> それと、自作のライタに乗っているPICは、どうやって書くの?
パラレルポートがある古いPCを、
RS232Cドライバ・レシーバ + マイコンと見立てて使うのよ。
ホストPC → 古いPC → 書き込み対象のPIC
ホストPC → PICライタのPIC → 書き込み対象のPIC
ホストPCで走るソフトとRS232C部分のプロトコルは同一だし、
書き込み回路つっても抵抗いれてるだけだが・・・も同一だよ。
PIC上で走るプログラムと「古いPC」のDOS上で走るプログラムも、
ハードウェア依存する部分以外は、ほぼ同一だから二度手間ってほどでもない。
ついでにPICライタのPICにはRS232Cをソフトでスルー入出力する機能を付けたので、
ホストPC → PICライタのPIC → デバッグ中のPICライタのPIC → デバッグ中に書き込みテスト対象のPIC
なんていう感じで、PICをICソケットから脱着しないで済むようにしてみたり、
ホストPC → PICライタのPIC → デバッグ中のPIC
なんていう感じで、RS232Cレベル変換としても使えるようにしてみたり。
は・・・はずかしすぎる
設計図というのが新鮮
爆発しちゃった…
誰か16f648aが書き込めるライターの回路図教えて・・・orz
web探せばすぐにたくさん見つかるだろうに…
回路だけじゃなく、パソコン側のアプリも必要になるかと。 PICkit3を手配した方が早くね?
な?ライターバカ だろ?
>>773 パソコン側のアプリなんて簡単じゃん。
チョチョイノチョイだよ。
バグは新規で発生する。
>>775 ちょいちょいと作ってうpしてくれ
やる以上そこまでやらんとな
俺も期待。アプリソースもアップしてくれるといいな
おいおい! 背伸びして大げさに言っちゃっただけだって察してやれよ 森□さんと同じなんだから
俺も世界最高のライター作ったったwwwwwwwww こんなの誰でも作れるっしょwwwwwww 設計図欲しい?wwwwwwww 恥ずかしいからうpしないけどねwwwwwww
>>781 まさにID:2QmGcc2kwwwwwwwwww
>>781 これは明らかなID:2QmGcc2kwwwwwwwwww
同レベルだと気づいてない
ライターバカのおかげで妙なスレになってきたな
ダウンロードのキーワードはpicwriter zipのパスワードもpicwriter
では次の話題どうぞ
なんだこれw 自慢して、、、これかよwww おもしれえw PICKit3あるから、速攻ゴミ箱行きだけれどなw
自慢したつもりはないが。 チョチョイノチョイでテキトーに作ったものに文句言うなよ。
つまりID:2QmGcc2kにとってチョチョイノチョイで作れるってのはコンパイルも動作確認もしない状態ってことか
1ファイルにまとめて使ってない部分を削り落とす前の状態なら、コンパイルして動作してますよ。
ていうか、パラパラっと見て、ふーんあっそ、って思うものに対して、コンパイルも動作確認も必要ないっしょ。 もしかして自分が使いたいからupしろなんて言ってた人がいたの? そりゃあ・・・。
別に使いたいなんて思ってないよ、Pickit持ってるし
気持ち的には
>>792 と同じだな
だからライターバカは自己満足バカだと言われる オマエがライターをチョチョンノチョンと作れる事を証明したかっただけ?
やれと言われてやったら別の文句を言う・・・つまり叩きたいだけで証明が欲しかったわけでも見たかったわけではないのな。
Up乙。中確認。コメント少なっ。もしかしたらアップ用にコメント削除したかな? ファイル総てで無いとしても、思っていたよりパソコン側のプログラム多かった。 段階的に書くとしても、最初のプログラムをスイッチ治具で手で書き込む人とかいそうな気がする
お前もしかしてPICkit3とか2もってないだろ
どうせなら、チョチョイのチョイのじゃなくてPICKit2のソフト以上の完成度のを見たかった、残念だ。
証明としてアップしたなら大間違い このスレの大半は参考になる創作物 オマエの創作物は証明に値するけれど参考には全くならない ライターで参考に値する創作物を表現したいなら 完動データを出さなくては誰も参考にしない その完動データも、世にある他の物より優れた点がなくては誰も参考にしない でも、ライターネタには皆飽きてる ライターネタ出す位なら、そのライターを使って作った物を曝せや
>>800 コメントは大半を削除してます。
削除し忘れたのと、削除したら意味不明すぎるのだけは残してますが。
PIC側に比べてPC側のコード量が多いのは、PIC側を単純にしたかったからです。
書き込み処理の大半をPC側に持たせることで、PIC側のテストとデバッグの手間を抑えてます。
まぁ、長いのは、かなり冗長なプログラムになっているってのもありますが・・・。
>>801 もしかして俺? PICkit2を1、PICkit3を2。秋月を1。
買い足していたらこうなった。
Pickit2で単体書込みも出来てICSPも出来てUART機能も付いていて ロジックアナライザ機能も付いていて メーカ純正のツールである程度のPICが書き込み出来て 純正IDEでdebug機能が使えて 5000円出せばお釣でPICが数個〜10個以上買えてという状態にも関わらず 自作ライターを勧める人って どういう感覚の持ち主なんだろうか。。。。
既製品があるのに自作したがる人っているじゃない。
例えるなら絵の具職人みたいなものだね 沢山の人は絵を観たがったり絵を書きたがったりする だから沢山の絵を観賞したり書いたりする ライター自作は絵の具を作る事 大根の葉っぱやホウレン草使えば絵の具代安くすむのに、、、 でも大衆はそんなレシピは過去に沢山出てて絵の具作成に見飽きてる 絵の具メーカから安価で良い色の絵の具も出ている みんなは絵を観たいだけなんだよ まあエメラルドの様な緑色の絵の具が安価で作成出来たら 飛び付くだろうと思うよ
プロだったら少し問題あると思うけどさ、 アマチュアが何を作ろうとカラスの勝手。 興味がある物、作りたい物を作るだけ。 他人がアレコレ批判するのも勝手だと思うけど、 買った方が早くて安くて便利とか言うなよ。
>808 なかなかいい比喩だ。 他人の下手な絵なんざ見てもしょうがねえし。 自分の絵に使えるかもしれないから、絵の具作ってくれればそれは見るかもだけどな。
自作ライターは全部自分で作ってます的な楽しみを目指すものじゃなかろか。 趣味なんてそんなもの。 感覚が理解できなくても、[ま、おまえの好きな方を選べ] を後ろにくっつければいい話。
>>809 >>749 で、”趣味でやるなら開発ツールはタダじゃん。”って逆にライター持ちが言われてるんだが
あなたは 「Lチカ派」 ? それとも 「Lピカ派」 ?
えるちゃん派 チカとかピカとかどうしてそんな事にこだわるのか私気になります!
そこで日亜の100ルーメンですよ
100ルメーンじゃ暗いかも
非発光時に真っ黒いLED作ってくれよ 今の昼行灯型じゃ光の9割捨てなきゃ使えん
塗ればいいと思うよ
config設定ってトークンを何でand演算子で連結すんだ?orの方が直感的なんだが。 負論理表記なんだろうが実際は1で有効なbitも多いし。 VC++でWINAPL書いてると属性はorで結合するがな。
元々11111111な物に対して一部を0でマスクしていくにはandしか無い
どうしてもor使いたかったら、 not (not A or not B) って書けば良いかと。
吃音るガン
orが好きなら自分で#defineして使えばいいじゃない。 なにも用意されたものを必ず使わねばならぬってことはないよね。
0で落とす、ヒューズを切るイメージかも
FLASHを消去するとall"1"になるからANDになってるんでしょ。 PIC18で推奨されてるCONFIGはANDでもORでもない記法になってるね。 CONFIG FOSC = ECMPIO6 ;EC oscillator (medium power, 4-16 MHz) CONFIG PLLCFG = OFF ;Oscillator used directly CONFIG PRICLKEN = ON ;Primary clock enabled CONFIG FCMEN = OFF ;Fail-Safe Clock Monitor disabled CONFIG IESO = OFF ;Oscillator Switchover mode disabled
電子工作初めて3ヶ月ぐらいの者です Pickit2 を中古で買ったんですが、動作チェックってどうやればいいですか? ICロジックは、まだ手に入れてません・・・
各端子にLED刺して目視
>>825 いまもUV-EPROMとかOTPとか継続生産されてるのかしら。
>>827 一通りの機能を試してみたほうが早いのでは。
ICロジックって? 74HCとかのCMOSのこと? PICが手元にないって事かな? 無かったら動作確認出来ないんじゃないかな〜 パソコンに繋いでPICkit2が認識されるかどうかは確認できるけど
>>827 MPLABをインストールしたPCにPickit2を繋ぐ。
MPLABを起動して、メニューのProgrammer→Select ProgrammerでPickit2を選択。
Pickit2が動いていればOutputウインドウになんかいろいろ表示される。
クレイアウトしていてPickit2が選択できないときには、メニューのConfiger→
Select DeviceでPickit2が使えるデバイスを選択する。
>>831 動作確認できましたw
ありがとうございます
ICロジックって、プログラムのことか! HDLならまだ意味がわかるけどなぁ。 初心者はちゃんと用語覚えることも必要だぞ。
お絵かきロジックは昔よくやったなぁ
用語で思い出したのだが、 大昔に読んだ、ある言語処理系プログラムの翻訳マニュアルはすごかった。 可能な限りカタカナは使わないぞ、とでもいう翻訳方針があるのか知らんけど たとえば、 目的算譜 -> オブジェクト・プログラム 原始算譜 -> ソース・プログラム 謎かけみたいにドキドキ、ワクワク、逆翻訳しながら読んだ。
837 :
774ワット発電中さん :2012/11/08(木) 15:50:22.30 ID:LvA3Zoi9
Iちゃんかな
>>836 "The Art of Computer Programming" の最初の訳本もそんな感じだったよね
お前等何歳だよw お爺ちゃんかよw
お爺ちゃん!オシッコ
>>838 あれは原書読んでからでないと翻訳本は理解不能w
まぁ俺は839が言うような、自他共に認めるジジィなんだが、 (この前生まれて初めて小学生に電車で席を譲られてよ、 小学生のドヤ顔を見て仕方なく座ったけど、スゲェいじけた) 出来れば非ノイマン系、プログラムレスの「皮質6層構造完全再現ニューロコンピュータ」なんぞの 実現を確認してからくたばりたい。
マイクロチップ社も高齢層に対するマーケティングをする時代 微小チップをお薬と間違えて飲む事故 ”孫と遊ぶPIC”書籍の出版 棺桶の装飾がLEDチカチカ 死後処理されるアセンブラ書籍の廃品回収車に漂う哀愁 引き出しの奥底で発見される16F84や自作ライターの錆 悲
スイッチ押すと壁から自動的に仏壇が出てくるシステムは既に存在する
スイッチレジスターと機械語でプログラミング&デバッグしていた時代の ジジイにとってはとても親和性の良い(単純な)チップではある。
皆さん自己紹介乙です
爺さんが持ってた電子回路の参考書が真空管だったちょっとした衝撃。
前のPCではMPLAB C18入れてたんですが、新しいPCにしてDLしようとしたら MPLAB Xで完全に無料になったの? まぁ、両方DLしてみるけど
>>850 free版(最適化が余りされない) か 期間限定フル機能 か
有償版が選べる。
852 :
774ワット発電中さん :2012/11/10(土) 09:43:44.74 ID:dpuLtol/
>>661 >>662 大昔の僕の記事参照ありがとう。
仕事忙しくて精神的に余裕なくなって作れなくなっちゃった。
海外からも、手伝いたいってオファーあったんだけど、、
しかし、こんなに時間が経っても、picとgccの状況が変わらないなんて。
>852 一方でavrはちゃくちゃくと。4.7でnamedなんたら入った。 予見されたごとく移行でいろいろあるのか、いまだatmelの配布バイナリは4.6だけど。
Freeで困らない思考方法 ROM足りない →もっとデカイROMの使えばいいじゃん 遅い →もっとクロック早いの使えばいいじゃん 電気喰う →もっとデカイ電池つければ良いじゃん Microchipも電池屋も電力会社も儲かってハッピー
景気よくなるな
>852 Microchip純正のC18(PIC18用)もあるし、絶対必要ってわけでもないしね。 PIC24,dsPIC用のC30はgccベースだし
>>856 まあ、ミッドレンジ以下はスタックでの引数受け渡し無理だからな。
C言語とは相性悪い。
全部グローバルでもどうにかなるような規模のものしか作れないし 関数化したがるのは、構造化ではなくて、気分の問題
>>857 だからといって、
ページやバンクがあったりするので、
アセンブラか書きやすい訳ではない。
トラブル回避のためにアセンブラでは毎回バンク指定するオレは偉い?
>>851 > 最適化が余りされない
嫌がらせのように余計な命令を挿入される、っていう印象が。
variable bank=0
selport macro x
if (x
>>7 ) != bank
variable bank=x
>>7 banksel x
endif
endm
こんなマクロ組んでおいて
サブルーチンとか分岐で注意すればいいんでは
864 :
774ワット発電中さん :2012/11/10(土) 23:53:47.69 ID:dpuLtol/
>>856 確かにC18はCをPICで動かせるコードを出す。でもオブジェクトを見ると
目が腐り、実行させれば無茶遅い。
18Fは高級言語をサポートしやすくするといって、拡張命令に
オフセット付き間接アクセスを追加したけど、使える仕様になってない。
C18だってオフセット付き間接アクセスは使ってなかった気がする。
要するに、コンパイラが分かる技術者がアーキテクチャ設計に
参加していないのが問題だし、MICROCHIPにアーキセンスもない。
オブジェクトコードなんて見ないっていうのも一つの選択だけど、
まっとうなコードを出力させれば、速度は数倍、コードは数分の一に
なりえる。もったいない。
もっとも、MICROCHIPのUSBフレームワークのソースを見たとき、
ローカル変数を使わないコーディングだった気がする。
グローバルな単純変数なら、間接アクセスはいらないから。
C18でもそんなに変なコードは出ない。
組み込みCPUでは局所変数はサイズを読み切れないから、
使わなかったのかもしれないけど、
コンパイラがあほだから、そうなったのか、プログラマが
そんなコードしか書かないから、コンパイラがあほになったのか
分からん。
C18だと、ローカル変数を多用すると目が腐り、むちゃ遅いのが
(少なくとも4年前の)C18の性能。
無料版は最適化が制限っていってるけど、
実態は、無駄命令の挿入と言ったほうが近いかな。
用もなくバンク指定の命令が入っていたりとか。
まあ、
> 860
のコーディングとおんなじ。
PIC18Fまでは1976年製のPIC1650のアーキテクチャを色濃く引きずってるから FSRの拡張やアクセスBankを追加した所で無理矢理 増築した感が否めない。 Microchipにはアーキテクチャを一新したPIC24,dsPICやMIPSのPIC32もあるんだし Cで書くならこちらのほうがすっきり。
>>864 マイクロチップの中の人は、パタヘネだかヘネパタを読めってことか。
新規CPUの設計には金がかかるから出来合いのコアを他社から買ってくる。 AVRとPICが同じアーキテクチャになる日が来るかも?
868 :
774ワット発電中さん :2012/11/11(日) 08:43:53.98 ID:VsusnmQf
>>866 パタヘネは学部生向けだから、ヘネパタぐらい読んでほしいけどなあ。
いや、読まなくても、思い付きで命令を増やすのはやめてほしい。
一見よくなったのかと勘違いするけど、コンパイラがいざという時に
出したくなる肝心の命令がなくって使いにくいったらありゃしない。
「ないと困る」命令を追加せず、「あった方が良い」という程度の
命令を追加されても使えないんだな。
そういう変態CPU向けのコンパイラを作るのも自虐趣味の一つなんだけど。
>>867 AVRとPICが、中身ARMM0になって、IO機能は今のまま、
価格と開発環境は据え置きなら、かなり嬉しいぞ。
dsPICのコンパイラは2年前はぼろぼろだったけど、最近は最適化なしでもわりかしコードサイズ小さい。 Xのほうは知らんけど
なんだかんだいってPICはアセンブラで書くチップなのかもなー。 主要なユーザーは大量生産品に使うから、 アセンブラで書く手間よりも、メモリサイズ縮小によるコスト低減のほうが、大きいのだろう。
俺の「初めてのC」はボーランド社のTurobo-Cだったんだけど、 マニュアルのインライン・アセンブルの章の最初に、 「CPUの持つ性能を余すところ無く発揮できる言語はアセンブラだけです」 と書いてあったな。 続けて 「Cのプログラマと言えどもアセンブラを熟知していなければいけません」 もちろん、ここに集まっているPICプログラマはCもアセンブラも完璧にマスターしている。
コンパイラが出力するコードを読める程度には、アセンブラ使えないとな。 デバッグするときにさ、 意図と違う動きしたときに、アセンブラ出力を見ると、 自分の間違いが分かるし。
C言語では書けないことってあるんだよね。 たとえば剰余を同時に求めるとか。 a = b / c ; d = b % c ; これさ、本当は1回の剰余算で済むんだけど、Cコンパイラにやらせると2回やっちまう。
あとローテートとかもC言語では書けないな。
876 :
774ワット発電中さん :2012/11/11(日) 14:39:53.04 ID:868woEcL
あくまで「CPU」じゃないからね マイクロプログラムに近いものだ
どこでローテートさせる必要があるんだ
暗号
>>879 その関数はC言語で実装されてるわけじゃないだろ。
インラインアセンブラかコンパイラの組込関数だろう。
>>872 当時の8086/DOSは、PICと共通する要素が多いからな。
882 :
774ワット発電中さん :2012/11/11(日) 18:01:51.26 ID:868woEcL
変態ポインタか
C言語は高級アセンブラ言語である。
○か、×か
>>874 >a = b / c ;
>d = b % c ;
>これさ、本当は1回の剰余算で済むんだけど、Cコンパイラにやらせると2回やっちまう。
まともなコンパイラなら最初の割り算の余りを覚えていて、余りが必要ならそれを使うから
上の計算は1回で済む。
アセンブラで確認してみたら?
チップ手に入れてデータシート眺めて、この位ならそんなに難しくないだろうと ハンドアセンブルして16進数を直接入力して書き込んで動かしたりしてたな。 データシート読み始めてから、PS/2ポートに繋ぐちょいとした機器作って動 かすまで一週間くらいだったな。
>>880 実装なんてなんででも可能だろ。アホか。
ジジイ達の会話ワロス。 最適化できないCコンパイラなんて使っているから、アセンブラ爺に突っ込まれるのではw
16Fをアセンブラで使ってて、初めて18F26K22を使うとき今度はCにしようと 思ったけど、命令体系を眺めてたらとてもCでやる気にならずアセンブラで やることにした。 バンクを15で固定してアクセスバンクと併用すればとりあえずバンク切り替 えからは開放されるので16Fよりは少しはましかな。 24Fを使うことがあったらCでやりたいな。
>>885 XC8では2回やらかしてくれたんで自分で展開したわ。
>>887 C言語で書けない、っていう話なんだがなー。
じゃあここにC言語で書いてごらんよ 組込み関数やC言語以外で実装されたライブラリは使わずにな。
ワケ分からん。こんなコード見てうれしいか? typedef struct {int quot; int rem;} div_t; div_t div(int numer, int denom) { div_t d; d.quot = number / denom; d.rem = number % denom; return d; }
それともこういうのを期待してたのかな? div_t div(int numer, int denom) { div_t d; d.quot = number / denom; d.rem = number - d.quot * denom; return d; }
どうせアセンブラより遅いじゃんって答えが返ってくるだけでしょ 普通はCPUに命令があればインラインアセンブラで関数作って終わりでしょ
>>896 >どうせアセンブラより遅いじゃんって答えが返ってくるだけでしょ
「単に効率が悪いというだけで、Cで書けないわけではない。」と最初に言っているので問題ない。
>>894 で、それをPIC対応のコンパイラでコンパイルして1回の剰余算になるかな?
少なくともXC8は、ならなかったぜ。
>>896 それじゃアセンブラで書いたのであってCで書いたことにはならん。
ん?C言語で〜に答えたつもりはないよ、”普通は”って書いてるでしょ
18F14K50が変な壊れ方した。 まともに動作してるんだが、電流が100mAぐらい余分に流れるんで調べたら PICを外してVdd-Vss間をテスターで抵抗値を計ると45Ωぐらいしかない。 いったいどんな壊れ方したんだ?
>>903 ああ、最近扱いが雑になってたので心当たりがありすぎだ。
これからは気をつけよう。
905 :
774ワット発電中さん :2012/11/13(火) 00:04:08.42 ID:fcbtJfO/
バグか
>>902 錆びたから。
昔、俺の友人(某ICメーカーの開発部勤務、パワーデバイス担当)が
「米国製のICが動作しなくなったのでパッケージを開いて中を見たら錆びていた」
と言っていた。
16F690のADCを使ったんだけど ADRESHはそれっぽい数値を返すのに、ADRESLが同じ数値で動かない ADCON0は右詰めでやってて、もちろんADRESLはBANK1から持ってきてる どんな原因がありそう?
アドレス手打ちして,そのアドレスが間違ってる。とか。
>>907 半田付け時に、エポキシ樹脂とリードの隙間から水分が入るとか、
リードフォーミング時に隙間が生じるとか、いまでもあるよね、普通に。
PIC16F1823って、内蔵プルアップを有効にしてるとLED薄っすら光るんだな。 そんなに電流とれるなんて思わなかったから気づくまでさんざん悩んだ。
913 :
908 :2012/11/13(火) 15:56:56.17 ID:TwdOTlRB
MOVWFADL BCFSTATUS,RP0 を逆順にする
915 :
908 :2012/11/13(火) 16:18:17.17 ID:TwdOTlRB
あー……。 なんて初歩的なミスをしていたんだろうorz ありがとうございました!
今日からPIC始めたけどバンクやらレジスタやらの仕様の把握 がなかなか進まない。 データシートとしばらくにらめっこが続きそうだわ。。
バンクのないPICを使えばよい
特定のPICが書き込みもイレースも出来なくなった…と思ってたらソフト(PICKIT2プログラマ)側の問題だった…。 書き込みで0x00エラーとか出るようなら、プログラマのインストーラーでリペアするのも手みたい。
バンクのないAVRを使えばよい
920 :
774ワット発電中さん :2012/11/13(火) 22:58:04.97 ID:6kWNOAcN
PDP-11 のまま思考が停まった馬鹿を再教育するシステムだからな PIC は
921 :
774ワット発電中さん :2012/11/13(火) 23:43:06.12 ID:Za1MVPuq
PDP-11って何ですか?
>911 PIC16F1823だけの話ではなくて、たぶん最近の高輝度LEDが内部プルアップから 流れる少ない電流でも明るく光るくらい高効率になったという事ではなかろうか。
>>921 ググれ。
ビル・ゲイツを育てた大昔のミニコンだ
>>911 LEDは電圧さえかかれば、かなり小さな電流でも光る。
>>916 初心者は PIC18 以上 + C言語 で始めるのが良いかと。
----
昔からの電子工作マニアなら PIC12やPIC16でも結構なじめると思うが。
>>922 うん 2年前に買った秋月の100個セットの赤。
内部のPWMを使って光らせ、止める時はポートを入力にするんだけど、止めたつもりが薄く光ってるから・・・
入力にした時はアナログポート・プルアップ無しに変更して解決したが悩んだ悩んだ。
>>924 弱プルアップという名前に半分だまされた気分だ。
>>920 メモリマップドI/Oも、いいとこあるんだよ。
リムーバブルディスク、高かったなあ。予算ディスクで全部飛んでしもたことある。
>>927 あれ? おれPIC16F1823で、プルアップoffにするの忘れてADC結果が少し高かったことが。
回路によってはPU(プルアップ)、PD(プルダウン)関連が誤動作の原因になったりするので、 私はハード、ソフト設計の初期段階でそれなりに慎重にPU、PDの検討をしています。 (もちろん、とくに何も考ずに決める場合もありますが) 正論理、負論理のどちらか? ドライブ能力は? スピードは? ノイズレベルは? 内部PUにするか、外部PUにするか、外部PDにするか? 抵抗値はどの程度にすべきか? リセット中(人間がリセットSWを押している間)はフローティング(Hi-Z)で構わないのか、 リセット中も電位を固定しなければいけないならHi、Loのどちらか? 動作中に入出力の方向を切り替える時は? etc
それはよかった
>>932 とてもよかったでしょ? だよね? ヤッター!!
プルアップダウン程度でウンチク語る ジジイには成りたくない
なかなか希望通りには事は進まないもの
936 :
774ワット発電中さん :2012/11/14(水) 20:55:17.72 ID:K8CufgLB
>>934 「プルアップダウン程度」なーんて思って、コピペばっかりしてると
痛い目にあうのよ。
google先生がコンパイラを作ったら ひょっとしてそのピン、プルダウンしたいの?[Y/N] なんて察してくれるのがいいね
938 :
774ワット発電中さん :2012/11/14(水) 21:13:04.48 ID:jtTDSsnF
>>931 そーゆー泥臭いことしてる回路から、できるだけロジックをアイソレートする
GND であろうと VDD であろうと受動素子でつなぐこと自体がばっちいことだし
SW みたいに酸化物や油でわけわからんことになってる回路は許せんけしからん
人体はメタステーブルにサンダーブレーク攻撃に人格エラーとまるで FLACK だ
潔癖症のPICがあったらやだな
そういや消費電力の低減のために、トグルスイッチに流す電流を抑えたら、接点の酸化膜が吹き飛ばずに成長して接触不良になったぜ。 あんまり大きな電流を流すのは火花飛んでヤバいが、あまりに小さな電流しか流さないのもダメなんだなー。
>>940 スイッチにコンデンサ付けとけば、スイッチ入れた瞬間に大きめの電流流れる。
消耗品ですから。
>>940 平成生まれのペーペー社員は、微少電流用接点も知らないのか?
ゆとりはパナソニック電工の住宅用スイッチでも使ってろよw
944 :
774ワット発電中さん :2012/11/15(木) 01:34:50.17 ID:sCVpJUNq
このスレは揚げ足取りの知識自慢の輩ばかりかよwww 自慢するならちゃんと正確に技術的な説明も加えとけ とにかく相手を敵対視するようなのが多いなw PIC使いはゲスチョンが多いのか まぁほんとの一流どころはこんなスレに書かんだろうがなwww
>>943 社員? こんなところを読み書きしてるんだから、仕事なわけないだろ。
PUやPDをコピペして誤動作するって どれだけ汚い回路なんだよW 何Mも引き回すのか?w IO直出しかよw 電源系をしっかりしてりゃPICごときの低速デシタル回路はコピペで十分 アナログはあかんけどな その電源系が難しいわけだ
>>944 >このスレは揚げ足取りの知識自慢の輩ばかりかよwww
例えそうだとしても勉強になるしいいスレなんでないの?
>自慢するならちゃんと正確に技術的な説明も加えとけ
無知蒙昧な自分たちが調べる取っ掛かりを示してくれればいいんじゃないかな?考え方より解答を重視する人ですか?
948 :
916 :2012/11/15(木) 02:29:39.28 ID:ChtISzRN
PICいじり2日目。 LEDちかちかまで出来た。 こりゃおもろいねw まだIOポートの処理が全て理解出来てないけど。 void ledon() { PORTAbits.RA0 = 1; PORTAbits.RA1 = 0; } void ledoff() { PORTAbits.RA0 = 0; PORTAbits.RA1 = 1; } こうやるとRA1のポートだけ反応するのはなんでだろ。
仕方ねえな、明日から丁寧にデタラメを書き込むとするか…
>>949 >明日から丁寧にデタラメを書き込むとするか…
揚げ足取りスレで何言ってんだかw
プルアップ、プルダウンは、回路を理解していないと、適切に使えないよ。
>>931 のように、熟慮するのは大事なことです。
意外に答えられないのが、
「ねぇねぇ、なんでこのプルアップ抵抗が10kなの? 10kにした理由は?」
と効いたときに、的確に答えられる人は、社内に何人もいない。
もちろん僕も、答えられない。
プルアップ、プルダウンを考慮してます とか発言する癖にダンピング抵抗の事とかが 全く記載されていない時点で胡散臭いわけなんだが
ド素人です これから学んて色々やってみようと思いますが PCIライターって何買えば幸せでしょうか?
えー、PIC板に限らず、世の中にはの中には人の話を聞かない、 聞いていないという人間がいるもんでして、 そういう男が二人連れだって歩くとこんな具合ですな。 「おい、向こうから来るのは熊さんじぇねぇか」 「何を言ってンですか、八っつん。あれはどう見たって熊さんですよ」 「そうかい。しかし世の中には似た奴がいるもんだな。 俺はてっきり熊さんかと思っちまったぜ」 お後がよろしいようで。
爺ウゼ
>>951 そんなものは的確に答える必要はない。
「流れる電流が多くても電力が無駄なだけだし、10kくらいでOK。」
とだけ覚えていればよい。
的確に答える必要があるものとないものの区別が付かない奴は、いちいち
「何故リモコンのボタンを押したらテレビが反応するのかを的確に答えられない人が多いんだろ?意外だなぁ」
とかって思うんだろうな。
958 :
774ワット発電中さん :2012/11/15(木) 10:49:24.39 ID:CTXZTzva
では、プルアップは いつでもどこでも10kでいいの? 10kでなくて、22kではだめなの? 使い分けしなくていいの?
>>946 PICはIO直だしOKにして欲しいな。遅くて良いからESD高めて。
>>948 16FとかだとBCF RA1とかで実行されるけど、8bitポート全部読んで、その中のRA1だけ変えて再出力される。
そのときに直前に変えたRA0がまだ立ち上がりきってないと、RA0はゼロで良いんだ〜ってなっちゃう。
立ち上がらない要因としてコンデンサとか付けてない?まさかLED抵抗なしで付けてたりしないよね?
試しにRA0 = 1;とRA1 = 0;の間にNop();いくつか入れてみて。
>>958 高湿度とかパターンが長いとかノイズの多いパターンと並走とか無ければ100kでも良いよ。
1Mだとinput leakage currentが1uAあるから駄目だね。
>>957 「流れる電流が多くても電力が無駄なだけだし、10kくらいでOK。」
不合格だよね
誤動作する回路の方が悪い
出力しか使わないならビット操作なんかしないで PORTAにそのまま8bit値入れた方がいいよ redon() { PORTA = 1; } redoff() { PORTA = 2; }
ノイズ試験で、このような些細な対策で耐圧が上がったりするから侮れない。
>>961 >PORTAじゃなくLATAを読んで02hとxorすればいいんだろうか
正解
>>961 LATの無いデバイスの時はポートに出力する内容を変数として確保。変数側を修正し、ポートにバイト書き込み。
割り込み処理で共用される場合は適度に割り込み禁止で作業。
967 :
948 :2012/11/15(木) 19:55:05.22 ID:ChtISzRN
>>959 LATAbits.LATA0 = 1;
LATAbits.LATA1 = 0;
の様にすれば大丈夫でした。
アドバイスありがとう。
ADCとUSB-CDCまで出来るようになりました。
割り込み周りとPWMもやれば一通りかなぁ
こらからPICを学習したいと思いますが おすすめのサイト、書籍を 教えて下さいませ
>968
サイトは後閑さんの
http://www.picfun.com/ 書籍はコレといったのは無いような。
ただ これから始めるならPICじゃなくてもいいような
8bitPIC(PIC12,16,18)は独特の癖があるし
16bitPIC(PIC24,dsPIC)は情報少ない
32bitPIC(PIC32)はさらに情報少ない
データシートが全てだよ それ意外の情報はクズ
PICユーザが多いってのも8bitPICが多いだけだもんな 後閑さんのような爺さんでさえ32bitPICを使ってみたりAndroid使ってみたり Eagle使ってみたり色々やっている事に関心する一方 PICスレもPart40にも関わらず未だにアセンブラやライターやプルアップとかの 基礎的情報で盛り上がったりする爺さんもいるわけだ 正直真っ白な状態で今から8bitを新しく手軽に覚えるなら悪いがAVRのXMEGAだな あっちのスレには此処にいる様な自慢話爺さんは居ない
8bitしか扱えないのは、無能な爺さんやバブル世代と同義だよ。 せっかくネットで縦横無尽に調べられる平成生まれとして生まれたんだから、 「PIC」と言うくくりで勉強したいなら、16bitを純正コンパイラでやる以外、新規で学ぶ価値はないと思う。 (アセンブリ言語で周りがやっているような零細企業の研修なら別) 平成生まれなのに、純正が使えず、8bitしか扱えないと「やっぱりゆとり世代はw」って言われるよ
>>972 そうですか
XMEGA ググってみます
>>972 >此処にいる様な自慢話爺さんは居ない
よほど悔しい目に遭ったと見える。
>>972 Androidで合っているの?別の何かのつもりじゃないの?
8ビットより16ビットの方が偉いのかw
>>976 悔しい目にあった事は無いなレベル低すぎだもん
PICも使うしAVRも使うからなんだけど
ネットで調べるとスゲーと思うのは大体AVRなんだよね
ユーザ数が多い分高卒レベルの技術で満足しているユーザが多いねPICは
>>977 みたいなアホが多いんだよねPICユーザって
>Androidで合っているの?
とかさ、アホを露呈してるんだよね
周りの素晴らしい工作を見て勉強しようとしない
正直高卒レベルなんですわ
とか言う俺もPIC便利だから使うけどさ
だからってXMEGAを進めるのは8bitの究極系だと思うから
見たこと無いならXMEGAのデータシート一度読んでみ
>>979 >ユーザ数が多い分高卒レベルの技術で満足しているユーザが多いねPICは
>
>
>>977 みたいなアホが多いんだよねPICユーザって
>>Androidで合っているの?
>とかさ、アホを露呈してるんだよね
>周りの素晴らしい工作を見て勉強しようとしない
>正直高卒レベルなんですわ
やはりよほど悔しい目に遭ったと見える。
PICユーザバカにすんな 言っている事はワカラナイでもないけどナ
初心者に使えるマイコンの話じゃないの? 俺から言わせてもらえばブレッドボードに単体で差せないのは問題外 まずは圧倒的にサンプルが多い8bitPICからが基本でしょ
なぜ8bit CPUはなくならないのか?
32bitがこれだけ安くなってんのに 8bitにこだわる意味ってなんなのかね つーかXMEGAってAVRウーザーでも少数派なのに PICスレにまで出張して薦められるようなものかね
秋月でPIC32の取り扱いを拡大してほしい いまの取り扱い品はメモリサイズ小さすぎ
>>972 8pit PIC,
遅いけど、賢こくて大容量なプログラマブルロジック
見たいな使い方が多いからだろ。
>>985 あとピン数も足りない
DIP40pin・・・DIP40pinがあれば全て上手くいくのだ
だめだめ DIP40pinなんてフリスクケースに入れるの大変だろ
日本語データシートがあるやつがいいね。
>>971 最近のは間違い多いけどな。しかも修正されない。英文でも。
>>970 8bitPICの癖はちょっとした目の前のたんこぶだよね。
16bit系でもLATAとかひきずってるし、確かに情報が少なめ。
よそに浮気するにしてもどのCPUが使いやすいか個人の推薦ぢゃなくて比較表があるといいんだろうね。
開発ツールの金額とかシンプルで分かりやすいとかDIPとか。
>>982 初心者ほど、考慮すべき要素が少ないほうが、挫折しにくくて向いてると思う。
>>985 開発用にメモリたっぷりの型番を少量欲しい・・・microchip directから買うのは鬱陶しいので、安くなくても買うのに。
>>988 PLCC・・・最近あんまり見ないか。
PICぐらい好きなの使わさせてくれよ
>>979 組み込み用途の製品を設計する際に、最近は使おうとするデバイスが
秋月のラインナップでAAAであることがデバイス選択の重要な要素になっている。
秋月で売っている→ユーザーが多いんじゃね?→枯れてるまたは情報が多いんじゃね?
秋月で売っている→他の商社でも売っている→入手しやすいんじゃね?
あと、最新のデバイスはよほどのことが無い限り使いません。
バグを警戒する他に、それが10年後も安易に入手できるかわからないから。
レベルの高い人に、高性能な最新のデバイスをばしばし使ってもらって
特定用途だけでは無く、一般用途の市場に浸透させてもらいたいと思っています。
>>992 PIC規模の組み込み系ならR8C使うだろ?
ルネサスが存続するなら10年供給保証品種は生産終了でも在庫している。
994 :
774ワット発電中さん :2012/11/16(金) 19:55:06.38 ID:Ebnkisvj
>>992 秋月はジャンク屋。そんなところの在庫情報がデバイス選択の重要な要素なんて
正直、正気の沙汰とは思えないがな。
>>993 廃品種が決定しているCPUを使うのは賢いとは思えない。そこまで、無理して
R8Cを使う理由はないんじゃないの。
PICは、かなり古いチップでも手に入るようだし、日本のメーカーに比べると
ずっと品種も少ない。継続性を考えれば日本のメーカーよりはましな気がするが。
> ルネサスが存続するなら マイクロチップが存続するなら、なんてことは言われないからねぇ。
>秋月在庫AAAのICがデバイス選択の重要な要素です これがPICレベル
ゆとり「商社より秋月の方が安いのに、何で秋月を使わないのですか?」
秋月も数まとまれば外販もやってくれるんでないの?
外飯?
>>994 PICも最近は品種が増えてるからなぁ。
Fの後が2桁のPICが今も買えるからといって、
3桁や4桁のPICが10年後にも買えるかは・・・
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。